如何使用Chrome DevTools远程调试远程服务器上的Node.js控制台应用
没问题!我经常帮开发者搞定远程Node.js调试的需求,用Chrome DevTools来调试远程控制台应用其实非常方便,分几步就能搞定:
1. 启动远程Node应用并开启调试模式
首先登录到你的远程服务器,找到你的Node应用文件,用下面的命令启动它:
node --inspect=0.0.0.0:9229 your-app.js
--inspect: 开启Node的调试模式,启用Chrome DevTools兼容的调试协议0.0.0.0: 允许来自任何IP的调试连接(如果只允许本地局域网访问,也可以改成服务器的内网IP)9229: 默认的调试端口,要是这个端口被占用,你可以改成其他端口比如9230- 如果需要应用在启动时就暂停在第一行代码(方便从头调试),可以用
--inspect-brk代替--inspect:node --inspect-brk=0.0.0.0:9229 your-app.js
2. 确保调试端口能被本地访问
这一步很关键,不然Chrome连不上远程服务器:
- 如果是云服务器(比如AWS、阿里云、腾讯云),需要在安全组规则里添加一条入站规则,允许你的本地IP访问指定的调试端口(比如9229)
- 如果是局域网内的服务器,确保你的本地机器和服务器在同一个网络,并且服务器防火墙没有拦截该端口
3. 在本地Chrome中连接到远程调试会话
打开你的Chrome浏览器,接下来按以下操作:
- 在地址栏输入
chrome://inspect并回车 - 在页面底部找到Configure按钮,点击它
- 在弹出的对话框里,输入远程服务器的IP地址和调试端口,格式是
[服务器IP]:[端口](比如192.168.1.100:9229或者xxx.xxx.xxx.xxx:9229),然后点击Done - 稍等几秒,Chrome会自动检测到远程运行的Node应用,在Remote Target列表里会显示你的应用名称
- 点击应用旁边的inspect按钮,就能打开熟悉的Chrome DevTools界面了!
额外的安全小技巧(公网服务器推荐)
如果你的服务器在公网上,直接开放调试端口可能有安全风险,这时候可以用SSH隧道来转发端口,步骤如下:
在本地终端执行这条命令:
ssh -L 9229:localhost:9229 your-username@remote-server-ip
这条命令会把本地的9229端口,转发到远程服务器的localhost:9229端口。之后在Chrome的chrome://inspect里配置localhost:9229就行,这样就不用在公网暴露调试端口了,更安全。
一些注意事项
- 确保你的Node.js版本在8.x及以上,
--inspect是Node 8.x引入的新调试协议,旧版本的--debug协议Chrome已经不再支持 - 如果连接不上,可以检查服务器的防火墙、安全组设置,或者尝试换一个端口
- 在DevTools里,你可以像调试本地Node应用一样设置断点、查看控制台输出、检查变量、分析内存使用,完全没有区别
内容的提问来源于stack exchange,提问作者jramirez
相关产品推荐
相关产品推荐

