Vagrant无法转发此VM上的指定端口

时间:2014-06-09 19:49:39

标签: networking virtual-machine vagrant

我使用Vagrant用于一个盒子配置文件。现在我想将Vagrant用于另一个盒子(b2),但它说bioiq的实例正在消耗转发的端口2222(它是)。

现在,如果我使用以下配置b2,Vagrant仍会尝试使用2222。

Vagrant.configure("2") do |config|

  config.vm.box = 'precise32'
  config.vm.box_url = 'http://files.vagrantup.com/precise32.box'

  config.vm.network :forwarded_port, guest: 22, host: 2323

  # Neither of these fix my problem 
  # config.vm.network :private_network, type: :dhcp 
  # config.vm.network :private_network, ip: "10.0.0.200"
end

我尝试了其他SO问题的各种方法来设置 :forwarded_port (请参阅herehere)。我也试过这个Google Group post,但没有用。我一直收到这条消息。

Vagrant cannot forward the specified ports on this VM, since they
would collide with some other application that is already listening
on these ports. The forwarded port to 2222 is already in use
on the host machine.

To fix this, modify your current projects Vagrantfile to use another
port. Example, where '1234' would be replaced by a unique host port:

  config.vm.network :forwarded_port, guest: 22, host: 1234

Sometimes, Vagrant will attempt to auto-correct this for you. In this
case, Vagrant was unable to. This is usually because the guest machine
is in a state which doesn't allow modifying port forwarding.

我不知道为什么Vagrant一​​直无视我的指示。发布的配置不起作用。有没有人克服过这个?

3 个答案:

答案 0 :(得分:78)

对于ssh端口,Vagrant自行解决端口冲突:

==> ubuntu64: Fixed port collision for 22 => 2222. Now on port 2200.

但是,您仍然可以通过以下方式创建不可避免的碰撞:

  1. 创建第一个流浪汉环境(它将获得ssh的端口2222)
  2. 暂停env(vagrant suspend
  3. 创建第二个流浪汉环境(它将再次获得端口2222,因为它现在未使用)
  4. 尝试通过vagrant up
  5. 重新启动第一个环境

    您将收到您现在收到的错误消息。

    解决方案是使用vagrant reload,让vagrant discard虚拟机状态(这意味着它将以困难的方式关闭它 - 所以如果你有任何未保存的工作那么要小心)并再次启动环境,在途中解决任何ssh端口冲突。

答案 1 :(得分:14)

我刚刚在当前版本的Mac OSX(10.9.4)和VirtualBox(4.3.14)上遇到问题,其中默认的ssh端口2222未使用且未绑定由vagrant up。它导致健全性检查ssh连接无限期地超时。

这不是完全相同的问题,但明确的前瞻解决了它:

config.vm.network :forwarded_port, guest: 22, host: 2201, id: "ssh", auto_correct: true

这个建议来自对Vagrant GitHub的评论issue 1740

目前尚不清楚是否正在检测转发到22的端口或是否使用了该ID,但它对我有用。

答案 2 :(得分:-1)

如果问题仍然存在,请在此处查看解决方案以了解正在使用的其他Vagrantfiles:

How to debug "Vagrant cannot forward the specified ports on this VM" message