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

Node.js WebStorm remote debugging not working (without SSH tunnel)

我正在尝试在实时服务器上调试 运行宁 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),并设置了 "Attach to Node.js/Chrome" 调试配置,主机:localhost 和端口:9229.然后,当我点击调试按钮时,它通过 SSH 隧道连接,node.js 进程 运行 一切正常,在我所有的断点处停止和调试。

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

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

我正在使用 Mac OS X 10.15.3 和 WebStorm 2019.3.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 隧道