如何配置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实例,调试、编辑代码一步到位:
- 安装Remote-SSH扩展:打开VS Code扩展面板(Ctrl+Shift+X),搜索"Remote-SSH"并安装。
- 配置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>
- 按F1,输入
- 连接到EC2实例:
- 按F1,输入
Remote-SSH: Connect to Host,选择刚才配置的ec2-node-debug。VS Code会打开新窗口,等待连接成功。 - 连接完成后,在新窗口中打开你的应用所在目录(比如
/home/ubuntu/my-node-app)。
- 按F1,输入
- 配置调试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}" // 已在远程窗口,直接用工作区目录即可 } ] }
- 启动调试:确保EC2上的应用已用
--inspect=0.0.0.0:9229启动,点击调试面板的绿色启动按钮,就能断点调试了!
方式二:本地建立SSH端口转发(适合不想切换远程窗口的场景)
如果想在本地VS Code里调试,只需先建立端口转发,把EC2的9229端口映射到本地:
- 运行端口转发命令:在本地终端(Linux/macOS用终端,Windows用PowerShell或Git Bash)执行:
这个命令会把本地的9229端口转发到EC2实例的ssh -i /path/to/your-key.pem -L 9229:localhost:9229 <EC2用户名>@<EC2公网IP>localhost:9229。 - 配置本地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上的代码路径,要和本地代码结构一致 } ] }
- 启动调试:确保EC2上的应用已开启调试模式,点击本地VS Code调试面板的启动按钮,就能断点调试了。
注意事项
- 用方式二时,本地代码和EC2上的代码要保持完全一致,否则断点会对应不上。
- 若调试时连接失败,先检查EC2安全组是否开放9229端口、应用是否正确开启调试模式、SSH连接是否正常。
内容的提问来源于stack exchange,提问作者vikneshwar
相关产品推荐
相关产品推荐

