You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置VS Code通过.pem文件远程调试AWS EC2上的Node.js应用?

我来帮你搞定VS Code远程调试EC2上Node.js应用的问题,核心是结合SSH隧道+VS Code调试配置,两种实用方式我一步步给你讲:

第一步:先准备EC2端的环境

  • 确保Node.js应用启动时开启远程调试模式:启动命令必须加上--inspect=0.0.0.0:9229(如果想让应用启动后立刻暂停等待调试,就用--inspect-brk=0.0.0.0:9229)。这里把监听地址设为0.0.0.0,否则只能在EC2内部访问调试端口。
  • 检查EC2安全组配置:添加入站规则,允许TCP端口9229,来源设为你的本地IP地址(别设为0.0.0.0/0,不安全)。
  • 确认.pem文件权限正确:Linux/macOS下执行chmod 600 /path/to/your-key.pem;Windows下右键文件→属性→安全→高级,确保只有你当前用户有读取权限,避免权限过宽导致SSH连接被拒绝。

方式一:用VS Code Remote-SSH扩展(推荐,最流畅)

这种方式相当于直接在VS Code里操作EC2实例,调试、编辑代码一步到位:

  1. 安装Remote-SSH扩展:打开VS Code扩展面板(Ctrl+Shift+X),搜索"Remote-SSH"并安装。
  2. 配置SSH连接信息:
    • 按F1,输入Remote-SSH: Open SSH Configuration File,选择你的用户配置文件(比如~/.ssh/config或Windows下的C:\Users\你的用户名\.ssh\config)。
    • 在配置文件中添加以下内容,替换占位符:
      Host ec2-node-debug
        HostName <你的EC2实例公网IP/域名>
        User <EC2实例用户名,Ubuntu是ubuntu,Amazon Linux是ec2-user>
        IdentityFile <你的.pem文件绝对路径,比如~/my-ec2-key.pem或C:\keys\my-key.pem>
      
  3. 连接到EC2实例:
    • 按F1,输入Remote-SSH: Connect to Host,选择刚才配置的ec2-node-debug。VS Code会打开新窗口,等待连接成功。
    • 连接完成后,在新窗口中打开你的应用所在目录(比如/home/ubuntu/my-node-app)。
  4. 配置调试launch.json:
    • 打开调试面板(Ctrl+Shift+D),点击"create a launch.json file",选择Node.js环境。
    • 修改生成的launch.json为:
      {
        "version": "0.2.0",
        "configurations": [
          {
            "type": "node",
            "request": "attach",
            "name": "Attach to Remote App",
            "address": "localhost",
            "port": 9229,
            "remoteRoot": "${workspaceFolder}" // 已在远程窗口,直接用工作区目录即可
          }
        ]
      }
      
  5. 启动调试:确保EC2上的应用已用--inspect=0.0.0.0:9229启动,点击调试面板的绿色启动按钮,就能断点调试了!

方式二:本地建立SSH端口转发(适合不想切换远程窗口的场景)

如果想在本地VS Code里调试,只需先建立端口转发,把EC2的9229端口映射到本地:

  1. 运行端口转发命令:在本地终端(Linux/macOS用终端,Windows用PowerShell或Git Bash)执行:
    ssh -i /path/to/your-key.pem -L 9229:localhost:9229 <EC2用户名>@<EC2公网IP>
    
    这个命令会把本地的9229端口转发到EC2实例的localhost:9229。
  2. 配置本地VS Code的launch.json:
    • 在本地VS Code打开你的应用代码目录。
    • 创建launch.json文件,内容如下(替换remoteRoot为EC2上应用的绝对路径):
      {
        "version": "0.2.0",
        "configurations": [
          {
            "type": "node",
            "request": "attach",
            "name": "Attach to EC2 Node App",
            "address": "localhost",
            "port": 9229,
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "/home/ubuntu/my-node-app" // EC2上的代码路径,要和本地代码结构一致
          }
        ]
      }
      
  3. 启动调试:确保EC2上的应用已开启调试模式,点击本地VS Code调试面板的启动按钮,就能断点调试了。

注意事项

  • 用方式二时,本地代码和EC2上的代码要保持完全一致,否则断点会对应不上。
  • 若调试时连接失败,先检查EC2安全组是否开放9229端口、应用是否正确开启调试模式、SSH连接是否正常。

内容的提问来源于stack exchange,提问作者vikneshwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:45:04