I am running a Node.js application within a Linux VM in Oracle VirtualBox. The port 5858
on the VM is forwarded to the port 5858
on the localhost.
I am running WebStorm on the host operating system (Windows 7). In WebStorm I click Run >> Edit Configurations....
I then click the add button (the plus sign) and select Node.js remote debug
. I then enter the name of the configuration and leave the host as 127.0.0.1
and the port as 5858
. I click OK
, and ensure my node app is running on the VM with the --debug
flag.
I then click the bug icon in the WebStorm toolbar and the debugger appears at the bottom of the WebStorm IDE.
How can I confirm that the connection is made successfully? Breakpoints do not work and the console in WebStorm remains empty (while information is sent to the console on the Linux VM). Can anyone suggest what remains to be done to get the remote debugging session working?
Just a heads up, when I tried this I had to use
--debug-brk
. Running with just--debug
didn't allow WebStorm to set breakpoints after connecting.This is what I do in my linux Debian VM:
install balancer
sudo apt-get install balance -y
create a route in balancer to reroute your 5858 port to 5859
balance 5859 127.0.0.1:5858
start your app
node --debug app.js
now you can access it from outside the VM on port 5859
Instead of just
try
I also removed the line
config.vm.network :forwarded_port, guest: 5858, host: 5858
from myVagrantfile
and did a$ vagrant reload
.In your vagrant box run
Set up a Node.js Remote Debug Run/Debug configuration, defaults are fine (host 127.0.0.1 and port 5858).
Run the following from your HOST machine, not your vagrant box.
You should get a response like
If you don't then something wrong with the port forward. You could try a different port on the host end and update your webstorm Run/Debug configuration that was previously set up from port 5858 to the new port.
Now run the NodeJS debug configuration. It should immediately pick up the file and you'll be able to debug it.
I based my steps off of PHPStorm, but it should be the same. I'm assuming it'll work on all IntelliJ-based IDEs as long as you have the NodeJS plugin installed.
1) From WebStorm manual:
2) localhost on VM is not the same localhost (as strange as it sounds) on host.
3) V8 debugger is listening on localhost
Solution:
You can setup ssh proxy to linux VM:
ssh -L 5858:127.0.0.1:5858 <vm_user>@<vm_ip> -N
and here you can find answer how to do it on Windows -> stackoverflow If you will do the above your debug configuration in WebStorm will be Host: 127.0.0.1 Port: 5858You can check if WebStorm is connected to remote debug session by checking Debugger tab and Variables panel. can not connect, connected