如何将NodeJS调试器隧道传输到Vagrant框?

时间:2014-05-13 08:59:49

标签: node.js ssh vagrant ssh-tunnel

我正在尝试设置WebStorm NodeJS调试器以连接到Vagrant框上托管的NodeJS项目。我遇到了一些困难。

如果我以传统的方式(即通过终端)隧道进入服务器,一切正常,我可以通过WebStorm等进行调试,

    ssh -L 5858:127.0.0.1:5858  -N vagrant@10.20.30.40

一旦我开始工作,我就将以下内容放入我的Vagrantfile中:

    config.vm.network :forwarded_port, guest: 5858, host: 5858

与以前不同,这仍然适用于Vagrant盒子,但不适用于我的本地机器。当我犯了它时,我收到以下错误:

    curl: (56) Recv failure: Connection reset by peer

有没有人对我做错了什么有任何想法?这甚至可以通过Vagrantfile进行配置吗?

我想通过这样做,所以我的团队可以将他们的调试器连接到零配置。

由于

1 个答案:

答案 0 :(得分:3)

您可以尝试使用配置shell脚本(tunnel.sh)来创建远程端口转发到您的计算机:

#!/bin/bash

# executed from 'vagrant'
ssh -R 5858:127.0.0.1:5858 me@my-machine

实际上你应该将这个脚本放在与Vagrantfile相同的文件夹中,并编辑Vagrantfile以添加这些行:

Vagrant.configure("2") do |config|
    config.vm.provision "shell", path: "tunnel.sh"
end

每次执行命令时,这将使Vagrant执行此脚本:

vagrant up

或者:

vagrant provision

尝试此操作时,应删除Vagrantfile中的端口转发行。

我没有尝试隧道,但实际上我使用配置脚本在启动时配置vm,比如复制authorized_keys中的公钥和类似的任务。