Как выполнить удаленную отладку Node JS с помощью PHPStorm? - PullRequest
9 голосов
/ 09 декабря 2011

У меня есть окно Windows и виртуальная машина под управлением CentOS.Кто-нибудь знает, как я могу отладить скрипт CLI узла (который не открывает порт), используя PHPStorm?Кажется, «редактирование конфигурации» поддерживает только подключение куда-то, а не прослушивание входящих соединений.

Ответы [ 2 ]

9 голосов
/ 03 апреля 2012

Убедитесь, что у вас установлен плагин nodejs .

Если на вашем сервере есть пакет балансировки (у моего блока EC2 этого нет), вы можете использовать это руководство для переадресации порта с балансировщиком.

yum install balance -yt
balance -df 8585 127.0.0.1.5858

Многие сообщают об успехе с перенаправлением iptables с eth0 на lo (у меня не сработало), например:

iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 5858 -j DNAT --to 127.0.0.1:5858

Существует также простой сценарий узла , описанный в этом отладочном тексте затмения (в нижней части), который туннелирует локальную отладку на удаленный хост.

Но как только я был так далеко, я не видел в этом смысла, так как я знаком с SSH. В итоге, Я пошел с SSH-туннелем и настроил PHPStorm для отладки localhost. SSH Tunnel using putty

PHPStorm configuration

6 голосов
/ 05 марта 2015

Для пользователей, не являющихся Windows, вот как настроить туннель переадресации портов с помощью ssh:

ssh -f ssh_user@your-remote-host -L local_port:localhost:port_on_remote -N

Это означает "ssh to your-remote-host, войдите как ssh_user. Как только откроется соединение сlocalhost:port_on_remote и выставьте это соединение на local_port машины, на которой запущен ssh ".

Неочевидная часть - вам нужно использовать localhost, так как отладчик Node привязывается только к IP-адресу localhost (и не указывать адрес, по которому your-remote-host разрешит).

Пример с реальными значениями:

ssh -f me@nodeserver.com -L 5858:localhost:5858 -N

(на основе это руководство , просто заняло у меня некоторое времявыяснить localhost кусок).

...