流浪者卡死的连接超时重试


417

昨晚我的流浪汉工作得很好。我刚打开PC,点击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...

有人有过吗?流浪汉尚未在网络上广泛报道,我找不到发生这种情况的原因。


这种情况可能是由于VirtualBox无法重定向端口,尽管说了' ==> default:Forwarding ports ... default:22 => 2222(adapter 1) '您可以在这里查看我的问题的完整描述链接。我仍然不知道如何解决重定向失败(您可以在VirtualBox日志中
。– WebComer

我有同样的问题。问题是未在来宾计算机上安装并启用ssh服务器。
melihovv

我在安装ubuntu 16.04时遇到了相同的错误-通过将虚拟盒升级到5.1.x可以解决
house9

@Kiee请同时检查防病毒软件和防火墙,暂时将其停止,然后再走:)
AmmyTech

Answers:


375

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

我所做的是:我启用了Virtual box的GUI,以查看它在启动时正在等待输入,以选择是否要直接启动到ubuntu或safemode等。

要打开GUI,您必须将它放在您的vagrant配置中Vagrantfile

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

17
@Huuuze的问题是虚拟机可能无法正确关闭,第二天当我尝试通过SSH进入虚拟机时,该机器希望我选择要引导到的模式,但是通过命令行,直到我才知道打开GUI,让我选择模式。
Kiee 2014年

7
谢谢。在我的情况下,VM卡在引导加载程序(grub)上,等待ENTER键。我正在使用默认值hashicorp/precise32。我使用GUI启动计算机,然后运行sudo grub-mkconfig以重置/boot/grub/grub.cfg文件,然后可以注释掉该vb.gui=true行。
maggix 2014年

2
@TangibleDream您的Vagrant文​​件,位于您正在(或应该运行)的目录中vagrant up
Kiee 2014年

4
@jasa如果它是一个无所事事的虚拟机,则用户名和密码很有可能都是vagrant
Kiee 2014年

7
GUI向我显示了以下错误:VT-x / AMD-V硬件加速在您的系统上不可用。您的64位任务将无法检测到64位CPU,并且将无法启动
SKuijers 2015年

213

当您按照上述方式卡在无业游民的机器上时,就不需要以gui模式引导(如果没有X服务器,这是不可能的)。

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

vboxmanage list runningvms

这将导致如下所示:

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

通常,VM只是在等待您在引导加载程序中选择一个选项。您可以使用以下命令向Entervm 发送适当的键码(在这种情况下)controlvm

vboxmanage controlvm projects_1234567890 keyboardputscancode 1c

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


22
@ParrisVarney:大多数情况下,此挂起是由引导加载程序等待选择条目所致。通过向其发送回车键(可以使用GUI或使用vboxmanageVirtualBox的命令行界面)来完成此操作。因此,您正在“控制” VM,并使用参数向其发送Enter键(1C)的“扫描代码” keyboardputscancode
Kautiontape 2014年

1
我真的不明白这是怎么做的,但是确实有效。所以谢谢。
Lavixu 2014年

1
这种特殊方法对我不起作用。我注意到的唯一变化是,消息输出从default:更改Warning: Connection timeout. Retrying...default: Warning: Remote connection disconnect. Retrying...running之后vboxmanage controlvm dst_default_1407935479617_2464 keyboardputscancode 1c。将尝试vb.gui = true代替。
Marius Butuc 2014年

4
在Windows上找到vboxmanage时C:\Progra~1\Oracle\VirtualBox\VBoxManage.exe说,下面的BIOS更改为我解决了此问题
yingw 2015年

1
这个答案真棒,应该标记为答案。
好奇的

47

要仔细检查的一件事是,是否在计算机的BIOS中启用了硬件虚拟化。

我的问题是相同的超时字符串,但在GUI中只能看到黑屏。

我刚刚安装的笔记本电脑一直显示同样的问题。经过数小时的搜索,我终于找到了一条提示,以了解BIOS是否启用了硬件虚拟化。

这是我发现的帖子内容:

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

  • 确保您的防火墙或防病毒软件没有阻止该程序(我怀疑这种情况会经常发生)
  • 给您的无业游民的计算机一些时间以使超时发生。如果您没有非常快的PC / Mac,则VM会花一些时间才能启动进入SSH就绪状态,因此会发生超时。
  • 因此,在断定有故障之前,首先尝试让流浪者超时完全完成。
  • 如果无业游民完全超时,则将无业游民文件中的超时限制增加到几分钟,然后重试。
  • 如果仍然无法解决问题,请尝试通过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或Precision32。只需在vagrant文​​件中更改版本,然后在新目录中重新安装vagrant。
  • 确保您使用的是最新版本的vagrant和virtualbox。不得已的方法:格式化计算机,重新安装Windows并购买Intel Core异构处理器。

希望能有所帮助。


2
其次,“检查以确保启用了硬件虚拟化”。我遇到了这个确切的问题,重新启动主机,然后在BIOS中启用虚拟化解决了该问题。
MrBooks

2
刚被这个击中。Hyper-V是造成此问题的原因,并通过卸载将其修复。tyvm
ChrisAnnODell

1
违反直觉的是,在我的BIOS中,我不得不禁用虚拟化并启用VT-X。尝试在BIOS中切换这些设置。
Onshop

44

我找到的解决方案是检查连接到NAT的适配器1中的电缆连接选项。我真的不知道,这是我的第四个无家可归的盒子,但这是唯一一个没有选中电缆连接选项的盒子,检查后它就可以工作了。 NAT电缆连接


1
我正在使用Homestead 1.0.1和VirtualBox 5.0.28,由于此答案,我解决了该问题。
Pablo Ezequiel Leone

通过GUI,我可以看到它正在网络接口上等待,然后解决了问题。感谢.s
nsc_feabhas

这个固定的地雷+1
Zac Grierson

这解决了我的问题:Vagrant 1.9;Virtualbox 5.1; Laravel / Homestead 5.3
J. LaRosee '17

34

我有完全相同的问题。我以为问题可能出在SSH密钥上(文件本地化错误或其他错误,但是我检查了很多次),但是您可能总是在configure节中添加用户名和密码(不使用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框(对于其中的一些我在GUI中没有黑屏,但仍然可以连接问题)。最终,我再次将VirtualBox和Vagrant更新到了最新版本,问题仍然出现。

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

在此处输入图片说明

尽管我在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。


1
那是问题!在BIOS上激活了虚拟化,并在程序和功能中禁用了HYPER-V。发挥了魅力!
Heroselohim

@Heroselohim很高兴它为您提供了帮助,解决它花费了很多时间。
MarcinNabiałek'14

1
当带有dot vagrant子文件夹的文件夹驻留在Dropbox中时,或者在具有潜在不同ssh密钥的计算机之间共享时,显式ssh密码会为我提供帮助。
mlt

31

矿井运行良好,然后反复出现“警告:远程连接断开。正在重试...”-可能20次-直到其连接。根据以上答案,我只是

vagrant destroy
vagrant up

一切都很好。我的很简单,但我是通过将Vagrantfile缩减为来实现的config.vm.box = "ubuntu/trusty64",并且仍在这样做。这就是为什么销毁并重新开始似乎是最佳选择的原因。鉴于这些流浪者图像的无状态性质,我不明白为什么在每种情况下都行不通。我只是进入这个话题,但我可能会得知那是不正确的。


如果可以配置您的虚拟机,则是个好解决方案。就我而言,构建虚拟机更加复杂,并且将花费更多时间。
user12121234

5
是的,我在虚拟机上设置了别名和其他内容,销毁它并不是一个很好的答案
Batman

很好,我尝试了很多次,vragant halt但是效果很好!
Med

对我来说很棒,我既遇到了本地主机连接重置问题,又破坏并创建了流浪汉,再次解决了这些问题。
shivgre

19

我在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,如果有时您需要其他管理程序。


5
这对我有用。我只是在“程序和功能”中禁用了Hyper-V。
stringo0 2014年

我已经尝试过所有以前的解决方案,但只有这对我也有效!
Gilberto Albino

17

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

  1. 更改BIOS设置以允许64位虚拟化。
  2. 方法如下:
    • 使用高级启动重新启动PC(转到“高级启动-'立即重新启动'-'故障排除'-'高级选项'-'UEFI固件设置'-'重新启动')
    • 在BIOS窗口内部-转到“高级”菜单/选项卡-启用“英特尔虚拟技术”
    • 保存并退出。

2
同样在这里对T440p笔记本
独立

同样在这里。在我的机器上,这意味着启用虚拟化Vt-x
Erez Cohen

谢谢!我的BIOS设置中禁用了虚拟化。我以前曾在同一台计算机上使用过流浪汉,但是由于某些原因,BIOS设置在我不知情的情况下被更改。因此,请首先检查此设置。
巴赫曼

8

我对现有的盒子有一个问题(不确定更改了什么),但是即使Vagrant盒子无法启动,我可以通过SSH进行连接。碰巧的是,我的SSH密钥已经有所更改。

我从无业游民的根文件夹运行vagrant ssh-config,该文件夹告诉我密钥文件在哪里。我用腻子打开了它,然后给了我一个新钥匙。

在我的Linux来宾上,我编辑~/.ssh/authorized_keys了新的公钥并将其放在其中。

一切又恢复正常-现在!


8

从Vagrantfile删除以下行后,我遇到了相同的问题:

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

我将这条线放回原处后,VM加载良好。


我正在使用苏格兰威士忌盒,我所做的只是取消注释行,config.vm.network它解决了问题。
Alexar '17

5

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

  • 检查是否在BIOS中启用了虚拟化(如注释所示),
  • 系统等待用户交互(例如,共享分区未就绪),
  • 您的私钥不匹配(通过来检查配置vagrant ssh-config),
  • 引导过程需要更长的时间(尝试增加config.vm.boot_timeout),
  • 它是从错误的驱动器(例如从安装程序ISO)启动,
  • 虚拟机防火墙配置错误(例如iptables配置),
  • 本地防火墙规则,端口冲突或与VPN软件的冲突,
  • sshd 配置错误。

要调试问题,请运行一个--debug选项或类似的命令:

VAGRANT_LOG=debug vagrant up

如果没有明显的内容,请尝试通过以下方式从另一个终端连接到该终端vagrant ssh

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

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

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


如果它是一次性VM,则可以随时尝试destroyup再次尝试。

您还应该考虑升级Vagrant和Virtualbox。


有关更多信息,请检查“ 调试和故障排除”页面。


4

我遇到了同样的问题,但是没有其他答案可以完全解决我的问题。@Kiee的回答很有帮助,尽管我在GUI中只能看到黑屏(下划线在左上角,Virtual Box中的此问题也已在堆栈溢出中单独提出,再次无济于事)。

最终,一种解决方案被证明非常简单:检查虚拟机的版本

更确切地说,我从其他人那里得到了一个装有64位Debian的盒子,但是Virtual Box坚持将其视为32位,这我没注意到。要更改它,请打开“虚拟盒子”,然后打开终端并运行

vagrant up

等待排队

default: SSH auth method: private key

现在您可以按ctrl + C(或等待超时)并运行

vagrant halt

您的虚拟机不会被破坏,因此您可以在Virtual Box的菜单中看到它,但是会关闭电源,因此可以更改设置。在菜单中选择您的机器,单击“设置”->“常规”,然后选择适当的“版本”,对我来说,它是“ 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


我有同样的情况,为此我输了一天,也没有64位的下拉菜单,所以我苦苦fixedvonvonnie.com/2014/11/…并解决了它
Alex

4

这里有很多很好的答案,我看不懂所有内容,但是,我也只是贡献了我一点。我有2个不同的问题:

  1. vagrant up找不到我的ssh'id_rsa '(因为当时我还没有):我ssh-keygen -t rsa -b 4096 -C "myemailaddress@mydomain.com"根据该GitHub的文章运行了,瞧瞧,一步一步地完成了;

  2. 然后,我遇到了同样的问题“ 警告:连接超时。正在重试... ”,这是永恒的...:因此,在阅读了大量内容之后,我重新启动了系统并查看了我的BIOS(F2以获取在PC上),并且禁用了虚拟化。我已启用它,保存并再次启动系统,以检查它是否已更改。

之后,vagrant up就像魅力一样!现在是凌晨4点,但正在运行!多酷啊?:D据我所知,很少有像我这样的受虐狂开发人员可以在Windows上尝试这种操作,特别是在Windows 10上,我只是不能忘记忘记来到这里并留下了我的话...另一个重要的信息是,我试图使用Homestead,VirtualBox,composer等设置Laravel 5。因此,希望这个答案对这个问题有帮助,而答案对我有帮助。我最好的祝福。再见!


4

我通过在vagrant VM中测试新的挂载文件夹,将新条目添加到中/etc/fstab。后来我登出,无所事事地停了下来,但是当我逃跑时vagrant up我得到了:

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

我阅读了所有这些帖子,并尝试了所有与我的案子相关的文章(除了无所事事的销毁,这当然可以解决我的问题,但是在我的案子中是不得已)。@Kiee的帖子给了我一个想法,尝试直接从VirtualBox GUI引导我的VM。在引导过程中,VM停止运行并询问我是否要跳过安装先前添加到的测试文件夹/etc/fstab。(这就是为什么流浪汉无法引导VM的原因。)回答“否”后,VM引导没有问题。我登录,从fstab中删除了顽皮的行,然后关闭了VM。

之后,这个无业游民就可以启动了。

带走?如果突然的流浪汉无法重新引导到您的VM,请尝试直接从提供程序(在我的情况下为VirtualBox)引导。很有可能您的引导挂起了与SSH完全无关的内容。


3

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

我更改为x32,它起作用了(hashicorp / precise32)。


您的问题可能是您正在运行Hyper-V,请参见上面的@Kri的答案,我在x64上遇到了x64的问题,因为我正在运行Hyper-V
Ian M

3

也许这对帮助很多人来说太简单了,但是如果您还没有这样做,就值得尝试:执行“无用停止”而不是“无用暂停”,然后用“无用启动”重新启动VM。

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


哇。最后。这对我有用。我正在使用窗口7。@Ambulare谢谢!
Emeka Mbah

3

我在VirtualBox中运行vagrant / VirtualBox时得到了这个。我通过在主机上运行无业游民的计算机来解决此问题。


3

我发现在带有VirtualBox的MacOS上,将其添加到Vagrantfile可以让您走得更远:

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

在研究了几个小时后,这对我有用!
索林

乐于助人:)
David

2

在AMD64位上安装ubuntu32位就可以了。由于其受限制的环境,我无法访问BIO,但是我仍然能够使其与ubuntu / trusty32而不是ubuntu / trusty64一起使用

在Windows 7 SP1上将Vagrant 1.6.3与VirtualBox 4.3.15一起使用

希望能有所帮助。


2

对我来说,这是无所事事和虚拟盒子之间的兼容性。

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

然后安装虚拟盒的旧版本,特别是版本4.3.38(为此版本也安装扩展包)

然后安装最新版本的vagrant(目前为1.8.5)

之后,它起作用了。


这里有同样的问题。Virtualbox有可用的更新。更新该命令,并使用“无用销毁”和“无用销毁”命令对其进行了修复。
mrBrown '17


1

对于VMware提供者的用户来说,还有一个可能的解决方案:对我来说,在同一主机上删除VirtualBox的并行安装后,该问题已解决。VMware和VirtualBox之间的网络接口显然存在冲突


1

我也遇到过同样的问题。我通过VirtualizationBIOS安装程序启用来解决此问题。


1
违反直觉的是,在我的BIOS中,我不得不禁用虚拟化并启用VT-X。尝试在BIOS中切换这些设置。
上架

1

删除文件:

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

然后运行:

vagrant up

我在互联网上搜索了三天,几乎尝试了遇到的每个解决方案。仅发现它就可以如此简单。我的英雄。谢谢!+1
罗宾·范·巴伦

对我没有影响。我有Mac,Vagrant 1.9.3
Razvan Tudorica

1

对我有用的是允许通过BIOS在64位操作系统(Ubuntu 13.10)上进行64位虚拟化。


您可能正在谈论64位虚拟化!
WebComer


1

就我而言,为其提供一个静态IP地址,只需解决问题即可:

config.vm.network "private_network", ip: "192.168.50.50"


0

FWIW-我的问题是由于使用了一个很旧的配置文件而不是一个新的配置文件。使用新的配置文件(并因此调整/更改了DSL)立即解决了我的问题。



0

相信vagrant宁愿您进入另一个终端并执行以下操作,而不是在每次按ssh进入任何内容时都不会做的ctrl-d-ing:

vagrant halt

停止盒子。这样就不会有任何问题回到 VB中。


1
ctrl+d注销。这样做没有错,它对正在运行的计算机没有任何作用。vagrant halt停止虚拟机。
佐尔坦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.