VSCode Remote Tunnels可通过GitHub登录启用端到端加密隧道,支持图形界面或CLI添加命名端口映射(如3000→my-react-app),配置GitHub认证限制访问,并提供列表管理与一键关闭功能。

如果您希望在没有公网IP或复杂网络配置的情况下,将本地运行的Web服务安全地分享给他人访问,VSCode的Remote Tunnels功能可提供端到端加密的临时隧道通道。以下是实现该功能的具体操作步骤:
本文运行环境:MacBook Pro,macOS Sequoia。
一、启用Remote Tunnels并登录GitHub账户
Remote Tunnels依赖GitHub身份验证来建立用户会话和隧道授权,必须先在VSCode中完成登录才能创建隧道。未登录状态下所有隧道命令均不可用。
1、打开VSCode,按下 Cmd+Shift+P 调出命令面板。
2、输入 Remote-Tunnels: Turn on... 并回车执行。
3、VSCode自动弹出GitHub登录页面,使用浏览器完成授权后返回VSCode窗口。
4、状态栏右下角出现 Remote Tunnel (Ready) 表示已成功连接到远程中继服务。
二、为本地服务创建命名隧道
VSCode Remote Tunnels默认仅暴露其内置的服务器端口(如Web UI),若需转发自定义本地服务(例如运行在 localhost:3000 的开发服务器),需手动添加端口映射规则。
1、按下 Cmd+Shift+P,输入 Remote-Tunnels: Add Port... 并回车。
2、在弹出的输入框中键入本地服务端口号,例如 3000。
3、随后输入一个唯一隧道名称,如 my-react-app,该名称将出现在共享URL中。
4、确认后,VSCode在状态栏显示 Port 3000 → my-react-app,并生成类似 https://my-react-app-82a3b7.port-3000.very-good-tunnel.com 的可访问链接。
三、通过命令行手动启动隧道并指定端口
当图形界面操作受限(如SSH会话中无GUI)或需集成进脚本时,可直接调用VSCode CLI工具code以非交互方式启动隧道,并绑定多个本地端口。
1、确保已安装VSCode命令行工具:在VSCode中打开命令面板,执行 Shell Command: Install 'code' command in PATH。
【极品模板】出品的一款功能强大、安全性高、调用简单、扩展灵活的响应式多语言企业网站管理系统。 产品主要功能如下: 01、支持多语言扩展(独立内容表,可一键复制中文版数据) 02、支持一键修改后台路径; 03、杜绝常见弱口令,内置多种参数过滤、有效防范常见XSS; 04、支持文件分片上传功能,实现大文件轻松上传; 05、支持一键获取微信公众号文章(保存文章的图片到本地服务器); 06、支持一键
2、终端中运行:code tunnel --port 3000 --name my-api-server。
3、首次运行会提示打开浏览器完成GitHub登录,完成后终端输出包含完整隧道URL的提示行。
4、如需同时暴露多个端口,重复执行该命令并更换端口号与名称,例如再运行 code tunnel --port 5000 --name backend-api。
四、限制隧道访问权限以增强安全性
Remote Tunnels默认允许任何人通过链接访问服务,但可通过设置访问令牌强制身份验证,确保仅授权人员能连接。
1、在VSCode命令面板中执行 Remote-Tunnels: Configure Access...。
2、选择 Require GitHub authentication,此选项使所有隧道URL变为私有。
3、访问者点击链接后将跳转至GitHub登录页,仅登录了与隧道创建者同一GitHub组织或拥有对应仓库权限的用户才可继续访问。
4、若需更细粒度控制,可在GitHub中为该组织启用 SAML SSO,此时隧道访问将继承企业级身份策略。
五、关闭特定隧道或终止全部连接
隧道持续运行会占用中继资源并可能带来未预期的访问入口,应及时关闭不再使用的隧道以降低暴露面。
1、按下 Cmd+Shift+P,输入 Remote-Tunnels: List Ports... 查看当前所有活跃隧道。
2、从列表中选择目标隧道名称,按回车后出现操作菜单,选择 Remove port mapping 即刻断开该端口转发。
3、如需彻底退出隧道服务,执行 Remote-Tunnels: Turn off,状态栏提示消失且所有隧道URL立即失效。
4、命令行方式关闭:在启动隧道的终端窗口中按 Ctrl+C,或运行 code tunnel logout 清除认证凭据并终止所有会话。









