2015-12-14 130 views
6

我有一个Linux服务器(操作系统:CentOS,IP:192.168.1.100)与我想要调试的节点应用程序。
由于某些原因@office我必须在远程客户端上工作(ip:192.168.1.7),因为Linux服务器没有GUI /浏览器。Node.js:如何远程调试?

我没有按规定使用节点检查的指令,没有成功...

这里是我做过什么:

$ npm --version 
2.14.2 

$ node --version 
v4.0.0 

$ npm install -g node-inspector 

$ node-inspector --version 
Node Inspector v0.12.3 

$ node-debug myApp.js 
Node Inspector is now available from http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 
Debugging `myApp.js` 

Debugger listening on port 5858 

然后,如果我打开我的客户端浏览器http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 ,我得到错误ERR_ADDRESS_UNREACHABLE

如果我打开我的客户端浏览器到http://192.168.1.100:8080/?ws=192.168.1.100:8080&port=5858,结果相同。

如果(出于好奇),我打开http://192.168.1.100:5858我只是得到:

Type: connect 
V8-Version: 4.5.103.30 
Protocol-Version: 1 
Embedding-Host: node v4.0.0 
Content-Length: 0 

我确实已经在我的防火墙开放的端口8080和5858(是在安全方面)(在/etc/sysconfig/iptables我:

... 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5858 -j ACCEPT 
... 

)。

我错过了什么?


UPDATE: @aleung的建议后,我没加web-host=0.0.0.0标志node-debug命令行,没有巨大的成功:我总是在浏览器ERR_ADDRESS_UNREACHABLE。即使是192.168.1.7客户端 超时的telnet 192.168.1.100 8080也是如此。相反,telnet 192.168.1.100 5858答案:

Type: connect 
V8-Version: 4.5.103.30 
Protocol-Version: 1 
Embedding-Host: node v4.0.0 
Content-Length: 0 

这可能意味着调试器监听,但它仍然是从客户端界面:-(

回答

2

默认节点检查Web服务器无法访问侦听127.0.0.1,只接受从本地主机连接时,您必须在服务器上启动的节点检查与选项--web-host=0.0.0.0

$ node-debug --web-host 0.0.0.0 myApp.js 

然后打开你的客户端浏览器http://server:8080/?ws=server:8080&port=5858,其中服务器是您的服务器IP。

+0

谢谢!我想你的意思是 - 网络主机,因为否则我得到'无法启动网络主机= 0.0.0.0:未找到:网络主机= 0.0.0.0' ...但是,虽然你的建议看起来很有希望,我保持在浏览器上获得'ERR_ADDRESS_UNREACHABLE'(几秒钟后)... :-( – MarcoS

+0

请注意,--web-host = 0.0.0.0似乎在做它的工作,因为netstat告诉我节点正在监听0.0.0.0:8080,而不是127.0.0.1:8080 ... – MarcoS

+0

@MarcoS它是'--web-host',修复了。 – aleung