小编Bri*_*ick的帖子

更改 Mac El Capitan 上的 DNS 搜索顺序

我有一个路由器,它也在运行一个 DNS,其中包含本地网络上机器的名称。它设置为转发请求,因此对于任何公共机器,它都会访问我的 ISP 提供的 DNS。路由器配置为主要 DNS,而 ISP 的 DNS 列为辅助 DNS。我有几台具有静态 IP 的机器(那些在我的私有 DNS 中有条目的机器)。其他机器,包括作为这个问题主题的 Mac,通过 DHCP 获取它们的地址。

此网络上的 Windows 机器运行良好。他们将私有名称解析为我网络上的机器,并且还可以访问公共互联网。

我的单台 Mac 笔记本电脑不工作。它可以毫无问题地访问公共互联网,但它没有访问我的内部 DNS 来获取内部名称。例如,如果我对内部机器执行 ping 操作

ping internal.example.com
Run Code Online (Sandbox Code Playgroud)

我收到了数据包,但它显示了一个对应于 Hover 的 IP 地址。(显然 Hover 正在为没有公共路由的任何子域放置一个登录页面。)如果我这样做

nslookup internal.example.com
Run Code Online (Sandbox Code Playgroud)

但是,我在本地网络上获得了机器的正确(内部)IP。

最后,如果我再次执行 ping 但这次强制它使用我的内部 DNS (192.168.1.2),

ping internal.example.com 192.168.1.2
Run Code Online (Sandbox Code Playgroud)

我从本地网络上正确机器得到响应。这似乎表明即使“本地”方法也可以做我想做的事,只要它使用正确的 DNS。

我找到了很多讨论这个问题的文章,但到目前为止我实际发现的要么已经过时,要么不是我的问题的完整解决方案。到目前为止我拼凑的东西:

  • 在几次操作系统升级过程中,Apple 一直在改变其 DNS 解析方法,因此在线答案很快就会过时。
  • 从 El Capitan 开始,Mac 具有(至少)两个同时运行的 DNS 解析方案。这与从 ping 和 nslookup 获得不同的结果有关,如上所述。在“通常的”linux 系统上运行的命令行实用程序似乎至少在他们的手册页上记录了这一点,通常在标题为“Mac OS X Notice”之类的部分下。不幸的是,在不一一检查的情况下,不清楚哪些实用程序使用了哪些实用程序。(到目前为止,看起来 nslookup 和 dig 使用 linux 方法,而 …

networking dns private-network osx-el-capitan macos

4
推荐指数
1
解决办法
8675
查看次数

标签 统计

dns ×1

macos ×1

networking ×1

osx-el-capitan ×1

private-network ×1