Created
August 22, 2013 18:42
-
-
Save neilk/6311127 to your computer and use it in GitHub Desktop.
SSH into a Vagrant VM, such that Node.js can be debugged from a debugger or IDE in the host operating system. For some reason, port forwarding in the Vagrant file does not work. See https://groups.google.com/forum/#!topic/vagrant-up/RzPooJ0dp6Q
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SSH into a Vagrant VM, forwarding ports in a way that allows node within Vagrant to be debugged by a debugger | |
# or IDE in the host operating system. Don't know why, but Vagrantfile port forwarding does not work. | |
# (https://groups.google.com/forum/#!topic/vagrant-up/RzPooJ0dp6Q) | |
/usr/bin/vagrant ssh-config > $TMPDIR/vagrant-ssh-config | |
ssh -F $TMPDIR/vagrant-ssh-config -L 5858:127.0.0.1:5858 default | |
rm $TMPDIR/vagrant-ssh-config |
This was super helpful for me as well. Thanks for figuring this out!
Thanks a lot, I am a newbie to nodejs, and this saved my week !
Try this:
Vagrantfile:
config.vm.network :forwarded_port, host: 5858, guest: 5858
config.vm.network :forwarded_port, host: 8080, guest: 8080
SSH to Vagrant
$ vagrant ssh
$ cd /vagrant/....
$ node-inspector &
$ node --debug app.js
Access using:
http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858
Works Fine!!
I update this to take an argument as an arbitrary port, https://gist.github.com/drewsonne/747b1ce77cc2f912af0f
By default node-debug
will bind to 127.0.0.1 which is loopback.
Use node-debug --web-host=0.0.0.0
to bind it to all interfaces. Forwarding port 8080 should now work.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks, this helped me a lot.
Please note that this script is used on the host, when connecting to the guest. In my case, when connecting from a Windows environment, this can be achieved by configuring a SSH tunnel in Putty.