VSCode的Remote Tunnels:安全地将本地服务暴露给公网

14次阅读

vscode的Remote Tunnels功能可安全共享本地Web服务。需先启用隧道并登录gitHub账号,再创建命名隧道映射本地端口,接着配置macOS权限与防火墙,最后限制访问范围和时效以增强安全性。

VSCode的Remote Tunnels:安全地将本地服务暴露给公网

如果您希望在不配置复杂网络环境的情况下,将本地运行的Web服务或开发服务器临时分享给他人访问,VSCode的Remote Tunnels功能可提供端到端加密的隧道通道。以下是实现该功能的具体操作路径:

本文运行环境:macbook air,macOS Sequoia。

一、启用Remote Tunnels并登录github账户

Remote Tunnels依赖GitHub身份认证来建立安全会话,需先在VSCode中激活隧道服务并绑定个人GitHub账号,所有通信均通过microsoft托管的中继服务器完成,本地服务IP和端口不会直接暴露于公网。

1、打开VSCode,按下Cmd+Shift+P调出命令面板。

2、输入Remote-Tunnels: Turn on Remote Tunnel并回车执行。

3、在弹出的浏览器窗口中,使用已启用2FA的GitHub账户完成授权。

4、返回VSCode,状态栏右下角出现Remote Tunnel: Connected提示即表示隧道服务已就绪。

二、为本地服务创建命名隧道

VSCode默认仅转发其内置端口(如调试器、扩展端口),若需暴露自定义服务(如localhost:3000的react开发服务器),必须显式声明端口映射规则,隧道名称将生成唯一可分享的URL前缀。

1、按下Cmd+Shift+P,输入Remote-Tunnels: Create Tunnel并回车。

2、在输入框中键入不超过32字符的英文隧道名称(例如my-dev-app)。

3、选择Port类型,而非VS Code Server类型。

4、输入本地服务监听的端口号,例如3000

5、确认后,VSCode生成类似https://my-dev-app-8r7x9c3v.tunnels.api.visualstudio.com的全局可访问地址。

三、配置端口转发权限与防火墙例外

macos系统默认阻止未经签名的进程监听网络连接,即使隧道已建立,本地服务仍可能因系统级拦截而无法被中继服务器探测,需手动授予VSCode完整磁盘访问及网络监听权限。

1、前往系统设置 > 隐私与安全性 > 完整磁盘访问,点击“+”添加visual studio Code应用。

2、在同页面下滑至防火墙 > 选项 > 防火墙选项,确保visual studio code状态为允许传入连接

3、终端中运行lsof -i :3000验证服务确实在127.0.0.1:3000而非localhost:3000监听(部分框架默认绑定localhost,需改用0.0.0.0)。

四、限制隧道访问范围与时效

Remote Tunnels默认生成的链接具有长期有效性且无访问密码,存在未授权访问风险,可通过VSCode设置强制启用一次性链接或绑定IP白名单,降低暴露面。

1、打开VSCode设置(Cmd+,),搜索remote.tunnels.allowAnonymousaccess

2、将其值设为false以禁用匿名访问。

3、搜索remote.tunnels.expirationTimeInHours,修改数值为124之间的整数,使隧道链接在指定小时后自动失效。

4、若需进一步控制,可在命令面板执行Remote-Tunnels: Manage Tunnel Access,为已创建隧道添加GitHub组织成员限制

text=ZqhQzanResources