该选哪一个?
直接选排在最上面的那家就行。如果前几名只差几毫秒,就按你在意的其他方面挑:
想顺手挡掉恶意网站和钓鱼网站:选 Quad9 或 OpenDNS。
在意隐私:Mullvad、Quad9 和 Wikimedia 声明不记录谁查了什么。
想防伪造:选打了 ✓ 的,它们会验证 DNSSEC(域名签名)。
如果设备只能填普通 DNS 地址(大多数路由器、较老的系统),看 UDP 那一列:最快的普通 DNS 如果不是第一名,会单独写在第一名下面。
不想让运营商和所在网络看到你查了哪些网站,就用 DoT 或 DoH 地址:普通 DNS 不加密,途经的网络都能看到。
怎么修改 DNS?
安卓 9 及以上:设置 → 网络 → 私人 DNS,填 DoT 主机名(比如 dns.alidns.com)。所有网络都生效,而且是加密的。
iPhone 和 Mac:在每个 Wi-Fi 的设置里填 DNS 服务器;要用加密 DNS,从 DNS 官网下载并安装描述文件。
Windows 11:设置 → 网络 → 当前连接 → DNS 服务器分配 → 手动,填入地址,再打开 DNS over HTTPS。
路由器:在 DHCP 或 WAN 设置里填 DNS 服务器,家里所有设备都会用上。
只改浏览器:Chrome、Edge、Firefox 都有「安全 DNS」设置,选一家或者粘贴 DoH 地址。
每家 DNS 的专页都有逐步的设置方法。点页面上任何一个地址就能复制。
开着代理,测出来的还是我的网络吗?
默认不是。开着代理或 VPN 时,浏览器会经过代理去连各家 DNS,测到的是代理的线路,境外的 DNS 都会显得和代理服务器差不多快。而你在设备或路由器上设的 DNS,平时一般是直接连的,所以这个数字不是你实际用起来的速度。
想测自己的网络,就加上直连规则(进度条旁边的按钮)。规则只让这个测试访问的地址直连,按精确的域名和单个 IP 匹配,其他流量不受影响。支持 Clash/Mihomo、Surge、Shadowrocket、Quantumult X、Loon、sing-box 和 Xray,大多数可以直接从本站拉取规则集,自动保持最新。
测试是怎么做的?
你的浏览器直接向每家 DNS 发查询,不经过本站。
先和每家建立连接,把三个热门域名各查一次,让它们进入这家 DNS 的缓存,这一步不计成绩。然后测 10 轮:每轮每家查一次,顺序每轮重新打乱,几家同时测。这样网络偶尔卡一下,影响的是所有 DNS,不会只冤枉正好在测的那一家。每隔一轮还会查一个根本不存在的随机域名。
结果取中位数,偶尔一次慢不会拉低成绩。时间用的是浏览器自己记录的网络耗时,页面脚本拖不慢它。每次请求的地址都不同,并且绕过所有缓存,只能由 DNS 本身来回答。
为什么 UDP 和 DoT 是估算的?
因为浏览器做不到。网页只能发 HTTPS 请求:普通 DNS 用的 UDP(53 端口)、加密的 DoT(853 端口)和 DoQ,它都发不了。任何网站都没法从你的网络测这些;给出这类数字的网站,要么是在它自己的服务器上测的,要么是猜的。
这个页面的做法是:向负责 UDP 和 DoT 的同一台服务器发 DoH,也就是走 HTTPS 的加密 DNS 查询(比如 https://1.1.1.1/dns-query)。连接建立以后,一次查询的耗时就是到这台服务器跑一个来回,加上它处理的时间。UDP、DoT 查询花的也正是这些,HTTPS 这一层只多出不到 1 毫秒,所以标成 ≈。普通 DNS 服务器不支持 HTTPS 的几家,显示 –,不硬凑数字。
估算看不出来的情况:有的网络会单独封锁、限速或篡改 53、853 端口,而不动 HTTPS。
要实测 UDP、DoT 和 DoQ,在服务器、Linux 主机或路由器上运行表格上方命令行卡片里的那条命令(进度条旁的「命令行」按钮也能打开)。它支持所有协议,测的是同一份 DNS 名单。
结果可靠吗?
测量方法见「测试是怎么做的?」。此外,DNS 名单用代码仓库里的 scripts/verify.mjs 在多个大洲核实过:每个地址都必须对这种查询返回真正的 DNS 应答;DNSSEC 是实际测出来的,不是照搬各家的宣传。
Cloudflare、Google、Quad9、Control D、DNS.SB、DNS4EU、IIJ 这几家允许网页读取应答内容,页面会逐条检查,只把真正的应答算进去。其他几家浏览器只能计时,看不到内容。
建议多测几次,最好换不同时间段:晚上最快的,高峰期不一定最快。
「首次查询」是什么意思?
热门域名早就在各家 DNS 的缓存里,查起来哪家都快。很久没人查过的域名就不一样了:DNS 得先去问这个网站自己的 DNS 服务器,再把答案告诉你,这就是「首次查询」。
测试用的是托管在 Cloudflare 上的随机域名,Cloudflare 的 DNS 服务器除中国大陆外几乎遍布全球。这部分耗时取决于每个网站的 DNS 服务器在哪,各不相同,所以只显示、不排名。国内的 DNS 在这一列显得慢,是因为这些域名的服务器在境外;查国内网站时,它们很快。
DNSSEC 是什么?
简单说,就是给域名的解析结果加上签名,防止被伪造。验证 DNSSEC 的 DNS 会检查签名,对不上就拒绝,这样途中谁也没法塞给你一个假地址。打 ✓ 的就是会验证的:我们用一个故意签错的域名 dnssec-failed.org 来测,它们必须拒绝。它只对签了名的域名有效,但开着没有坏处。
ECS 是什么?为什么表里没有?
ECS(EDNS Client Subnet)是指 DNS 把你 IP 地址的一部分转告给网站的 DNS 服务器,好让 CDN 按你的位置、而不是 DNS 服务器的位置分配节点。下载和视频可能更快,代价是多透露一点你的位置。
表格里不列它,因为它不是固定的:我们核实时发现,同一家 DNS 在有的地方、走有的协议会传,换个地方或协议又不传。只写「是」或「否」都会误导你。
为什么没有 114DNS、百度 DNS?
它们只提供普通 DNS,服务器完全不响应 HTTPS,浏览器没有任何办法连上,所以测不了。中国台湾的 Quad101 也没收录:我们核实时,它的 DoH 从境外连不上。
会收集我的数据吗?
不保存测试结果,也不保存任何关于你的信息。测试的查询从你的浏览器直接发给各家 DNS,查的是热门公共网站和随机域名,里面没有关于你的信息。结果只留在你的浏览器里;只有点「分享」时才写进分享链接(每家 DNS 的耗时,不含 IP 地址;要不要带上你所在的国家或地区由你决定)。
有一件事会经过 1ms.dog 自己的服务器(在东京):为了显示你的设备实际在用哪个 DNS,页面会查一个 l.1ms.dog 下的随机域名,这个域名的 DNS 服务器是我们的;测完后还会经每家 DNS 各查一个这样的域名,看是它的哪个节点在为你服务。这台服务器能看到来查询的 DNS 的地址,以及这家 DNS 转交过来的你的网段(ECS:你 IP 地址的前半部分,比如 203.0.113.0/24)。它只在内存里保留 2 分钟,供页面从 api.l.1ms.dog 取回,之后就丢弃,不写盘,也不写日志。这些信息只显示给你自己,不会进分享链接和分享卡片。
和所有 DNS 查询一样,各家 DNS 会看到你的 IP 地址,适用它们各自的隐私政策。代码在 GitHub 开源。