2015-12-14 150 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