如何在VS Code中无需打开SSH窗口实现SSH端口转发
解决方案
1. 基于Remote-SSH的本地窗口端口转发(无需切换远程工作区)
Remote-SSH支持在本地项目窗口直接建立端口转发,无需切换到远程工作区:
- 打开本地Django项目窗口,唤出命令面板(
Ctrl+Shift+P/Cmd+Shift+P) - 输入
Remote-SSH: Forward Port from Remote并执行 - 依次输入远程MySQL端口
3306、本地映射端口3308,选择已配置的远程SSH连接 - 确认后隧道即可建立,本地Django可通过
localhost:3308访问远程数据库
实现自动创建隧道(打开仓库时触发)
在项目根目录的 .vscode/settings.json 中添加配置:
{ "remote.SSH.defaultForwardedPorts": [ { "name": "Remote MySQL -> Local 3308", "remotePort": 3306, "localPort": 3308, "host": "你的远程SSH主机名/IP" } ] }
下次打开项目窗口时,VS Code会提示确认建立转发,确认后自动完成隧道创建。
2. SSH命令行隧道 + VS Code自动任务
如果Remote-SSH的方式不适用,可通过SSH命令后台建立隧道,并绑定到项目打开事件:
- 先配置本地SSH免密登录远程机器(避免重复输入密码)
- 在项目的
.vscode/tasks.json中添加自动任务:
{ "version": "2.0.0", "tasks": [ { "label": "启动MySQL端口隧道", "type": "shell", "command": "ssh -f -N -L 3308:localhost:3306 你的远程用户名@远程机器IP", "problemMatcher": [], "runOptions": { "runOn": "folderOpen" } } ] }
保存后,每次打开项目窗口,隧道会自动在后台启动。停止隧道可执行:
- Mac/Linux:
lsof -ti:3308 | xargs kill - Windows:
netstat -ano | findstr :3308找到PID后用taskkill /PID <PID> /F结束进程
3. 轻量扩展替代:Port Tunnel
若不想依赖Remote-SSH,可使用「Port Tunnel」扩展:
- 在VS Code扩展市场安装该扩展
- 打开扩展面板,新建SSH隧道:填写远程主机、用户名、远程端口3306、本地端口3308
- 在扩展设置中开启「Auto Connect on Startup」并绑定到当前工作区,实现打开项目自动建隧道
内容的提问来源于stack exchange,提问作者Temba
相关产品推荐
相关产品推荐

