Laravel Homestead vagrant up 超时

Laravel Homestead vagrant up times out

我正在遵循 Homestead 上 运行 Laravel 5.1 的官方指南。

但是当我尝试 vagrant up 它挂断在 homestead-7: SSH auth method: private key 并最终超时并显示消息:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.

我的 SSH 密钥是使用 ssh-keygen -t rsa -C "you@homestead" 生成的。

无法通过vagrant ssh访问机器,它输出ssh_exchange_identification: read: Connection reset by peer

已尝试 vagrant destroy 并删除 ~/.homestead 文件夹以从头开始重新开始,但结果相同。

使用 Ubuntu 16.04 64 位、Vagrant 1.8.4 和 VirtualBox 5.0.18。我的电脑启用了虚拟化,其他机器启动没有问题。

运行Win 10 Pro v 1607、VirtualBox 5.0.30、Vagrant 1.9.1 和 Homestead 1.0.1。

我遇到了与所述相同的问题。 Vagrant up 命令会 运行 干净但挂在 SSH username: private key 消息处。 重新安装,检查 .yaml 文件,重新创建 ssh 密钥 - 尝试了所有常用的东西但没有成功。

我更改了 Virtual Box 中的网络设置后,终于可以正常工作了。

  1. 使用 windows UI
  2. 调出 VirtualBox 程序
  3. 单击网络 - 在 'Adapter 1' 选项卡中,然后打开高级
  4. 已单击 'Cable Connected' 复选框
  5. 在控制台 $ 提示符下,vagrant halt
  6. 然后 vagrant up

然后一切都按预期工作。未勾选 'cable connected' 并再次 vagrant up 挂起。重新设置 'cable connected' 并 vagrant up 运行ning 再次正确。

导入基础 Laravel/Homestead 框的默认设置保留 'cable connected' 设置 unchecked/off

vagrant issue 7648 for some background

如果您不想一直勾选电缆连接框,永久修复方法是:

Homestead 文件夹中找到 Vagrantfile 文件(可能其文件路径是 ~/Homestead/Vagrantfile),并将以下内容添加到 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 块修复问题:

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

通过对 Vagrantfile 的更改 vagrant up 适用于新导入的 laravel/homestead 框

我有时挂在 vagrant up 上并出现错误 SSH username: private key

尝试

vagrant halt vagrant up

如果 ssh-key 身份验证超时,这似乎是 host/guest 通信错误。

要确认尝试 ssh vagrant@192.168.10.10

如果它抛出错误或 times-out 再次确保虚拟机已完全关闭,通过 运行ning vag运行t halt 并使用 Virtualbox GUI 来确认这一点.

在网络下,我确定我的适配器是 "Cable Connected",对于我的仅主机适配器,我将 "allow all" 设置为混杂模式。

!Virtual box Network settings screen]2

然后我 运行 vagrant up --provision 并且在两者之间的身份验证期间没有等待。

在 vag运行t provisioner 脚本具有 运行 之后,您现在可以 vagrant ssh

我遇到了这个问题并尝试在 VirtualBox Gui 中对其进行编辑,但我的 Homestead 机器没有出现在列表中,如果没有出现,这里是解决方案:

VBoxManage list runningvms

在列表中找到你的 homestead 机器,它大部分会被标记为 "Homestead-x"(对我来说是 "Homestead-7") 然后 运行 以下命令:

VBoxManage startvm "homestead-7" --type emergencystop
VBoxManage modifyvm "homestead-7" --cableconnected1 on

之后 cd 进入您的 homestead 文件夹,您会注意到机器已中止,一个简单的 vagrant up 将成功启动您的机器并且不会停止。 还可以考虑将@HamptonNorth 提供的代码添加到您的 VagrantFile 中以进行永久修复。

如果您正在使用 Windows,您可能需要启用硬件虚拟化 (VT-x)。它通常可以通过您的 BIOS 启用。如果您在 UEFI 系统上使用 Hyper-V,您可能还需要禁用 Hyper-V 才能访问 VT-x。

我打开了虚拟化,但在 VirtualBox 中它显示没有,我关闭了 Hyper-V,一切正常。

在我的例子中,它通过 删除位于 Vagrantfile 旁边的“.vagrant”文件夹 来工作。

场景如下:

  1. 我以前用过这个盒子
  2. 重新安装了我的电脑。在此之前我导出了盒装文件,以便下次设置。
  3. 导入 package.box 新鲜 Windows 10 安装后
  4. vagrant up ,然后像问题中描述的那样卡住了。

如果存在现有的“.vagrant”文件夹,可能存在某种冲突,可能是 ssh 密钥或其他东西。