Mac OS X 10.10.1 AMP 堆栈离线使用
Posted
技术标签:
【中文标题】Mac OS X 10.10.1 AMP 堆栈离线使用【英文标题】:Mac OS X 10.10.1 AMP stack offline use 【发布时间】:2015-01-08 05:38:47 【问题描述】:在更新 Yosemite(在 Mavericks 上)之前,即使 wifi 完全关闭,我也能够通过 apache 访问我的本地托管站点。我根据本教程设置了我的 AMP 堆栈:http://wizardmode.com/2012/06/apache-php-mysql-dev-on-os-x-lion-with-a-minimum-of-pain/
来自教程
还有一件事。如果您没有连接到网络(在某些情况下),OS X 将拒绝进行 DNS 查找。有一个简单的方法,分两步:
首先,安装 VirtualBox。创建一个新的虚拟机,并给它一个 Host-only 网络适配器。 (如果您实际上不需要虚拟机来做任何事情,您可以使用 FreeDos 映像。它很小。)至少启动一次虚拟机。
你可以在命令行中使用这个 sn-p 来执行此操作(在安装 VirtualBox 之后):
(ifconfig | grep -s vboxnet) || VBoxManage hostonlyif create ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0
This prevents OS X from disabling normal DNS resolution when you’re not connected to a network.
其次,创建一个“dev”域解析器条目:
sudo mkdir -p /etc/resolver
sudo tee /etc/resolver/dev <<EOT
nameserver 127.0.0.1
domain dev
search_order 1
EOT
这告诉 OS X,当它没有其他 DNS 服务器时,它总是可以向 localhost(您的 dnsmasq 服务器)请求 .dev 域的域解析。 现在,如果您在终端中键入 ifconfig,其中一行应该以 vboxnet0 开头: – 如果是这样,太好了!即使您在飞机上,OS X 也会愉快地进行 DNS 查找,因此无论您身在何处,您都可以继续使用您的 .dev 域。
结束教程部分
更新后,我费尽心思让所有本地网站都运行起来,现在只有在我有互联网连接的情况下它们才能工作
我正在按照教程运行 dnsmasq,并且完成了整个 VirtualBox 技巧。这是 ifconfig 的相关输出:
vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
inet 192.168.56.1 netmask 0xffffff00 broadcast 192.168.56.255
vboxnet1: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:01
我不太确定出了什么问题。这是我的wifi网络设置的屏幕截图:
您可以查看 opendns 服务器,然后查看 localhost 以进行 dns 解析。
此外,这里是 scutil --dns 输出: 域名解析
resolver #1
nameserver[0] : 208.67.222.222
nameserver[1] : 208.67.220.220
nameserver[2] : 127.0.0.1
flags : Request A records, Request AAAA records
reach : Reachable
resolver #2
domain : dev
nameserver[0] : 127.0.0.1
flags : Request A records, Request AAAA records
reach : Reachable,Local Address
order : 1
DNS configuration (for scoped queries)
resolver #1
nameserver[0] : 208.67.222.222
nameserver[1] : 208.67.220.220
nameserver[2] : 127.0.0.1
if_index : 4 (en0)
flags : Scoped, Request A records, Request AAAA records
reach : Reachable
我真的对正在发生的事情和出错的事情感到不知所措。我已经尝试调试本教程中的一些 shell 脚本,看看它们是否会导致问题,但我无法弄清楚。这应该像馅饼IMO一样简单。为什么这是一场噩梦?
任何帮助都将不胜感激,因为我正在浪费宝贵的时间,这些时间可以用来在这个烂摊子上构建有用的东西。谢谢!!!!
【问题讨论】:
【参考方案1】:从 10.10 开始,当您与所有网络断开连接时,发现无法进行 DNS 解析。
您可以通过在连接时运行 scutil --dns 一次来确认这一点,并在断开连接时再次运行。
这是一个视频,展示了 10.9 和 10.10 https://www.youtube.com/watch?v=3m9OI_AjCx8 之间的行为差异
我已尝试向 Apple 升级此问题,得到的回应是这是预期的行为。
我知道的唯一解决方法是按照http://arstechnica.com/apple/2015/01/why-dns-in-os-x-10-10-is-broken-and-what-you-can-do-to-fix-it/重新添加 mDNSResponder
【讨论】:
以上是关于Mac OS X 10.10.1 AMP 堆栈离线使用的主要内容,如果未能解决你的问题,请参考以下文章
sh 使用brew 0.9.5在Mac OS X 10.10.1上安装和设置bind(named)
“未知错误”,“消息”:“连接被拒绝”,“堆栈跟踪”,同时尝试在 Mac OS X 上通过 GeckoDriver 和 Selenium 使用 firefoxprofile