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 个容器了。
再次感谢大家
将我的笔记本电脑带出家门几天,在那段时间里甚至都没有打开它。回来,准备继续摆弄我的项目,但页面突然停止工作。我开始在浏览器中获取 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 个容器了。
再次感谢大家