VSCode远程调试服务器程序必须满足三个硬条件:远程进程已启动调试器并监听端口、本地launch.json配置与远程路径/端口/API版本严格匹配、网络层双向可达;Remote-SSH连接成功不等于调试就绪,需单独启动调试器、正确配置launch.json的attach模式、确保端口开放与映射准确。
VSCode 远程调试服务器程序,不是“连上就行”,而是必须满足三个硬条件:远程进程已启动调试器并监听端口、本地 launch.json 配置与远程路径/端口/API 版本严格匹配、网络层(SSH 端口或调试端口)双向可达。缺一不可,否则断点不命中、变量为空、连接被拒绝全是必然结果。
Remote-SSH 连接成功 ≠ 调试就绪
Remote-SSH 插件只负责建立文件系统级的远程编辑通道,它不启动任何调试服务,也不转发调试端口。你看到左下角显示
,仅代表 VSCode 正在读写远程磁盘——此时若直接按 F5,会报错
或
。
必须单独在远程服务器上运行调试器(如
、
)
确保调试器监听地址是
(而非
),否则本地无法访问
检查远程防火墙:
或
,确认调试端口(如 2345、5678)已放行
launch.json 中 attach 模式的关键字段不能凭感觉填
Go 用
、Python 用
、Node.js 用
,各自对
字段要求不同。填错一个字段,VSCode 就会静默失败,不报错也不停断点。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
必须为
(不是
),因为目标进程已在远程运行
和
是远程服务器的监听地址,不是本地的;例如
,不是
(Go)或
(Python/Node)必须精确映射远程代码路径到本地工作区路径,比如远程是
,本地打开的是
,就得写
或
Go 的
必须与远程
输出一致(常见为
),版本不匹配会导致连接后立即断开
调试器端口被占用或未暴露是高频故障点
很多人在服务器上执行
后仍连不上,第一反应是配置错了——其实大概率是端口冲突或 SSH 隧道未启用。
先确认端口是否被占:
或
如果用 Remote-SSH 连接,但调试器监听的是公网 IP,而服务器在 NAT 后,建议改用 SSH 端口转发:在本地终端运行
,然后
中设
、
容器场景下,
必须显式声明,且容器内调试器要监听
,不能只绑
某些云服务器(如阿里云、腾讯云)安全组默认屏蔽非 22/80/443 端口,需手动放行调试端口
最常被忽略的一点:远程调试器进程必须持续运行。一旦你在服务器上 Ctrl+C 终止了
或
,VSCode 不会自动重连,断点立刻失效,且控制台无明显提示——你得自己去看远程终端是否还活着。
SSH: your-serverFailed to launch: could not find programconnection refuseddlv exec ./myapp --headless --api-version=2 --addr=:2345debugpy --port 5678 myscript.py0.0.0.0:2345127.0.0.1:2345sudo ufw statussudo firewall-cmd --list-portsdlvdebugpy--inspectlaunch.jsonmodeattachlaunchporthost"host": "192.168.31.232""host": "localhost"remotePathpathMappings/home/user/project/main.go~/code/project"remotePath": "/home/user/project""pathMappings": [ ["/home/user/project", "${workspaceFolder}"] ]apiVersiondlv version2dlv --headless --addr=:2345lsof -i :2345netstat -tuln | grep :2345ssh -L 2345:localhost:2345 user@server-iplaunch.json"host": "localhost""port": 2345-p 2345:23450.0.0.0:2345127.0.0.1dlvdebugpy