Laravel Homestead - 页面停止工作 ERR_ADDRESS_UNREACHABLE

Laravel Homestead - page stopped working ERR_ADDRESS_UNREACHABLE

将我的笔记本电脑带出家门几天,在那段时间里甚至都没有打开它。回来,准备继续摆弄我的项目,但页面突然停止工作。我开始在浏览器中获取 ERR_ADDRESS_UNREACHABLE。

我已经卸载了 homestead box、vagrant、virtualbox,每次重启后重新安装,同样的问题。

我无法 ping 192.168.10.10 地址,但我可以通过 SSH 连接到盒子,没问题。

运行 MacOS Big Sur、VirtualBox 6.1、Vagrant 2.2.18 以及最新的 homestead 版本。真的要完全退出编程,这太令人沮丧了。我真的很感激任何帮助。谢谢

Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Documents/Code
      to: /home/vagrant/code

sites:
    - map: homestead.test
      to: /home/vagrant/code/PHP/test/public

databases:
    - homestead

features:
    - mysql: true
    - mariadb: false
    - postgresql: false
    - ohmyzsh: false
    - webdriver: false

services:
    - enabled:
          - "mysql"

Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

require 'json'
require 'yaml'

VAGRANTFILE_API_VERSION ||= "2"
confDir = $confDir ||= File.expand_path(File.dirname(__FILE__))

homesteadYamlPath = confDir + "/Homestead.yaml"
homesteadJsonPath = confDir + "/Homestead.json"
afterScriptPath = confDir + "/after.sh"
customizationScriptPath = confDir + "/user-customizations.sh"
aliasesPath = confDir + "/aliases"

require File.expand_path(File.dirname(__FILE__) + '/scripts/homestead.rb')

Vagrant.require_version '>= 2.2.4'


Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    if File.exist? aliasesPath then
        config.vm.provision "file", source: aliasesPath, destination: "/tmp/bash_aliases"
        config.vm.provision "handle_aliases", type: "shell" do |s|
            s.inline = "awk '{ sub(\"\r$\", \"\"); print }' /tmp/bash_aliases > /home/vagrant/.bash_aliases && chown vagrant:vagrant /home/vagrant/.bash_aliases"
        end
    end

    if File.exist? homesteadYamlPath then
        settings = YAML::load(File.read(homesteadYamlPath))
    elsif File.exist? homesteadJsonPath then
        settings = JSON::parse(File.read(homesteadJsonPath))
    else
        abort "Homestead settings file not found in #{confDir}"
    end

    Homestead.configure(config, settings)

    if File.exist? afterScriptPath then
        config.vm.provision "Run after.sh", type: "shell", path: afterScriptPath, privileged: false, keep_color: true
    end

    if File.exist? customizationScriptPath then
        config.vm.provision "Run customize script", type: "shell", path: customizationScriptPath, privileged: false, keep_color: true
    end

    if Vagrant.has_plugin?('vagrant-hostsupdater')
        config.hostsupdater.remove_on_suspend = false
        config.hostsupdater.aliases = settings['sites'].map { |site| site['map'] }
    elsif Vagrant.has_plugin?('vagrant-hostmanager')
        config.hostmanager.enabled = true
        config.hostmanager.manage_host = true
        config.hostmanager.aliases = settings['sites'].map { |site| site['map'] }
    elsif Vagrant.has_plugin?('vagrant-goodhosts')
        config.goodhosts.aliases = settings['sites'].map { |site| site['map'] }
    end

    if Vagrant.has_plugin?('vagrant-notify-forwarder')
        config.notify_forwarder.enable = true
    end
end

我确实尝试设置网络 as described here and here 但没有任何效果。

我认为这是解决方法,但直到现在我还无法得到它运行:

Anything in the 192.68.56.0/21 range will work out-of-the-box without any custom configuration per VirtualBox's documentation.

https://github.com/laravel/homestead/issues/1717

在这里找到了更多相关信息:

https://discuss.hashicorp.com/t/vagrant-2-2-18-osx-11-6-cannot-create-private-network/30984/16


2021 年 10 月 29 日更新:
我将 virtualbox 降级到 6.1.26,它又可以工作了。

首先,我真的很想对所有看到这篇文章并试图提供帮助的人表示衷心的感谢。我真的很感激。 @ndberg 上面的 post 结果是答案的一半。按照他上面的 link,这些是我为“解决”这个问题所采取的步骤

第 1 步:192.168.10.10 无法在 VBox 6.1.28 上运行,要么将其更改为 192.168.56.**(我使用 4,所以它是 192.168.56.4)并更新您的 /etc/hosts 文件来匹配 做 none... 然后创建一个 /etc/vbox/networks.conf 文件并添加 * 192.168.10.0/24 到它。我去更新现有文件,我没有做后者。

你还没有完成

现在问题是最新的 Monterey 上的 Vagrant OS

第 2 步:打开 Vagrantfile 并添加

config.vm.provider "virtualbox" do |v|
   v.gui = true
end

在 Homestead 附带的默认 Vagrantfile 中,我在第一个 if 语句之后添加了我的。这将在启动时打开 VM window,您需要 minimize/close window。我猜我们正在等待 Vagrant 的更新来解决这个问题

它现在可以工作了

至此,我的 VirtualBox 之旅有了一个坚实的结论。多年来,我花费了无数小时来调试使用 VirtualBoxes 时出现的各种问题。是时候尝试使用 docker 个容器了。

再次感谢大家