我的 LAN 上有几台机器。其中大多数基于 Ubuntu。路由器具有 DD-WRT(v3.0-r33675M kongac 发布:2017 年 11 月 3 日)固件。
我已将 DHCP 设置为我所有计算机的网络设置。路由器已设置为使用 9.9.9.9 作为 DNS 服务器。
现在我想验证我的计算机是否使用quad9 作为 DNS,但我无法这样做。我的计算机只能看到路由器,不知道它正在使用哪个 DNS。
例如,命令(在 Ubuntu 中)
sudo netstat -l --inet -n -v -p | grep :53 | grep -i udp
给予
udp 0 0 127.0.1.1:53 0.0.0.0:*
所以我无法验证我是否以这种方式使用quad9。
路由器无法识别此命令,因此我无法通过这种方式验证 DNS 设置。
我已经在计算机和 DD-WRT 命令行中尝试过这篇文章中的内容,但没有帮助: 我使用什么 DNS 服务器?
如何正确验证我正在使用quad9 作为 DNS?
答案1
您可以使用tcpdump
以下命令查看 DNS 流量的去向:
# tcpdump -i eth0 -n udp port 53 or tcp port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:09:02.961122 IP 192.168.115.15.49623 > 192.168.115.5.53: 6115+ A? www.heise.de. (30)
16:09:02.983664 IP 192.168.115.5.53 > 192.168.115.15.49623: 6115 1/13/14 A 193.99.144.85 (493)
答案2
我没有找到直接的方法来检查您的路由器正在使用哪个 DNS 地址。因此,我建议使用替代方法dig
。
尝试挖掘不同的域,例如
dig facebook.com
dig msn.com
dig google.com
DNS 使用大量缓存。因此,在第一次获取域名后,您的路由器将捕获结果并在不询问的情况下传送它9.9.9.9
。但是,如果路由器每次都使用新的域,则必须询问9.9.9.9
因此,选择至少 10 个不同的域。并且从回复中dig
可以找到响应的DNS服务器。如果是,9.9.9.9
那么您的路由器一定正在使用它。
Answer Section
收到回复后dig
,您将看到这样的内容
;; Query time: 522 msec
;; SERVER: 9.9.9.9#53(9.9.9.9)
;; WHEN: Sat Nov 25 20:12:59 IST 2017
;; MSG SIZE rcvd: 54
笔记不要尝试非常未知的域。在这种情况下,必须从权威名称服务器获取答案。或者quad9和权威之间的某些服务器可能会响应。因此,请使用熟悉的域,这些域预计会被9.9.9.9
.并且不要依赖单个域的结果。尝试使用多个域。
答案3
我们在互联网上有一个dns泄漏服务器(搜索一下,网上有一些)来检查。如果您的 ISP 使用 DNS 代理,那么 nslookup 可能会给出错误的答案。