登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

VS Code Remote SSH 端口转发入口在哪里设置

来源:17golang原创

时间:2026-09-15 06:08:05 391浏览 收藏

VS Code Remote SSH 连接成功后,端口转发入口不在普通的 SSH 主机配置输入框里,而是在远程窗口底部面板的 Ports 视图,或者命令面板的 Forward a Port 命令。先确认左下角显示的是远程主机,再输入远程服务端口;转发完成后,VS Code 会给出一个本地地址,访问这个地址就能访问远程服务。

官方地址:https://code.visualstudio.com/docs/remote/ssh

最短路径是:连接 Remote-SSH 主机 → 打开底部 Ports → 点击 Add Port → 输入远程端口。若看不到端口列表,执行命令面板中的 Ports: Focus on Ports View
要点速览
  • 临时转发入口是 Ports 视图的 Add Port,也可以从命令面板执行 Forward a Port。
  • 远程端口和本地访问端口可能不同,要以 Forwarded Address 的结果为准。
  • 反复使用时可打开 Remote: Restore Forwarded Ports,固定映射则写入 SSH 配置的 LocalForward。

一、先确认当前窗口已经连到 SSH 主机

端口转发针对的是当前远程会话。点击左下角的 Remote 状态栏,应该能看到当前 SSH 主机;也可以打开活动栏中的 Remote Explorer,在 SSH Targets 下确认连接对象。此时新建的集成终端会在远程主机上运行,而不是在本机运行。

如果左下角仍显示本地窗口,先执行命令面板中的 Remote-SSH: Connect to Host...,连接完成后再找端口入口。否则即使添加了端口,也可能是在错误的窗口上下文里操作。

二、在 Ports 视图找到端口转发入口

打开路径是:底部面板 → Ports。如果底部没有显示 Ports 标签,按 F1Ctrl+Shift+P(macOS 为 ⇧⌘P)打开命令面板,输入并执行 Ports: Focus on Ports View

进入 Ports 视图后,点击右侧的 Add Port。另一个等价入口是命令面板中的 Forward a Port。这两个入口解决的是同一件事:在当前 Remote-SSH 会话里,为远程主机上正在监听的端口建立到本地的 SSH 转发。

VS Code Remote SSH 远程窗口底部 Ports 视图中的 Add Port 端口转发入口示意
图1:操作示意图,连接远程主机后在底部 Ports 视图点击 Add Port,进入端口输入状态。

三、输入远程端口并确认本地映射结果

点击 Add Port 后,在输入框填写远程服务实际监听的端口,例如开发服务使用的 3000。需要区分两件事:3000 是远程端口,不一定就是本地浏览器最终访问的端口;如果本地的 3000 已经被占用,VS Code 可能分配另一个本地端口。

添加后观察 Ports 列表中的 Forwarded Address。例如远程端口是 3000,本地地址可能显示为 http://localhost:4123。以列表给出的地址为准,点击复制或在浏览器打开;不要只把远程端口机械地拼到 localhost 后面。

VS Code Remote SSH Ports 列表显示远程端口 3000 与本地 Forwarded Address 映射结果示意
图2:结果示意图,Ports 列表展示远程端口、名称和 Forwarded Address,按本地映射地址访问远程服务。

如果列表没有出现预期服务,先在远程终端确认应用确实监听了目标端口,再检查服务是否只绑定在远程主机的回环地址。端口转发建立成功只代表隧道存在,不代表应用本身已经启动或返回了正确页面。

四、需要长期使用时打开恢复设置

临时转发适合调试和一次性查看服务,连接结束后不应把它当作永久配置。若希望 VS Code 记住转发端口,打开 Settings → 搜索 Remote: Restore Forwarded Ports,启用该设置;也可以在 settings.json 中填写下面这个严格 JSON 配置。JSON 不能写注释,字段含义是:remote.restoreForwardedPorts 控制重新连接时是否恢复已转发端口。

{
  "remote.restoreForwardedPorts": true
}

如果端口是固定的开发依赖,更适合写到 SSH config 的对应 Host 段。下面的示例把远程主机的 3000 端口映射到本机 3000;行首的中文注释只是说明用途,实际配置中也可以保留。

Host demo-remote
    # 指定登录用户和远程主机
    User dev
    HostName example.internal
    # 本机 3000 转发到远程主机 3000
    LocalForward 127.0.0.1:3000 127.0.0.1:3000

固定转发修改的是 SSH 配置文件,不是 Ports 列表中的一次性记录。改完后重新连接对应的 SSH Host,再检查 Ports 视图是否出现映射。

相关问题

为什么找不到 Ports 视图?

通常是当前窗口还没有进入远程环境,或面板标签被隐藏。先确认左下角 Remote 状态,再用 Ports: Focus on Ports View 直接聚焦。

远程端口和本地端口必须相同吗?

不必须。远程端口是服务监听端口,本地端口由转发结果决定;端口冲突时 VS Code 可能选择不同的本地端口。

什么时候应该使用 LocalForward?

只在每次连接都需要同一组固定转发时使用。临时调试优先用 Ports 视图,配置更直观,也不容易把不用的隧道长期留在 SSH 配置里。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>