如何正确删除 Mac 上的本地主机 DNS 设置,以便进行实际 DNS 解析

如何正确删除 Mac 上的本地主机 DNS 设置,以便进行实际 DNS 解析

我在删除运行 Mac OS X 10.10.2(Yosemite)的 Mac 上的一些本地 DNS 设置时遇到了问题。

我通常使用该/etc/hosts文件将开发站点的请求定向到我的客户 Vagrant VM。有时我在开发中使用实时站点的 URL,这样就无需在迁移数据库时替换路径。

在这种情况下,我有以下记录:

192.168.50.4 example.com www.example.com

上面的IP是我的Vagrant VM的IP。

我已将网站迁移到生产环境,但无法让 Chrome 连接到我服务器上的实时网站。当我使用该主机ping名时traceroute,Mac 仍会解析为192.168.50.4已删除的 Vagrant VM 地址。

当我用手机访问该网站时,我得到了预期的行为。

到目前为止我已经完成了以下工作:

  1. /etc/hosts从我的文件中删除了该记录。
  2. 重新启动了我的 Macintosh。
  3. 清理了本地缓存如这里所述
  4. 通过访问此处刷新 Chrome 的 DNS 缓存:chrome://net-internals/#dns
  5. 再次重新启动了我的 Macintosh。
  6. 重新加载并重新配置我的 Vagrant VM。
  7. 已重新启动。

我似乎无法让我的 Macintosh 连接到网络上的实时站点。我已将此流程用于我开发的最近 10-15 个项目。

关于如何防止我的机器在 Vagrant VM 上查找域,有什么想法吗?

更新:运行dscacheutil -q host显示以下条目:

name: example.net
alias: # VAGRANT: 53475745d1ed12f00441552188bfdd8b (default) / 0eb4854a-a516-4d34-ac43-397240944175
ip_address: 192.168.50.4

name: www.example.net
alias: # VAGRANT: 53475745d1ed12f00441552188bfdd8b (default) / 0eb4854a-a516-4d34-ac43-397240944175
ip_address: 192.168.50.4

仍然不确定为什么我无法使用 Apple 推荐的任何命令来清除这个问题。

答案1

任何遇到这个问题的人,都有一个简单的解决方案:

  1. 检查你的/etc/hosts文件。
  2. 删除必要的条目。
  3. 仔细检查 hosts 文件条目是否已被删除:dscacheutil -q host
  4. 清除本地缓存,具体取决于您的操作系统版本(参考这里)。
  5. 检查您的 Vagrantfile 并确保您在配置期间没有使用插件来更新主机文件。
  6. 重新加载 vagrant 并配置vagrant reload --provision
  7. 再次检查您的主机文件,一直检查到最底部。

我碰巧正在使用 Vagrant 插件,它导致主机文件在配置期间更新,但是几个月前我就设置好了它,然后就忘记了。

一路顺利。

相关内容