最快打开端口转发面板的方式是按ctrl+shift+p(win/linux)或cmd+shift+p(mac),输入“remote-ssh: forward a port…”回车,该命令仅在已建立remote-ssh等远程连接的窗口中生效;若搜不到,需先确认状态栏是否显示ssh/wsl连接标识。

VSCode 里怎么打开端口转发面板?
直接按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Forward a Port,回车即可。这个命令只在已连接到远程 SSH 主机(或 WSL、Dev Containers)时才可见——没连上远程环境,搜不到它。
常见误区是以为有独立快捷键,其实没有预设绑定;必须走命令面板触发。如果搜不到,先确认左下角状态栏是否显示 SSH: xxx 或 WSL: xxx。
端口转发面板打不开?检查这几点
面板空白、按钮不可点,大概率是以下情况之一:
- 远程机器上目标端口被占用或服务未启动(比如你填了
3000,但npm start没跑) - 防火墙/安全组拦截了该端口(尤其云服务器,得手动放行入方向
3000) - VSCode 的 Remote-SSH 扩展没启用,或版本太旧(推荐更新到 v0.96+)
- 你在本地用浏览器访问
http://localhost:3000,但实际转发的是远程的127.0.0.1:3000—— 如果远程服务绑定了0.0.0.0才能访问,否则只响应本地 loopback
转发后访问不了?URL 和绑定地址要对得上
VSCode 默认把远程 127.0.0.1:3000 映射到本地 localhost:3000,但很多开发服务(如 Create React App、Next.js)默认只监听 127.0.0.1,不接受外部连接。这时候即使转发成功,浏览器也打不开。
解决办法是让服务监听 0.0.0.0:
- Create React App:启动加
HOST=0.0.0.0 npm start - Next.js:
next dev -H 0.0.0.0 - Express:
app.listen(3000, '0.0.0.0')
别漏掉 '0.0.0.0' 这个参数,只写端口号没用。
多个端口要转发?别重复开面板
每次调 Forward a Port 只能加一个端口,但面板右上角有齿轮图标,点开能看到所有已转发端口,支持手动编辑、删除、重定向。也可以直接在 .vscode/settings.json 里配静态转发:
{
"remote.SSH.portForwarding": [
{ "localPort": 3000, "remotePort": 3000, "remoteAddress": "127.0.0.1" },
{ "localPort": 5000, "remotePort": 5000, "remoteAddress": "127.0.0.1" }
]
}
注意:remoteAddress 不能写成 localhost,必须是 IP 形式,否则某些 SSH 配置下会失败。
真正麻烦的不是怎么加端口,而是搞清「谁在监听」「谁在请求」「网络路径经过几层代理」——这三个地方错一个,就白配。











