首页 文章

Vagrant卡住连接超时重试

提问于
浏览
412

昨晚我的流浪汉工作得非常好 . 我刚打开电脑,打了 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...

以前有人有这个吗?流浪者在网上还没有被广泛覆盖,我找不到发生这种情况的原因 .

30 回答

  • 5

    FWIW--我的问题是由于使用了一个非常旧的配置文件而不是更新的配置文件 . 使用新的配置文件(以及调整/更改的DSL)立即解决了我的问题 .

  • 29

    我解决了这个问题,如果其他人有类似的问题,我会回答 .

    我做的是:我启用了虚拟框的GUI,看到它在启动时等待输入,以选择是否要直接启动到ubuntu或safemode等 .

    要打开GUI,你必须把它放在你的流浪汉配置 Vagrantfile

    config.vm.provider :virtualbox do |vb|
      vb.gui = true
    end
    
  • 376

    从我的Vagrantfile中删除此行后,我遇到了同样的问题:

    config.vm.network "private_network", type: "dhcp"
    

    在我把这条线放回来之后,VM装好了 .

  • 8

    我遇到了同样的问题,但是没有提到的解决方案对我有用!我通过将Vagrant降级到1.6.2来解决它现在它的工作原理!

  • 0

    如果您使用的是Windows 8或10,那么这对我有用:

    • 更改BIOS设置以允许64位虚拟化 .

    • 方法如下:

    • 使用高级启动重启PC(转到高级启动 - 'restart now' - 'troubleshoot' - 'advanced option' - 'UEFI Firmware Setting' - 'Restart')

    • BIOS内部窗口 - 转到'Advanced'菜单/选项卡 - 启用'Intel Virtual Technology'

    • 保存并退出 .

  • 1

    我有一个问题与现有的盒子(不知道改变了什么),但我可以通过SSH连接,即使Vagrant盒无法启动 . 碰巧我的SSH密钥发生了某种变化 .

    从流浪根文件夹我运行 vagrant ssh-config ,它告诉我密钥文件在哪里 . 我用puttygen打开了它,然后它给了我一把新钥匙 .

    在我的Linux客户机上,我编辑了 ~/.ssh/authorized_keys 并删除了新的公钥 .

    一切都在恢复 - 现在!

  • 1

    解决方案我不知道,这是我的第四个流浪盒,但这是唯一没有选中电缆连接选项的盒子,并且在检查后,它可以工作 .
    NAT cable connection

  • 3

    我通过在 /etc/fstab 中添加一个新条目来测试我的vagrant VM中的已装入文件夹 . 后来我退出了,跑了流浪汉,但是当我跑了 vagrant up 时,我得到了:

    SSH auth method: private key
    Warning: Remote connection disconnect. Retrying...
    

    我阅读了所有这些帖子并尝试了所有与我的案例相关的帖子(除了流浪汉的破坏,这肯定会解决我的问题,但在我的情况下是最后的手段) . @Kiee的帖子让我想到尝试直接从VirtualBox GUI启动我的VM . 在启动过程中,VM停止运行并询问我是否要跳过将之前添加的测试文件夹安装到 /etc/fstab . ('s why vagrant couldn' t启动VM . )在回答'NO'后,VM启动没问题 . 我登录后,从我的fstab中删除了顽皮的行,并关闭了VM .

    之后,流浪者能够正常启动 .

    带走?如果突然流氓无法启动回VM,请尝试直接从提供程序启动(在我的情况下为VirtualBox) . 有可能你的引导挂起与SSH完全无关的东西 .

  • 47

    在BIOS设置中检查CPU的虚拟化是否已启用 .

  • 3

    我发现在使用VirtualBox的MacOS上将此添加到Vagrantfile会让你走得更远:

    config.vm.provider 'virtualbox' do |vb|
      vb.customize ['modifyvm', :id, '--cableconnected1', 'on']
    end
    
  • 2

    当我使用x64 box(chef / ubuntu-14.04)时,我遇到了同样的问题 .

    我改为x32并且它工作(hashicorp / precise32) .

  • 1

    我遇到了同样的问题 . 我通过从 BIOS setup启用 Virtualization 来修复此问题 .

  • 3

    对我有帮助的是在BIOS中启用虚拟化,因为机器无法启动 .

  • 4

    初始引导期间的SSH连接超时可能与多种原因有关,例如:

    • 检查BIOS中是否启用了虚拟化(根据comment),

    • 系统等待用户交互(例如share partition is not ready),

    • 您的私钥不匹配(通过 vagrant ssh-config 检查配置),

    • 启动过程需要更长的时间(尝试增加 config.vm.boot_timeout ),

    • 它从错误的驱动器启动(例如从安装程序ISO),

    • VM防火墙配置错误(例如iptables configuration),

    • 本地防火墙规则,端口冲突或与VPN软件冲突,

    • sshd 配置错误 .

    要调试此问题,请运行 --debug 选项或类似:

    VAGRANT_LOG=debug vagrant up
    

    如果没有什么明显的,那么尝试通过 vagrant ssh 或通过以下方式从另一个终端连接到它:

    vagrant ssh-config > vagrant-ssh; ssh -F vagrant-ssh default
    

    如果SSH仍然失败,请尝试使用a GUI(例如 config.gui = true )运行它 .

    如果不是,请检查正在运行的进程(例如: vagrant ssh -c 'pstree -a' )或验证您的 sshd_config .


    如果它是一次性VM,你可以再次尝试 destroy 它和 up 它 .

    您还应该考虑升级您的Vagrant和Virtualbox .


    有关更多信息,请查看Debugging and Troubleshooting页面 .

  • 0

    我在VirtualBox中运行vagrant / VirtualBox时得到了这个 . 一世通过在主机中运行vagrant机器解决了这个问题 .

  • 2

    也许这对于帮助很多人来说太简单了,但是如果你没有这样做是值得尝试的:做一个“流浪汉停止”而不是“流浪汉暂停”,然后用“流浪汉”重新启动虚拟机 .

    我认为我的问题是由于某些“kworker”进程出现错误并且在VM中不断超时,因此进行硬重启似乎正确地重新加载进程,而保存和恢复只是在破坏状态下恢复已损坏的进程 .

  • 42

    如果您不想启用GUI,然后必须在以后禁用它,您还可以从Oracle安装扩展包:

    http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#extpack

    然后将其放入您的Vagrantfile中以启用VRDP:

    vb.customize ["modifyvm", :id, "--vrde", "on"]
    

    现在,您可以使用RDP按需连接到您的盒子,而无需SSH运行或GUI一直打开 .

  • 1

    对我有用的是允许来自BIOS的64位操作系统(Ubuntu 13.10)上的64位虚拟化 .

  • 34

    当您按照上述方式使用流浪汉机器时,无需以gui模式启动(如果没有X服务器,则无法启动) .

    在VM启动时,在单独的终端窗口中,只需查找正在运行的计算机的ID .

    vboxmanage list runningvms
    

    这将导致如下所示:

    "projects_1234567890" {5cxxxx-cxxx-4xxx-8xxx-5xxxxxxxxxx}
    

    通常,VM只是在等待您在引导加载程序中选择一个选项 . 您可以使用 controlvm 将相应的密钥代码(在这种情况下,输入)发送到vm:

    vboxmanage controlvm projects_1234567890 keyboardputscancode 1c
    

    而已 . 您的虚拟机将继续启动过程 .

  • 1

    为VMware提供商的用户提供的另一种可能的解决方案:对我来说,在同一主机上删除VirtualBox的并行安装后问题得以解决 . VMware和VirtualBox之间的网络接口显然是相互矛盾的

  • 0

    我有同样的问题,但没有其他答案完全解决了我的问题 . @Kiee的答案很有帮助,虽然我在GUI中看到的只是一个 black screen (在左上角有下划线,Virtual Box中的这个问题也在堆栈溢出中单独提出,再没什么用) .

    最终,一个解决方案被证明非常简单: check version 你的虚拟机 .

    更确切地说,我有一个64位Debian的其他人的盒子,但Virtual Box坚持将它视为32位,我没有注意到 . 要更改它,请打开Virtual Box,然后打开终端并运行

    vagrant up
    

    等待这条线

    default: SSH auth method: private key
    

    现在你可以点击ctrl C(或等待超时)并运行

    vagrant halt
    

    您的虚拟机赢了't be destroyed, so you can see it in the menu of Virtual Box, but will be powered off, so you can change settings. Chose your machine in the menu, click '设置'->'一般' and chose proper '版本', for me it was ' Debian(64位)' . 之后再次输入 vagrant up .

    如果这种情况适合您(或“设置”中的不同更改解决了您的问题),您可以从修复后的类型创建新框

    vagrant package --output mynew.box
    

    更多细节:主机32位Ubuntu 12.04,客户64位Debian 8.1,Virtual Box 5.0.14,Vagrant 1.8.1

  • 211

    对我来说,它是vagrant和virtual box之间的兼容性 .

    我在Windows 10上,我做了什么,我卸载了流浪汉和虚拟盒子

    然后安装旧版本的虚拟机专用版本4.3.38(此版本也安装扩展包)

    然后安装最新版的流浪汉(目前为1.8.5)

    之后它起作用了 .

  • 19

    不管怎么说,当我进入任何东西时,我都不会按照虚拟框进行控制,我相信流浪者会更喜欢你进入另一个终端而做一个:

    vagrant halt

    停止盒子 . 然后回到VB中就没有问题了 .

  • 4

    我在Windows 8.1机器上遇到了同样的问题 . 连接超时和启用gui根本没用,屏幕是黑色的 . 在我的情况下修复是禁用“Hyper V”

    从Vagrant文档引用https://docs.vagrantup.com/v2/hyperv/index.html

    警告:启用Hyper-V将导致VirtualBox,VMware和任何其他虚拟化技术无法运行 . 请参阅此博客文章https://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx,以便在没有启用Hyper-V的情况下创建启动Windows的启动条目的简单方法,如果有时您需要其他虚拟机管理程序 .

  • 1

    在AMD64位上安装ubuntu32位就可以了 . 我没有访问BIO,因为它受限制的环境,但我仍然能够使用ubuntu / trusty32而不是ubuntu / trusty64

    在Windows 7 SP1上使用Vagrant 1.6.3和VirtualBox 4.3.15

    希望有所帮助 .

  • 2

    这里有很多好的答案,我无法全部阅读,但是,我刚刚过来给了我一点贡献 . 我有两个不同的问题:

    • vagrant up wasn 't able to find my ssh ' id_rsa ' (because I didn'尚未拥有它,当时):我根据this GitHub's article跑了 ssh-keygen -t rsa -b 4096 -C "myemailaddress@mydomain.com" ,并且瞧瞧!

    • 然后,我得到了同样的问题“ Warning: Connection timed out. Retrying... ”,永远......:所以,经过大量阅读后,我重新启动了系统并查看了我的BIOS(F2到达那里,在PC上),然后是 Virtualization disabled . 我已启用,保存并再次启动系统,以检查它是否有改变了什么 .

    在那之后, vagrant up 就像一个魅力!现在是早上4点,但它正在运行!多酷啊? :D据我所知,像我这样的受虐狂开发者很少,会在Windows上尝试这个,特别是在 Windows 10 ,我不能忘记来到这里并留下我的话......另一个重要的信息,就是那个,我我试图 Build Laravel 5 ,使用Homestead,VirtualBox,作曲家等 . 它已经奏效了 . 所以,希望这个答案有助于这个问题和答案帮助我 . 我最好的祝福 . G-再见!

  • 17

    我的运行正常然后这个“警告:远程连接断开 . 重试...”反复 - 可能20次 - 直到它连接 . 基于上面的答案,我只是

    vagrant destroy
    vagrant up
    

    这一切都很好 . 我很简单,但我通过将Vagrantfile减少到 config.vm.box = "ubuntu/trusty64" 就这样做了,它仍然在做 . 所以这就是为什么破坏和重新开始似乎是最好的选择 . 鉴于这些Vagrant图像的无状态特性,我不会在每种情况下都能工作 . 我'm just getting into this and I may yet learn that that isn'是真的 .

  • 8

    删除文件:

    C:\Users\UserName\\.vagrant.d\insecure_private_key
    

    然后运行:

    vagrant up
    
  • 4

    要仔细检查是否在您的机器的BIOS中启用了硬件虚拟化 .

    我的问题是同一串超时,但我只能看到GUI中的黑屏 .

    我刚刚设置的笔记本电脑一直显示同样的问题 . 经过几个小时的搜索,我终于找到了一个提示,看看BIOS是否启用了硬件虚拟化 .

    这是我找到的帖子的内容:

    我看到仍有一些用户遇到此问题 . 因此,我将尝试总结下面列出SSH超时问题的一些可能解决方案:

    • 确保您的防火墙或防病毒软件没有阻止该程序(我怀疑它会经常发生)

    • 给你的流浪汉机器一些时间来发生超时 . 如果您没有非常快的PC / Mac,VM将需要一段时间才能启动到SSH就绪状态,因此会发生超时 .

    • 因此,在断定存在故障之前,首先尝试让vagrant超时完全超时 .

    • 如果vagrant完全超时,则将vagrant文件中的超时限制增加到几分钟,然后重试 .

    • 如果仍然无效,请尝试通过VirtualBox界面清理启动流浪汉机器,并事先启用机器的GUI . 如果GUI在启动时没有显示任何发生的事情(即只是黑屏,没有文本),那么你的流浪汉机器就会遇到问题 .

    • 通过VB界面销毁整台机器并重新安装 .

    • 删除用户文件夹中Vagrant Images文件夹中的ubuntu映像文件,然后重新下载并安装 .

    • 您是否拥有支持64位硬件虚拟化的英特尔处理器?谷歌一下 . 如果您这样做,请确保您的Bios中没有设置禁用此功能 .

    • 如果您运行的是Windows 7或8,则禁用hyper-v功能.Google如何禁用 .

    • 确保您正在通过启用SSH的客户端运行 . 使用Git bash . 下载:http://git-scm.com/downloads

    • 安装32位版本的ubuntu,如trusty32或precise32 . 只需更改vagrant文件中的版本,然后在新目录中重新安装vagrant .

    • 确保您使用的是最新的vagrant和virtualbox版本 . 最后的度假村:格式化您的计算机,重新安装Windows并购买intel核心isomething处理器 .

    希望有所帮助 .

  • 0

    我遇到了同样的问题 . 我认为问题可能是SSH密钥(错误的文件本地化或其他东西,但我检查了很多次)但你可能总是添加配置部分用户名和密码(不使用ssh密钥)和运行gui所以 Vagrantfile 中的代码应该看起来像或多或少如下:

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    
      config.ssh.username = "vagrant"
      config.ssh.password = "vagrant"
    
       config.vm.provider "virtualbox" do |vb|
         vb.gui = true
       end
    end
    

    在我的情况下即使显示GUI我有黑屏(没有错误或登录或其他任何可能)和在控制台我多次得到 Error: Connection timeout. Retrying... . 我确保在BIOS中启用了VT-x(虚拟化),我检查了Virtual Box和Vagrant的许多版本组合以及许多Vagrant盒子(对于其中一些我没有't have black screen in GUI but still have connection problems). Finally I'已经将VirtualBox和Vagrant再次更新到最新版本而问题仍然存在 .

    关键是在运行vagrantup后查看VirtualBox中的图标(如上所示,在 Vagrantfile 中使用GUI),如下图所示

    enter image description here

    虽然我在VirtualPC中没有错误(没有警告VT-x没有启用),但我的 V 图标早先是灰色的,这意味着VT-x被禁用了 . 正如我所说,我一直在我的BIOS中启用它 .

    最后我意识到问题可能是 HYPER-V ,我也安装并启用了测试旧版Internet Explorer上的网站 . 我去了Windows Control Panel -> Programs and functions / Software 并从左边的菜单中选择 Turn on or Turn off Windows functions (希望你能找到那些,我使用波兰语的Windows,所以不知道确切的英文名字) . 我关闭Hyper-V,重新启动PC并运行Virtual Box后 vagrant up 我终于没有错误,在GUI中我有登录屏幕,我的 V 图标停止为灰色 .

    我浪费了一个很多时候解决这个问题(以及许多PC重启)所以我希望这对任何在Windows上有问题的人都有帮助 - 确保你在控制面板中关闭了Hyper-V .

相关问题