切换到 CloudFlare DNS 解析器 1.1.1.1 会加快我的速度吗?有没有办法测试一下?
我当前的 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
那么它是如何工作的
当您查询域名时:
- DNS 客户端正在检查/etc/hosts对于静态条目
- DNS 客户端正在检查其缓存
- DNS 客户端正在联系 /run/systemd/resolve/resolv.conf 中配置的上游 DNS 服务器
- DNS 服务器正在检查其缓存,如果域名存在,它将回复 IP 地址
- 如果 DNS 服务器没有在缓存中存储此域,它将执行递归查找,然后返回答案给您的客户端。
可以想象,根据您在哪个阶段获得地址解析,延迟会有显著差异。延迟还取决于 DNS 服务器的当前负载。
您应该切换到 Cloudflare DNS 吗?
感知的 DNS 服务器性能取决于两个因素:
- 服务器距离有多远(IP 延迟)
- 它处理查询的速度有多快(答案是否缓存,服务器是否超载等)
Cloudflare 声称提供安全可靠的服务。从我的所有测试来看,它的表现优于本地 ISP 和谷歌的 DNS 服务器。但测试结果可能因地点而异。
切换到不同的知名 DNS 服务不会给您带来任何损失,因此您应该亲自检查体验。
我建议至少有一个本地缓存 DNS 服务器(例如路由器中的服务器)。
自从我设置了个人递归 DNS 服务器后,我个人注意到了体验的显著改善。