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

标签 javascript node.js debugging webstorm remote-debugging

我正在尝试在运行 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/

相关文章:

javascript - 导入 “@smui/fab ”后CSS无法在Svelte中正常工作吗?

node.js - 使用 Mongoose 获取所有数据库的列表

node.js - Puppeteer chrome 允许多个文件下载

ios - 如何在 iOS 7 上以兼容模式调试应用程序?

javascript - 在验收测试中调试 Ember CLI Mirage

javascript - .each 中的 jQuery 数组 .map

asp.net - 禁用表单提交按钮

javascript - UglifyJS 抛出错误 Unexpected token : operator (>)

android - Kotlin - SimpleDateFormat 解析需要无限时间

ios - XCode:在没有附加调试器的情况下运行 iOS 应用程序