Node.js WebStorm远程调试无法工作(没有SSH隧道)



我正试图在运行Node.js Web服务器(Express,TypeScript(的实时服务器上进行调试。

我用NODE_ENV=development node --inspect=9229 --inspect-brk build/start.js运行节点服务器,它说它正在等待和侦听(Debugger listening on ws://127.0.0.1:9229/a61485f2-aef8-4719-901d-4d5ad9d1e6cd(。

我设置了一个SSH隧道(使用此方法:https://gist.github.com/pajtai/081e0371e7366c79c0b9),我设置了一个"Attach to Node.js/Chrome"调试配置,主机:localhost,端口:9229。然后,当我点击debug按钮时,它通过SSH隧道连接,node.js进程运行得很好,在我的所有断点处停止并调试。

然而,当我没有设置SSH隧道,以同样的方式启动节点服务器,并以主机为服务器的URL或IP设置"Attach to node.js/Chrome"配置文件时,WebStorm永远无法连接。底部的"5:Debug"图标上有一个红色的小气泡,表示无法连接,有时还会显示"Closed Explically"。我已经在服务器的防火墙设置中打开了端口9229(我尝试过TCP和UDP(。

我做错了什么?请大家帮忙!

我使用的是Mac OS X 10.15.3和WebStorm 2019.3.1。

Node默认绑定到localhost,因此除非设置端口转发(例如通过ssh隧道(,否则无法从外部访问。您可以尝试将命令更改为node --inspect-brk=0.0.0.0:9229 build/start.js,这有帮助吗?

请注意,Node.js不鼓励以这种方式使用远程调试:https://nodejs.org/en/docs/guides/debugging-getting-started/#enabling-远程调试场景。建议使用SSH隧道

最新更新