Node.js:如何远程调试?

Mar*_*coS 7 javascript debugging node.js node-inspector

我有一个Linux服务器(os:Centos,ip:192.168.1.100)和我想要调试的节点应用程序.
出于某种原因@office我必须在远程客户端(ip:192.168.1.7)上工作,因为Linux服务器没有GUI /浏览器.

我按照指令使用节点检查器,没有成功......

这是我做的:

$ 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
Run Code Online (Sandbox Code Playgroud)

然后,如果我打开我的客户端浏览器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
Run Code Online (Sandbox Code Playgroud)

我确实在我的防火墙上打开了端口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
...
Run Code Online (Sandbox Code Playgroud)

).

我错过了什么?


更新:在@aleung建议之后,我确实web-host=0.0.0.0node-debug命令行中添加了标志,但没有取得很大的成功:我总是进入ERR_ADDRESS_UNREACHABLE浏览器.即使是telnet 192.168.1.100 8080来自192.168.1.7客户的超时.相反,一个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
Run Code Online (Sandbox Code Playgroud)

这可能意味着调试器正在侦听,但它仍然无法从客户端界面访问:-(

ale*_*ung 2

默认情况下,node-inspector Web 服务器侦听 127.0.0.1,仅接受来自本地主机的连接。您必须使用选项在服务器上启动节点检查器--web-host=0.0.0.0\xef\xbc\x9a在服务器上启动节点检查器

\n\n
$ node-debug --web-host 0.0.0.0 myApp.js\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后打开您的客户端浏览器到服务器http://server:8080/?ws=server:8080&port=5858所在的位置是您的服务器 IP。

\n