信息发布→ 登录 注册 退出

使用VS Code的远程调试功能调试服务器上的代码

发布时间:2025-12-04

点击量:
VS Code远程调试通过本地编辑器连接远程调试代理实现,需安装对应语言调试器(如Python用debugpy)、开放端口并正确配置launch.json的host、pathMappings等参数。

VS Code 的远程调试功能可以让你在本地编辑代码,同时直接调试运行在远程服务器(比如 Linux 服务器、Docker 容器或 WSL)上的程序。关键不是“把代码拷到本地”,而是让 VS Code 的调试器与远程环境中的调试代理(如 ptvsddebugpynode --inspect 等)通信。

确保远程环境已安装对应语言的调试支持

不同语言需要不同的调试适配器。例如:

  • Python:推荐使用 debugpy(微软官方维护,替代已停更的 ptvsd
  • Node.js:内置 --inspect 模式,无需额外安装
  • Go / Java / C#:需安装对应扩展并配置远程调试代理(如 dlvjdwpdotnet-dbg

以 Python 为例,在远程服务器上执行:
pip install debugpy
确认安装成功后,可通过 python -m debugpy --help 验证。

启动远程调试服务并开放端口

让目标程序以调试模式启动,并监听一个可被本地 VS Code 访问的端口(默认通常是 5678)。注意:该端口需在远程服务器防火墙/安全组中放行,且绑定地址建议用 0.0.0.0(而非 127.0.0.1),否则本地连不上。

例如 Python 调试启动命令:

python -m debugpy --listen 0.0.0.0:5678 --wait-for-client your_script.py

其中 --wait-for-client 表示启动后暂停,等 VS Code 连接后再继续执行,便于打断点。

在本地 VS Code 中配置 launch.json

打开项目文件夹(可以是空文件夹,只要能访问源码),按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Debug: Open launch.json,选择对应环境(如 Python),然后修改配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Remote Attach",
      "type": "python",
      "request": "attach",
      "connect": {
        "host": "your-server-ip",
        "port": 5678
      },
      "pathMappings": [
        {
          "localRoot": "${workspaceFolder}",
          "remoteRoot": "/path/on/server"  // 远程脚本实际所在路径
        }
      ]
    }
  ]
}

重点检查三项:

  • host:填服务器公网或内网 IP(不是 localhost
  • remoteRootlocalRoot 必须一一对应,否则断点无法命中(路径大小写、斜杠方向、软链接都可能影响)
  • 确保本地有和远程一致的源码(不需要完全同步,但设断点的文件必须存在且内容匹配)

连接调试并验证

在本地 VS Code 中设置好断点,按 F5 启动调试(选择刚配置的 Python: Remote Attach),如果看到调试工具栏出现、变量窗可读取、程序在断点暂停,说明成功。

常见失败原因:

  • 端口不通(telnet your-server-ip 5678 测试)
  • 路径映射错误(remoteRoot 多了 /home/user 或少了 /app
  • 远程调试进程未启动,或已退出
  • 本地代码版本和远程不一致(改了但没同步,或用了 git checkout 切分支)

基本上就这些。不复杂但容易忽略细节,尤其是路径和端口绑定方式。

标签:# php  # java  # linux  # python  # js  # node.js  # git  # json  # node  # go  # docker  # win  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!