Node.js WebStorm 远程调试不起作用(没有 SSH 隧道)

Posted

技术标签:

【中文标题】Node.js WebStorm 远程调试不起作用(没有 SSH 隧道)【英文标题】:Node.js WebStorm remote debugging not working (without SSH tunnel) 【发布时间】:2020-06-30 21:22:08 【问题描述】:

我正在尝试在运行 Node.js 网络服务器(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),并设置了一个“附加到 Node.js/Chrome”调试配置,主机:localhost 和端口:9229。然后当我点击调试按钮时,它通过 SSH 隧道连接,node.js 进程运行良好,在我所有的断点处停止和调试。

但是,当我不设置 SSH 隧道时,以同样的方式启动节点服务器,并设置一个“附加到 Node.js/Chrome”配置文件,主机作为服务器的 URL 或 IP, WebStorm 永远无法连接。底部的“5:调试”图标上方有一个小红色气泡表示无法连接,有时会显示“显式关闭”。我在服务器的防火墙设置中打开了端口9229(我尝试过TCP和UDP)。

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Node.js WebStorm 远程调试不起作用(没有 SSH 隧道)的主要内容,如果未能解决你的问题,请参考以下文章

无法从 WebStorm 调试远程 docker node.js 应用程序

WebStorm远程调试Node.js

如何使用源映射远程调试 Node.js 应用程序(使用 WebStorm)

启用 Node.js 编码辅助 WebStorm 不起作用

调试 Node.js 应用程序时,WebStorm 在错误的文件上停止

WebStorm react-native 调试不起作用