资讯 ·

[转载]如何评价最新的全球最快DNS 1.1.1.1?

CloudFlare 跟 APNIC 前段时间合作推出的 DNS 服务,号称全球最快的DNS

IPv4 DNS 服务器:主要 1.1.1.1 备用 1.0.0.1
IPv6 DNS 服务器:主要 2001:2001:: 备用 2001:2001:2001::

这个DNS服务还是有很多优势的,其中包括:

  1. 保护隐私。Cloudflare 不在服务器端对查询做任何记录,这是 Google 做不到的。(Google 当然想要更多数据用于分析。)
  2. 支持加密,包括 DNS-over-HTTPS 和 DNS-over-SSL。
  3. 虽然延迟不及国内一些DNS,不过非缓存请求的响应速度比国内大部分dns

本文内容来自逼乎文章:如何评价最新的全球最快DNS 1.1.1.1?

Copy Cat:已经试用这个dns几天,感觉不错。

总得来说,它缓存的量没有alidns多,但是非缓存请求的响应速度和alidns不相上下。

特别地,它很注重隐私承诺。

官网自吹
DNS Benchmark
国内一台机器的 DNS Benchmark

红色是cached response, 绿色uncached。
cached的响应速度第一当然是阿里的DNS,其次是google的,中间隔着几个OPENDNS,然后到1.1.1.1 uncached ,1.1.1.1和alidns 五五开。

毕竟这个dns上线不到半个月。


DNS Ping
Ping

ping得出的情况,

AliDNS,20ms;

Google,36ms;

1.1.1.1, 181ms。


隐私承诺值得一提:

DNS:互联网的目录

总体来说 Cloudflare DNS 有两个优势:

  1. 保护隐私。Cloudflare 不在服务器端对查询做任何记录,这是 Google 做不到的。(Google 当然想要更多数据用于分析。)
  2. 支持加密,包括 DNS-over-HTTPS 和 DNS-over-SSL。

我为此特意买了一个 Raspberry Pi 然后在上面跑 Dnscrypt-Proxy,然后通过 DNS-over-HTTPS 访问 Cloudflare DNS。这样我在公网上的 DNS 查询都是加密的。然后我把家里路由器的 DNS 指向 Raspberry Pi,这样家里所有设备的 DNS 请求都会走加密通道。想要看详细教程的可以读我这篇文章:

用 Raspberry Pi 架设加密 DNS 客户端 | Cat Chen on Patreon​www.patreon.com
至于速度,其他答案尝试用 ping 来比较 DNS 速度那都是不可靠的,因为 ping 只反映你机器到 DNS 的 RTT(Round-Trip-Time,往返时间),而查询本身需要再花时间。正确的打开方式时用 dig 命令来查询:dig (command) - Wikipedia

如果要看查询本身所花费的时间,应该执行 dig 然后用 @ 来指定 DNS 服务器,看返回的 query time 是多少:

> dig @1.1.1.1 www.facebook.com

; <<>> DiG 9.10.6 <<>> @1.1.1.1 www.facebook.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32555
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1536
;; QUESTION SECTION:
;www.facebook.com.		IN	A

;; ANSWER SECTION:
www.facebook.com.	3219	IN	CNAME	star-mini.c10r.facebook.com.
star-mini.c10r.facebook.com. 45	IN	A	157.240.22.35

;; Query time: 16 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Wed Apr 25 00:04:44 PDT 2018
;; MSG SIZE  rcvd: 90

看我高亮的那一行,显示 query time 是 16 毫秒。但这仅仅是 DNS 服务器查询时间,不包括 RTT,不是整个 DNS 请求的端到端时间。要知道端到端时间,就要用 time 命令来测量一下:

> time (dig @1.1.1.1 www.facebook.com)

; <<>> DiG 9.10.6 <<>> @1.1.1.1 www.facebook.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26672
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1536
;; QUESTION SECTION:
;www.facebook.com.		IN	A

;; ANSWER SECTION:
www.facebook.com.	2923	IN	CNAME	star-mini.c10r.facebook.com.
star-mini.c10r.facebook.com. 2	IN	A	157.240.22.35

;; Query time: 14 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Wed Apr 25 00:06:28 PDT 2018
;; MSG SIZE  rcvd: 90


real	0m0.027s
user	0m0.005s
sys	0m0.006s

看我高亮的那一行,real 是现实世界时间(俗称 wall clock),也就是 27 毫秒。

当然测量一次是没有意义的,必须测量多次的结果才有统计意义。我用 1.1.1.1 和 8.8.8.8 对比若干次后发现 1.1.1.1 有轻微的优势。当然最快的还是我本地的 Raspberry Pi,因为 DNS 服务在本地。

1.1.1.1

参与评论