Mac OS X 10.10.1 AMP堆栈离线使用

时间:2015-01-08 05:38:47

标签: macos apache dns

在更新Yosemite之前(在Mavericks上)我能够通过apache访问我本地托管的网站,即使完全关闭了wifi。我根据本教程设置了我的AMP堆栈:http://wizardmode.com/2012/06/apache-php-mysql-dev-on-os-x-lion-with-a-minimum-of-pain/

来自指南

还有一件事。如果您未连接到网络(在某些情况下),OS X将拒绝进行DNS查找。有一个简单的方法,分两步:

首先,安装VirtualBox。创建一个新的虚拟机,并为其提供一个仅限主机的网络适配器。 (如果您实际上不需要任何虚拟机,则可以使用FreeDos映像。它很小。)至少启动一次虚拟机。

您可以使用此代码段从命令行执行此操作(安装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域名。

END TUTORIAL SECTION

更新后我经历了地狱以使我的所有本地网站都运行,现在 只有我有互联网连接才能正常工作

我正在根据教程运行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网络设置的屏幕截图: enter image description here

您可以查看opendns服务器,然后查看localhost以进行DNS解析。

此外,这里是scutil --dns输出:     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 个答案:

答案 0 :(得分: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