如何在Vagrant和ruby调试ide上配置端口

如何在Vagrant和ruby调试ide上配置端口,ruby,vagrant,ruby-debug-ide,Ruby,Vagrant,Ruby Debug Ide,我试图为我的web应用程序配置调试器,但在为它指定正确的端口时遇到了问题。 流浪汉档案: config.vm.network :private_network, ip: "192.168.68.8" config.vm.network :forwarded_port, guest: 80, host: 8080 /etc/主机(在我的主机上) 我安装了这两个gem进行调试 gem 'ruby-debug-ide', group: [:development,:test] gem 'debase

我试图为我的web应用程序配置调试器,但在为它指定正确的端口时遇到了问题。 流浪汉档案:

config.vm.network :private_network, ip: "192.168.68.8"
config.vm.network :forwarded_port, guest: 80, host: 8080
/etc/主机(在我的主机上)

我安装了这两个gem进行调试

gem 'ruby-debug-ide', group: [:development,:test]
gem 'debase', group: [:development,:test]
我读到为了在vagrant上使用ruby调试ide,我应该运行
rdebug ide——主机0.0.0.0——端口80——调度程序端口8080——bin/rails s
其中,
--port
应该是Vagrantfile的来宾端口和`--dispatcher端口的主机端口``

但是它说

Permission denied - bind(2) for "0.0.0.0" port 80

另一方面,如果我试图更改Vagrantfile中的这些端口,我将失去从127.0.0.1:指定的_端口访问我的应用程序的机会,但仍然可以从mysite.com进行访问,这让人感到困惑

您已经在端口80(apache或nginx)上侦听了一些内容,因此无法绑定到此端口。您可以执行以下操作之一

  • 在另一个端口(如3000)上启动rails
  • 在您的vagrant start
    rdebug ide——主机0.0.0——端口3000——调度器端口3000——bin/rails s

    如果您在文件中使用专用网络IP,则不需要转发端口,因为您将使用自己的IP访问VM服务器

  • 检查端口80上正在侦听的内容
  • 在虚拟机中运行
    sudonetstat-nltp
    ,检查绑定端口80的进程并杀死它

    比如说

    vagrant@precise32:/etc/init.d$ sudo netstat -nltp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      512/rpcbind
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1827/apache2
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      652/sshd
    tcp        0      0 0.0.0.0:58397           0.0.0.0:*               LISTEN      539/rpc.statd
    tcp6       0      0 :::111                  :::*                    LISTEN      512/rpcbind
    tcp6       0      0 :::22                   :::*                    LISTEN      652/sshd
    ...
    

    因此,您将终止apache2进程(PID 1827)

    您已经在端口80(apache或nginx)上侦听了一些内容,因此无法绑定到此端口。您可以执行以下操作之一

  • 在另一个端口(如3000)上启动rails
  • 在您的vagrant start
    rdebug ide——主机0.0.0——端口3000——调度器端口3000——bin/rails s

    如果您在文件中使用专用网络IP,则不需要转发端口,因为您将使用自己的IP访问VM服务器

  • 检查端口80上正在侦听的内容
  • 在虚拟机中运行
    sudonetstat-nltp
    ,检查绑定端口80的进程并杀死它

    比如说

    vagrant@precise32:/etc/init.d$ sudo netstat -nltp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      512/rpcbind
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1827/apache2
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      652/sshd
    tcp        0      0 0.0.0.0:58397           0.0.0.0:*               LISTEN      539/rpc.statd
    tcp6       0      0 :::111                  :::*                    LISTEN      512/rpcbind
    tcp6       0      0 :::22                   :::*                    LISTEN      652/sshd
    ...
    
    因此,您将终止apache2进程(PID 1827)