Vagrant卡在连接超时重试中。

427

昨晚我的虚拟机完美运行。我刚刚打开电脑,输入vagrant up,然后就出现了这个:

==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...

有人以前遇到过这个问题吗?Vagrant 还没有被广泛讨论,我找不到发生这种情况的原因。


可能的情况是由于VirtualBox无法重定向端口,尽管显示'==> default: Forwarding ports... default: 22 => 2222 (adapter 1)'。 您可以在我的问题链接中查看完整描述。 我仍然不知道如何解决重定向失败(您可以查看VirtualBox日志。 - WebComer
我遇到了相同的问题。问题在于虚拟机上没有安装和启用ssh服务器。 - melihovv
我在安装Ubuntu 16.04时遇到了相同的错误,通过升级VirtualBox到5.1.x版本来解决了这个问题 - 参见http://askubuntu.com/a/822974/151137。 - house9
@Kiee 请检查防病毒软件和防火墙,暂时停止两者,然后再进行操作 :) - AmmyTech
49个回答

0

如果您正在使用包装层(例如 Kitchen CI)并且您正在运行32位主机,则必须预先安装Vagrant boxes。它们的默认提供程序是opscode“family”二进制文件。

因此,在运行kitchen create default-ubuntu-1204之前,请确保使用以下命令:

vagrant box add default-ubuntu-1204 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.04-i386_chef-provisionerless.box

如果您的主机不支持字长虚拟化,请使用32位镜像


0

我只需打两次 ˆC(在 Windows 上为 ctrl+C),即可解决连接失败的屏幕。

然后,我可以通过 SSH 连接 (vagrant ssh) 并自己查看错误。

在我的情况下,是路径输入有误。


0
与其像我每次通过ssh进入任何东西时都按ctrl-d退出虚拟框,我认为vagrant更希望您进入另一个终端并执行以下操作:

vagrant halt

停止该框。然后就没有问题可以回到VB中了。


1
ctrl+d 注销。这样做没有任何问题,并且不会对正在运行的机器产生影响。 vagrant halt 停止虚拟机。 - Zoltán

0

在虚拟机内禁用iptables防火墙

这是我的解决方法:

  • 我在Vagrantfile中启用了GUI接口(这是配置文件)
  • 我可以使用标准用户名vagrant和密码vagrant登录到运行中的虚拟机Gui
  • 我在虚拟机内禁用了正在运行的iptables防火墙

这解决了我的问题,我发现防火墙阻止了来自本地网络的所有IP,如192.168.x.x和10.x.x.x。

/etc/iptables.d/199-allow-wan中添加规则以允许来自wan的所有连接:

ip46tables -A wan-input -j ACCEPT

(ip46tables是一个别名)请参见我的Vagrant示例Freifunk社区中的此提交


0

这是我是如何操作的:

在执行 "vagrant up" 启动虚拟机后,关闭虚拟机并进入 VirtualBox 中的新虚拟机设置。然后进入 "网络" -> "高级"

适配器类型:我将其从 "Intel PRO XXXXX" 更改为 "PCNet-Fast"(或任何其他适配器,而不是 Intel PRO)


0

0

我遇到了相同的问题,然而提到的解决方案都没有奏效!我通过将Vagrant降级到1.6.2来解决它,现在可以工作了!


0
曾经切换到trusty32有所帮助,但现在情况又变得更糟了: 我尝试使用Homestead 2.0,现在又遇到了连接超时的问题, 这通常不是问题,因为以前切换到32位就可以解决。 但现在我不能像添加一行代码那样简单地添加 config.vm.box="ubuntu/trusty32" 因为我们不再有传统的Homestead.yaml文件, 新的2.0 Homestead.yaml文件中的值似乎只是在后台插入到真正的文件中, 并且没有可用的Vagrantfile供我手动编辑...
希望有人能帮忙...

0

我的解决方案实际上与上面的都不一样。我在Windows 7主机中运行Ubuntu 14作为虚拟机。我过去一直可以正常运行这个vagrant,但是停用了几个月后,启动时总是出现SSH连接超时的问题。最后发现是密钥对无法正常工作-所以我根据this page页面上的指示将Vagrant公钥复制到Ubuntu中。但这还不够。接着我发现我的基础box文件中的私钥与此处中的私钥不同。将此私钥放入C:\ Users \ your-user.vagrant.d \ boxes \ vagrant-box-name \ nnnnnnnn \ virtualbox目录下的vagrant_private_key文件中,在将公钥放入Ubuntu后,问题得到解决。


0

顺便说一下——我的问题是由于使用了一个非常旧的配置文件而不是新的配置文件。使用新的配置文件(因此调整/更改了DSL)立即解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接