我的流浪汉昨晚工作得很好。我刚打开电脑,点击《流浪者》,这就是我得到的:
==> 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在网络上还没有被广泛报道,我也找不到发生这种情况的原因。
SSH连接在初始启动时超时可能与多种原因有关,例如:
check whether virtualization is enabled in BIOS (as per comment),
system awaits for user interaction (e.g. share partition is not ready),
mismatch of your private key (check the config via vagrant ssh-config),
the booting process takes much longer time (try increasing config.vm.boot_timeout),
it's booting from the wrong drive (e.g. from the installer ISO),
VM firewall misconfiguration (e.g. iptables configuration),
local firewall rules, port conflict or conflict with a VPN software,
sshd misconfiguration.
要调试问题,请运行——debug选项或如下:
VAGRANT_LOG=debug vagrant up
如果没有什么明显的,那么尝试从另一个终端连接到它,通过vagrant ssh或通过:
vagrant ssh-config > vagrant-ssh; ssh -F vagrant-ssh default
如果SSH仍然失败,尝试使用GUI(例如config. exe)运行它。GUI = true)。
如果不是,检查正在运行的进程(例如:vagrant ssh -c ' pstrree -a')或验证您的sshd_config。
如果它是一次性的虚拟机,你总是可以尝试破坏它,并重新启动它。
你也应该考虑升级你的Vagrant和Virtualbox。
有关详细信息,请检查调试和故障排除页面。
我解决这个问题的方法在这篇文章中没有提到,所以我把细节贴在这里,以防它能帮助到其他人。
造成这种情况的原因是,在机器启动后,流浪汉无法登录机器。造成这种情况的原因有很多,正如本文中提到的,比如机器无法一直启动,或者iptables防火墙阻止SSH。
在我的例子中,问题是我无意中设置了一个“private_network”,它的IP地址与内置的VirtualBox NAT网络(在我的例子中是10.0.2.0/24)在同一个子网中。这打乱了机器的NAT网络(但没有任何地方显示错误),由于vagrant通过NAT网络连接,因此即使机器正在运行且没有启用防火墙,它也无法连接。
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "10.0.2.31"
end
解决办法是更新我的VagrantFile,并使用一个与VirtualBox的NAT网络不冲突的“private_network”IP。
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "10.0.4.31"
end