【问题标题】:How to set nodejs debug mode don't listen 127.0.0.1如何设置nodejs调试模式不听127.0.0.1
【发布时间】:2012-02-14 20:43:11
【问题描述】:

我想在 Eclipse 中远程调试 nodejs 程序。我使用调试选项启动节点脚本。

$node debug script.js

但我无法连接到 Eclispe 中的节点。当我 netstat 节点的 TCP 端口时。我发现该节点仅在调试模式下侦听 127.0.0.1。所以我无法从不同的计算机连接它。

但是我找不到任何可以更改为收听任何地址的启动选项。

有人知道让它监听任何地址以在其他计算机上进行远程调试吗?

【问题讨论】:

    标签: eclipse node.js remote-debugging google-chrome-devtools


    【解决方案1】:

    如果其他人偶然发现:您可以在设置端口时将节点调试设置为任何地址

    node --debug=169.168.1.2:5858 app.js
    

    如果这将是您的远程机器的 ip,或者对每台机器更好

    node --debug=0.0.0.0:5858 app.js
    

    但请注意,仅当您在自己的专用网络中调试并为所有人开放时,才应使用第二个选项

    【讨论】:

    • 完美,这是我连接到在 docker 容器中运行的应用程序所需要的。
    • --debug 已弃用,现在使用 --inspect
    【解决方案2】:

    这就是我在 linux Debian 中所做的:

    安装平衡器

    sudo apt-get install balance -y

    然后在平衡器中创建一个路由,将您的 5858 端口重新路由到 5859

    balance 5859 127.0.0.1:5858

    启动您的应用

    node --debug app.js

    现在您可以通过端口 5859 从任何地方访问它

    【讨论】:

    • 非常感谢。唯一有效的解决方案
    【解决方案3】:

    我正在研究从 deps/v8/src/debug-agent.* 到 deps/v8/src/platform-posix.cpp(对于 linux)到 POSIXSocket::Bind 方法的 V8 代码,它可以'似乎对此没有任何选择(除非我错过了什么)。

    我打赌你要么破解它并重新编译节点,要么你需要在你的节点进程旁边构建一个小型代理。

    【讨论】:

      【解决方案4】:

      Here's a great tut on debugging nodejs from eclipse。注意底部有一个脚本作者用来将 localhost:5858 转发到远程服务器的 127.0.0.1。你也可以use an SSH tunnel

      所以,总结一下:

      1. node --debug app.js 开始您的脚本
      2. 像在本地调试一样配置 eclipse
      3. 使用 node_g 脚本或配置 SSH 隧道
      4. 既然您的代码没有错误,那就去度假吧

      【讨论】:

      • 我尝试了 3 种方法。首先是脚本(教程无效地说它不再有用了),但它需要本地 nodejs 安装。其次,我尝试在我的服务器上使用余额,但它没有用。最后我尝试了一个使用 putty 的 SSH 隧道。这很好用,我已经使用 putty 来启动 nodejs,所以这意味着我没有额外的工作。此外,这也是隧道的用途。
      【解决方案5】:

      通过 SSH 会话远程调试 nodejs:

      1. install balance on Linux: https://balance.inlab.net/overview/
      2. run the command: balance -df 8585 127.0.0.1:5858 > /tmp/balance.out 2>&1 &
      3. ssh to your remote Linux box (tunnel will be created 8585 > 5858 > nodejs)
      4. run your node script on server: node --debug-brk --nolazy ./myNodeApp.js
      5. kick off debug session in WebStorm alt-d to port 8585
      

      现在您可以通过 SSH 会话安全地进行远程调试

      【讨论】:

        猜你喜欢
        • 2020-01-23
        • 2014-08-17
        • 2011-02-26
        • 2019-07-17
        • 2011-11-14
        • 2014-03-31
        • 2017-10-10
        • 1970-01-01
        • 2023-02-05
        相关资源
        最近更新 更多