Javascript Node.js:如何远程调试?
我有一台Linux服务器(os:Centos,ip:192.168.1.100)和我要调试的节点应用程序。Javascript Node.js:如何远程调试?,javascript,node.js,debugging,node-inspector,Javascript,Node.js,Debugging,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 --ve
由于某种原因@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
然后如果我打开我的客户端浏览器到http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858
,我得到错误ERR\u ADDRESS\u无法访问
如果将客户端浏览器打开到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
...
)
我错过了什么
更新:
在@aleung建议之后,我确实将webhost=0.0.0.0
标志添加到node debug
命令行,但没有取得很大成功:我总是在浏览器中获得ERR\u ADDRESS\u unreable
。甚至是来自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
这可能意味着调试器正在侦听,但仍然无法从客户端界面访问它:-(默认情况下,node inspector web server在127.0.0.1上侦听,仅接受来自本地主机的连接。您必须在服务器上使用选项--web host=0.0.0
启动node inspector:
$ node-debug --web-host 0.0.0.0 myApp.js
然后打开您的客户端浏览器至http://server:8080/?ws=server:8080&port=5858
,其中服务器是您的服务器IP。节点7.x
node--inspect:file_name谢谢!我想你的意思是--web主机,因为否则我会得到无法启动web主机=0.0.0.0:not found:web主机=0.0.0
…但是,尽管你的建议看起来很有希望,但我还是会在浏览器上得到ERR_ADDRESS\u unable
。(几秒钟后):-(注意--webhost=0.0.0.0似乎在做它的工作,因为netstat告诉我node现在正在监听0.0.0.0:8080,而不是127.0.0.1:8080…@MarcoS it's--webhost
,已修复。)。