我如何知道我正在使用哪个 DNS 服务器?

我如何知道我正在使用哪个 DNS 服务器?

如果我刚刚更改了家用路由器上配置的 DNS 服务器,例如使用 1.1.1.1 或 8.8.8.8 而不是 ISP 的默认 DNS 服务器,是否有一种简单的方法可以检查我的更改是否已正确应用,使用 dig 或 MacOS 上的其他工具?

答案1

如果您的 MacOS 使用路由器作为 DNS 服务器,那么它就是它使用的唯一服务器。因此,MacOS 上的任何工具都不会向您显示任何其他服务器。

使用 1.1.1.1 或 8.8.8.8 作为 DNS 服务器的是你的路由器,而不是你的 MacOS,因此,要验证你的路由器是否真的使用它,你需要捕获 DNS 流量路由器和互联网之间

如果您有一台可以通过 ssh 登录并使用命令行界面的路由器(例如基于 OpenWRT),那么您可以在路由器本身上运行数据包捕获(例如使用tcpdump)并查看输出。这是最简单的方法。

否则,这可能需要在WAN 端口(外部端口)您的路由器和您的互联网连接(例如电缆调制解调器上的以太网端口) - 例如具有监控功能的交换机 - 然后将装有数据包捕获软件(如 Wireshark)的计算机连接到此设备。

答案2

你能尝试按照以下解决方案吗这里

命令行工具 scutil 返回系统上配置的名称服务器:

scutil --dns | grep 'nameserver\[[0-9]*\]'

如果它返回家庭路由器 IP,那应该是好的,因为你的家庭路由器会将您的 DNS 请求转发到其配置的 DNS。

在家庭网络配置中,您无论如何都不必担心太多。

如果您从未在客户端设备上设置静态 IP 配置,则 DNS 服务器应该由您的家庭路由器提供,这意味着,如果您更改了家庭路由器上的设置,客户端设备也应该随之更改。

只有在下列情况下您才需要担心:

  • 您已在系统上设置了主机文件(用于静态 DNS 查询)。
  • 您错误配置了家用路由器(如果这样做,现在房子应该已经着火了,因为没有人可以访问互联网)。
  • 您对家庭网络进行了调整,使其具有多个路由器/交换机/vlan,并且您的 DHCP 提供的 DNS 服务器是一个无人知晓的隐藏设备。

如果您确实想检查您的 DNS 更改是否传播,您可以尝试以下一个或多个命令(我不是 Macos 专家,不知道这些工具是否可用,我使用 ubuntu 进行测试),从终端:

dig whoami.akamai.net

它返回回答你请求的服务器

在 Ubuntu 上挖掘

nslookup somewebsite.com

它还返回有关 DNS 服务器的信息:

Ubuntu 上的 nslookup

重点是确保回答您问题的服务器不再是您的 ISP。它可能不是 1.1.1.1 也不是 8.8.8.8(取决于 dig 和 nslookup 在您的设备上的行为方式),它可能会返回权威答案(即发出请求的最终服务器)。

相关内容