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

如果我以传统方式(例如,通过终端)进入服务器,则一切正常,并且可以通过URL进行调试,并通过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 到它时,出现以下错误:
    curl: (56) Recv failure: Connection reset by peer

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

我想通过此方法完成操作,以便我的团队可以将其调试器连接到零配置。

谢谢

最佳答案

您可以尝试使用配置 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中的端口转发行。

我没有尝试使用隧道,但是实际上我使用配置脚本在启动虚拟机时对其进行配置,例如在authorized_keys中复制公钥以及类似的任务。

关于node.js - 如何将NodeJS调试器通过隧道传送到Vagrant框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23626843/

10-16 09:48