VS Code SSH Remote下远端localhost可本地访问的原因及关闭方法咨询
VS Code SSH Remote 端口访问现象解答
成因说明
这一现象是两方面配置共同导致的,和VS Code的机制确实有关:
- VS Code SSH Remote默认开启自动端口转发功能:它会实时检测远端机器localhost上监听的新端口,自动在SSH隧道中建立端口映射,把远端端口绑定到你本地机器的相同端口,所以你直接访问本地
localhost:对应端口就能访问到远端的服务。 - 无法通过远端IP访问服务和VS Code无关,是你服务端的监听配置问题:你启动应用时绑定的监听地址是
127.0.0.1(仅回环接口可访问),所以只有远端本机的进程可以访问该服务,外部机器通过远端公网/内网IP都无法直接访问。如果需要通过远端IP访问,启动应用时把监听地址改为0.0.0.0,同时确认远端防火墙放行对应端口即可。
关闭自动端口转发的操作方式
临时关闭单条端口转发
打开VS Code端口面板(底部状态栏区域可找到「端口」标签,也可按Ctrl+Shift+P/Cmd+Shift+P搜索「端口:聚焦端口视图」唤起),找到对应转发端口的条目,右键选择「停止端口转发」即可。
永久关闭自动转发功能
- 按
Ctrl+,/Cmd+,打开VS Code设置页 - 搜索配置项
remote.autoForwardPorts,取消勾选该选项即可,后续所有SSH Remote会话都不会再自动检测转发端口。 - 如果你只是不想转发特定端口,可以修改
remote.restrictedForwardedPorts配置,把需要排除的端口添加到列表中即可。
内容的提问来源于stack exchange,提问作者grandalph
相关产品推荐
相关产品推荐

