VSCode Remote Tunnels可安全共享本地Web服务。需安装tunnel CLI、登录微软账户;绑定端口创建命名隧道获取公网URL;支持密码保护或匿名访问;可通过CLI或VSCode图形界面管理;遇故障可用tunnel log排查。

如果您希望在没有公网IP或复杂网络配置的情况下,将本地运行的Web服务安全地分享给他人访问,则VSCode的Remote Tunnels功能可直接建立加密隧道,绕过路由器端口映射与防火墙限制。以下是实现该功能的具体步骤:
本文运行环境:MacBook Air,macOS Sequoia。
一、安装并登录VSCode Remote Tunnels CLI
Remote Tunnels依赖独立的命令行工具,需先在本地系统中安装并完成微软账户认证,以获取隧道身份凭证和端点权限。
1、打开终端,执行命令安装tunnel CLI:curl -fsSL https://aka.ms/install-tunnel-linux | sh(macOS用户请替换为https://aka.ms/install-tunnel-darwin)。
2、运行tunnel login,终端将输出一个一次性登录链接,用浏览器打开并使用微软账户完成授权。
3、授权成功后,CLI自动保存访问令牌,后续所有隧道操作均无需重复登录。
二、启动本地服务并创建命名隧道
隧道需绑定正在运行的服务端口,且支持为每个端口分配唯一可读名称,便于远程用户识别用途,同时避免端口冲突。
1、确保本地服务已启动,例如运行python3 -m http.server 8000开启静态文件服务器。
2、执行命令创建命名隧道:tunnel --name my-web-app --port 8000。
3、命令返回类似https://my-web-app-12345abcdef.tunnels.api.visualstudio.com的公网URL,该地址即为可共享的访问入口。
三、配置访问权限与身份验证
默认情况下,隧道仅允许登录同一微软账户的用户访问;可通过参数显式设置公开性与密码保护,控制未授权访问风险。
1、添加密码保护:在启动命令中加入--password参数,例如tunnel --name api-dev --port 3001 --password "secr3t!"。
2、启用完全公开访问(不推荐生产环境):添加--allow-anonymous标志,此时任意持有URL者均可连接。
3、查看当前活跃隧道列表及状态:运行tunnel list,输出包含隧道名、端口、URL、访问策略等字段。
四、通过VSCode桌面客户端管理隧道
除CLI外,VSCode桌面版内置Remote Tunnels界面,提供图形化操作路径,适合不熟悉终端的用户快速启停与重命名隧道。
1、在VSCode中按下Cmd+Shift+P(macOS)调出命令面板,输入Remote-Tunnels: Create Tunnel并回车。
2、选择“From port”选项,在弹出输入框中键入本地服务端口号(如8080),再输入隧道名称(如demo-server)。
3、创建完成后,状态栏右下角显示隧道图标,点击可复制URL、查看日志或执行Stop Tunnel操作。
五、调试与日志排查连接失败问题
当远程用户无法加载页面时,需检查本地隧道进程是否存活、端口是否被占用、以及网络出口是否拦截了tunnel流量。
1、在终端中运行tunnel log,实时查看隧道握手、认证、HTTP请求转发等事件流。
2、若提示Failed to connect to tunnel service,尝试重启tunnel daemon:tunnel daemon stop && tunnel daemon start。
3、确认本地防火墙未阻止tunnel进程出站连接,macOS用户可在“系统设置 > 隐私与安全性 > 防火墙 > 防火墙选项”中检查其放行状态。










