我正在尝试在运行 Node.js Web 服务器(Express、TypeScript)的实时服务器上进行调试。
我使用NODE_ENV=development node --inspect=9229 --inspect-brk build/start.js
运行 Node 服务器,它说它正在等待并监听(调试器正在监听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 服务器,并设置一个“附加到 Node.js/Chrome”配置文件,其中主机作为服务器的 URL 或 IP, WebStorm 永远无法连接。底部的“5:调试”图标上有一个小红色气泡,表示无法连接,有时会显示“显式关闭”。我已在服务器的防火墙设置中打开端口 9229
(我已尝试过 TCP 和 UDP)。
我做错了什么?请大家帮忙!
我使用的是 Mac OS X 10.15.3 和 WebStorm 2019.3.1。
最佳答案
Node 默认绑定(bind)到本地主机,因此无法从外部访问,除非您设置端口转发(例如通过 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 隧道
关于javascript - Node.js WebStorm 远程调试不起作用(没有 SSH 隧道),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60762298/