Eclipse 如何设置nodejs调试模式don';t听127.0.0.1

Eclipse 如何设置nodejs调试模式don';t听127.0.0.1,eclipse,node.js,remote-debugging,google-chrome-devtools,Eclipse,Node.js,Remote Debugging,Google Chrome Devtools,我想在Eclipse中远程调试nodejs程序。我使用debug选项启动节点脚本 $node debug script.js 但我无法连接到Eclispe中的节点。当我netstat节点的TCP端口时。我发现该节点在调试模式下只侦听127.0.0.1。因此,我无法从其他计算机连接它。 但我找不到任何可以更改为收听任何地址的启动选项。 有人知道如何让它监听任何地址以便在其他计算机上进行远程调试吗?我正在研究通过deps/V8/src/debug agent.*到deps/V8/src/platf

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

$node debug script.js
但我无法连接到Eclispe中的节点。当我netstat节点的TCP端口时。我发现该节点在调试模式下只侦听127.0.0.1。因此,我无法从其他计算机连接它。

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


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

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

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

。注意,在底部有一个脚本,作者使用它将localhost:5858转发到远程服务器的127.0.0.1。你也可以

因此,总结一下:

  • 使用
    节点--debug app.js启动脚本
  • 像在本地调试一样配置eclipse
  • 使用节点脚本或配置SSH隧道
  • 既然你的代码没有bug,那就去度假吧

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

    安装平衡器

    sudo-apt-get-install-balance-y

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

    余额5859 127.0.0.1:5858

    启动你的应用程序

    节点——调试app.js


    现在,您可以从端口5859的任何地方访问它,如果其他人偶然发现了这一点:您可以在设置端口时将节点调试设置为任何地址

    node --debug=169.168.1.2:5858 app.js
    
    如果这是远程机器的ip,或者对每台机器更好

    node --debug=0.0.0.0:5858 app.js
    

    但请注意,只有当您在自己的专用网络中进行调试时,才应使用第二个选项,因为您为每个人打开它,以便通过SSH会话远程调试NodeJ,请执行以下操作:

    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会话安全地进行远程调试了

    我已经尝试了3种方法。首先是脚本(教程无效地说它不再有用),但它需要本地nodejs安装。第二,我尝试在服务器上使用balance,但没有成功。上一次我尝试了使用putty的SSH隧道。这非常有效,我已经用油灰来启动nodejs,所以这意味着我没有额外的工作。还有,这就是隧道的作用。非常感谢。唯一有效的解决方案是完美的,这是我连接到docker容器中运行的应用程序所需要的。
    --debug
    不受欢迎,现在使用
    --inspect