将WebStorm连接到远程的node.jsdebugging会话

我在Oracle VirtualBox的Linux VM中运行Node.js应用程序。 VM上的端口5858被转发到本地主机上的端口5858

我在主机操作系统(Windows 7)上运行WebStorm。 在WebStorm中,单击Run >> Edit Configurations....然后单击添加button(加号)并selectNode.js remote debug 。 然后inputconfiguration的名称,并将主机保留为127.0.0.1 ,端口号为5858 。 我点击OK ,并确保我的节点应用程序正在运行在虚拟机与--debug标志。

然后点击WebStorm工具栏中的错误图标,debugging器出现在WebStorm IDE的底部。

如何确认连接成功? 断点不起作用,WebStorm中的控制台保持为空(当信息发送到Linux VM上的控制台时)。 任何人都可以build议还需要做什么,以获得远程debugging会话工作?

而不是仅仅

 $ vagrant ssh 

尝试

 $ vagrant ssh -- -L 5858:127.0.0.1:5858 

我也从我的Vagrantfile删除了config.vm.network :forwarded_port, guest: 5858, host: 5858这个行config.vm.network :forwarded_port, guest: 5858, host: 5858并做了$ vagrant reload

在你的stream浪箱里跑

 $ node --debug-brk path/to/file.js 

设置一个Node.js远程debugging运行/debuggingconfiguration,默认是好的(主机127.0.0.1和端口5858)。

从你的HOST机器运行以下,而不是你的stream浪箱。

 $ telnet 127.0.0.1 5858 

你应该得到一个回应

 Type: connect V8-Version: 3.14.5.9 Protocol-Version: 1 Embedding-Host: node v0.10.28 Content-Length: 0 

如果你不这样做,那么端口有问题。 您可以在主机端尝试一个不同的端口,并更新之前从端口5858设置到新端口的webstorm运行/debuggingconfiguration。

现在运行NodeJSdebuggingconfiguration。 它应该立即拿起文件,你就可以debugging它。

我基于PHPStorm的步骤,但它应该是一样的。 我假设它可以在所有基于IntelliJ的IDE上工作,只要你安装了NodeJS插件。

1)从WebStorm手册:

当要debugging的应用程序在物理远程主机上运行时,需要运行代理或任何其他确保在Node.js服务器上进行端口转发的软件。 这是必要的,因为debugging端口只能在本地主机networking接口上打开。 本地主机networking接口不能从另一台机器访问,因此在启动debugging会话时WebStorm无法连接到它。

2)虚拟机上的localhost与主机上的localhost不一样(听起来很奇怪)。

3)V8debugging器正在本地主机上侦听

解:

你可以设置ssh代理到linux虚拟机: ssh -L 5858:127.0.0.1:5858 <vm_user>@<vm_ip> -N在这里你可以find答案如何在Windows上 – > stackoverflow如果你会做到上述WebStorm中的debuggingconfiguration将为主机:127.0.0.1端口:5858

您可以通过检查“debugging器”选项卡和“variables”面板来检查WebStorm是否连接到远程debugging会话。 无法连接 , 连接

这就是我在Linux Debian VM中所做的:

安装平衡器

sudo apt-get install balance -y

在平衡器中创build一条path,将您的5858端口重新路由到5859

balance 5859 127.0.0.1:5858

启动你的应用程序

node --debug app.js

现在您可以从端口5859以外的虚拟机访问它

只是一个头,当我尝试这个我不得不使用--debug-brk 。 只用--debug运行,不允许WebStorm在连接后设置断点。