2015-12-14 15 views
6

Mam serwer Linux (os: Centos, ip: 192.168.1.100) z moją aplikacją węzła, którą chcę debugować.
Z jakiegoś powodu przy pracy muszę pracować na zdalnym kliencie (ip: 192.168.1.7), ponieważ serwer Linux nie ma GUI/przeglądarki.Node.js: jak zdalnie debugować?

zrobiłem zgodnie z instrukcją korzystania z węzła inspektor, bez powodzenia ...

Oto co zrobiłem:

$ 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 

Następnie, jeśli mogę otworzyć przeglądarkę klienta do http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 , otrzymuję błąd ERR_ADDRESS_UNREACHABLE.

Ten sam wynik, jeśli otwieram przeglądarkę klienta na http://192.168.1.100:8080/?ws=192.168.1.100:8080&port=5858.

Jeśli (z ciekawości) Otwieram http://192.168.1.100:5858 ja po prostu:

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

Zrobiłem już otwarty port 8080 i 5858 (być po bezpiecznej stronie) na mój firewall (w /etc/sysconfig/iptables mam:

... 
-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 
... 

).

Czego mi brakuje?


UPDATE: Po @aleung sugestią, ja dodać web-host=0.0.0.0 flagę node-debug linii poleceń, bez wielkiego sukcesu: Zawsze dostać ERR_ADDRESS_UNREACHABLE w przeglądarce. Nawet limit czasu wynoszący telnet 192.168.1.100 8080 od klienta 192.168.1.7. Zamiast tego, telnet 192.168.1.100 5858 odpowiedzi:

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

Które prawdopodobnie oznacza debugger słucha, ale to wciąż nieosiągalny z interfejsu klienta :-(

Odpowiedz

2

domyślnie węzeł inspektor serwer WWW nasłuchuje na 127.0.0.1, tylko zaakceptować . połączenie z localhost trzeba zacząć węzła inspektor na serwerze z opcją --web-host=0.0.0.0:

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

następnie otworzyć przeglądarkę klienta do http://server:8080/?ws=server:8080&port=5858, gdzie serwer to adres IP twojego serwera.

+0

Dzięki! Przypuszczam, że masz na myśli --web-host, ponieważ w przeciwnym razie otrzymam komunikat "Nie mogę uruchomić web-hosta = 0.0.0.0: not found: web-host = 0.0.0.0" ... Jednak mimo tego, że Twoja sugestia wygląda obiecująco, ciągle pobieranie 'ERR_ADDRESS_UNREACHABLE' na przeglądarce (po kilku sekundach) ... :-( – MarcoS

+0

Zauważ, że --web-host = 0.0.0.0 wydaje się robić to zadanie, ponieważ netstat mówi mi, że węzeł słucha teraz na 0.0.0.0:8080, zamiast 127.0.0.1:8080 ... – MarcoS

+0

@MarcoS Naprawiono "--web-host". – aleung