如何检查我使用的 DNS 服务器(在 Mac OS X 上)

rya*_*ogo 97 dns macos

在 Mac OS X 中,如何检查我当前使用的 DNS 服务器(最好是命令行解决方案)?

System Preferences > Network显示192.168.1.1,这是我的路由器地址,而不是真正的 DNS 服务器。

小智 154

您可以尝试scutil --dns | grep 'nameserver\[[0-9]*\]'在命令行发出 a 。应该为您提供系统上配置的 DNS 服务器列表。

  • +1 对于显示 [“multi-client”](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/resolver.5.html) 配置的服务器的命令(例如`/etc/resolver/...`)。 (2认同)
  • 我添加了`| 排序 | uniq` 因为我只对使用的唯一 DNS 服务器感兴趣。 (2认同)
  • 吹毛求疵,但为什么要在 `grep` 字符串中添加 `\[[0-9]*\]` 呢? (2认同)
  • 在我的计算机上 `scutil --dns | grep nameserver` 就足够了,或者 `scutil --dns | grep nameserver` 就足够了。 grep 名称服务器 |如果我只想查看独特的服务器,请排序 -u`。 (2认同)

Jac*_*cob 17

您的路由器充当 DNS 转发器,您询问路由器,路由器为您询问 DNS 服务器。您需要登录到您的路由器网络配置以了解它正在使用什么,或者您可以直接将其输入到您的网络配置中。

  • @senfo 不,Jacob 是对的,许多路由器通过 DHCP 将自己宣传为 DNS 服务器,并且在内部,它们查询真正的(递归)DNS 服务器。 (2认同)
  • @caw,我已经回去阅读了评论,我想我误解了最初的答案是什么。我收回我之前对这个答案的判断。 (2认同)

小智 16

使用以下命令在 Mac OS X 中查看您的 DNS 服务器:

打开终端并输入

$ cat /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

查看您的 DNS 服务器。

示例输出:

$ cat /etc/resolv.conf 
domain http://www.example.com (Here, you can see DNS records info of the particular domain name.)
nameserver 68.87.85.98
nameserver 68.87.69.146
Run Code Online (Sandbox Code Playgroud)

  • 现在不太有用。该文件只是为了让遗留应用程序可以读取一些内容。大多数 MacOS 的东西都使用内部数据库。使用“scutil”命令查看上面的回复。 (3认同)

Qui*_*ant 15

Akamai 提供了一个 DNS 调试工具,它返回用于查询的解析器的 IP 地址。打开 Terminal.app 并运行以下命令:

dig whoami.akamai.net +short
Run Code Online (Sandbox Code Playgroud)

UltraDNS 也提供了一个,但我发现它不太可靠:

dig whoami.ultradns.net +short
Run Code Online (Sandbox Code Playgroud)

这些工具返回的 IP 地址是用于您的网络的 DNS 解析器,但可能只是其中之一。直接在您的网络首选项中使用 IP 可能有优势。

您可以使用namebench对本地和备用 DNS 服务器的性能进行基准测试。


小智 5

我在寻找一种以文本格式(例如 Wi-Fi 适配器)获取特定网络适配器的 DNS 服务器列表的方法时遇到了这个问题:

在此处输入图片说明

可以使用以下命令在终端中获取此 DNS 服务器列表:

$ networksetup -getdnsservers Wi-Fi
8.8.8.8
4.2.2.4
4.2.2.1
4.2.2.2
192.168.1.1
Run Code Online (Sandbox Code Playgroud)

对于以太网适配器:

$ networksetup -getdnsservers Ethernet
8.8.8.8
4.2.2.4
4.2.2.1
4.2.2.2
192.168.1.1
Run Code Online (Sandbox Code Playgroud)