DNS 解析器速度测试?我当前的 DNS 解析器是什么?

DNS 解析器速度测试?我当前的 DNS 解析器是什么?
  1. 切换到 CloudFlare DNS 解析器 1.1.1.1 会加快我的速度吗?有没有办法测试一下?

  2. 我当前的 DNS 解析器是什么:是 127.0.0.53(Ubuntu)还是 198.105.244.23(Century Link,即我当前的 ISP)?

为了回答这两个问题,我运行了以下脚本:

当我运行这个礼貌https://github.com/cleanbrowsing/dnsperftest

以下是结果:

:~/dnsperftest$ bash ./dnstest.sh sort -k 22 -n

              test1   test2   test3   test4   test5   test6   test7   test8   test9   test10  Average 

127.0.0.53        28 ms   23 ms   24 ms   23 ms   24 ms   25 ms   24 ms   24 ms   1 ms    103 ms    29.90
cloudflare        23 ms   24 ms   23 ms   23 ms   23 ms   23 ms   23 ms   24 ms   23 ms   40 ms     24.90
level3            66 ms   73 ms   72 ms   71 ms   74 ms   74 ms   70 ms   71 ms   73 ms   73 ms     71.70
google            23 ms   23 ms   22 ms   108 ms  70 ms   175 ms  23 ms   117 ms  22 ms   155 ms    73.80
quad9             133 ms  74 ms   71 ms   73 ms   75 ms   74 ms   74 ms   71 ms   73 ms   74 ms     79.20
freenom           65 ms   73 ms   73 ms   73 ms   175 ms  177 ms  176 ms  175 ms  73 ms   176 ms    123.60
opendns           65 ms   23 ms   22 ms   23 ms   23 ms   151 ms  23 ms   119 ms  22 ms   23 ms     49.40
norton            156 ms  72 ms   68 ms   152 ms  153 ms  74 ms   72 ms   75 ms   71 ms   73 ms     96.60
cleanbrowsing     24 ms   25 ms   25 ms   23 ms   24 ms   25 ms   24 ms   23 ms   24 ms   27 ms     24.40
yandex            209 ms  278 ms  277 ms  277 ms  278 ms  283 ms  272 ms  270 ms  372 ms  380 ms    289.60
adguard           166 ms  174 ms  177 ms  174 ms  162 ms  177 ms  177 ms  173 ms  170 ms  156 ms    170.60
neustar           23 ms   23 ms   22 ms   23 ms   25 ms   22 ms   23 ms   22 ms   24 ms   36 ms     24.30
comodo            24 ms   24 ms   23 ms   24 ms   25 ms   24 ms   24 ms   23 ms   23 ms   24 ms     23.80

我谷歌了一下第一个 DNS 服务器,并在 AskUbuntu 上找到了这个定义:

127.0.0.53 是本地缓存存根解析器的地址。它将 DNS 请求转发到您指定的任何上游 DNS 服务器。

我当时就想,“太好了,不用改我的 DNS 了,它已经以最高速度运行了”

但是当我运行这个时:

 $ systemd-resolve protocol
protocol: 198.105.244.23
          198.105.254.23
          (protocol.Home)

-- Information acquired via protocol DNS in 150.9ms.
-- Data is authenticated: no

当我在谷歌上搜索这最后 2 个 DNS 号码时,出现了与我的 ISP Century Link 相连的 Akamai 技术。

有人能用通俗易懂的语言解释一下发生了什么吗?

为什么 DNS 服务器编号不同?为什么速度差别这么大?最后我应该切换到 CloudFlare 或表中的其他 DNS 还是坚持使用我现有的 DNS?

谢谢

答案1

首先要说的是:

systemd-已解决(带有“d”)是您本地机器上的 DNS 客户端服务。
systemd-resolve(不带‘d’)是一个可用于与 DNS 客户端交互的应用程序。

您可以使用以下方式检查当前配置的 DNS 服务器:

systemd-resolve --status
or
resolvectl status
or
cat /run/systemd/resolve/resolv.conf

127.0.0.53 是您的环回 IP,它绑定到您的本地 DNS 客户端。文件/etc/resolv.conf符号链接到/运行/systemd/resolve/stub-resolv.conf 它保存此 IP。其目的是将尝试直接访问 DNS 服务器的应用程序指向 systemd 解析的 DNS 客户端。

您使用的命令“systemd-resolve protocol”正在尝试使用以下方式完成域。家并解决协议主页- 我不确定它是如何工作的,也许你直接连接到提供商的网络,并且你能够通过 LLMNR 访问提供商的 DNS

那么它是如何工作的

当您查询域名时:

  1. DNS 客户端正在检查/etc/hosts对于静态条目
  2. DNS 客户端正在检查其缓存
  3. DNS 客户端正在联系 /run/systemd/resolve/resolv.conf 中配置的上游 DNS 服务器
  4. DNS 服务器正在检查其缓存,如果域名存在,它将回复 IP 地址
  5. 如果 DNS 服务器没有在缓存中存储此域,它将执行递归查找,然后返回答案给您的客户端。

可以想象,根据您在哪个阶段获得地址解析,延迟会有显著差异。延迟还取决于 DNS 服务器的当前负载。

您应该切换到 Cloudflare DNS 吗?

感知的 DNS 服务器性能取决于两个因素:

  1. 服务器距离有多远(IP 延迟)
  2. 它处理查询的速度有多快(答案是否缓存,服务器是否超载等)

Cloudflare 声称提供安全可靠的服务。从我的所有测试来看,它的表现优于本地 ISP 和谷歌的 DNS 服务器。但测试结果可能因地点而异。

切换到不同的知名 DNS 服务不会给您带来任何损失,因此您应该亲自检查体验。

我建议至少有一个本地缓存 DNS 服务器(例如路由器中的服务器)。

自从我设置了个人递归 DNS 服务器后,我个人注意到了体验的显著改善。

相关内容