TL;DR:一句话结论
测私人DNS速度,最靠谱的方法是命令行dig或nslookup多次查询取中位数,配合在线工具 DNSPerf 看全球平均值。判断标准:国内DNS延迟10-50ms算快,100ms以上就偏慢了;但延迟低不等于上网快,解析成功率和缓存命中率同样重要。
很多人换了私人DNS之后心里没底:我换的这个到底快不快?怎么测?这篇文章教你从零开始,用命令行和在线工具,科学地测出你当前用的私人DNS到底什么水平。如果你还没选好要用哪家DNS,可以先看本站之前的公共DNS服务商对比,五家主流服务横向分析完再测。
为什么不能只凭感觉判断DNS速度
DNS解析是上网的第一步——打开任何一个网站,浏览器都要先问DNS服务器:"这个域名对应的IP是什么?"然后才去连那个IP。DNS慢,体现在实际体验上就是"打开网页前卡那一两秒"。
但人对一两秒的延迟感知很模糊。你感觉"好像快了",可能只是因为缓存命中了;你感觉"好像慢了",可能只是网络波动。要客观比较,必须量化测量。
方法一:命令行 dig 测速(最推荐)
dig 是Linux和macOS自带的DNS查询工具,能直接告诉你一次DNS解析花了多少毫秒。Windows用户可以用 nslookup 替代。
Linux / macOS 命令示例
打开终端,输入:
dig @223.5.5.5 baidu.com这里的 @223.5.5.5 表示"向阿里DNS发起查询",你可以换成任何你想测的DNS服务器。查询 baidu.com 这个域名。
怎么看结果里的"query time"
dig输出的最后几行长这样:
;; Query time: 23 msec
;; SERVER: 223.5.5.5#53(223.5.5.5)
;; WHEN: Thu Oct 1 23:40:00 2026
;; MSG SIZE rcvd: 56关键看 Query time 那一行,单位是毫秒(ms)。23ms就是这次解析花了23毫秒。
多次测量取中位数,别只测一次
一次查询的数据不准——可能是缓存命中了显得特别快,也可能刚好赶上网络抖动显得特别慢。正确做法:
for i in 1 2 3 4 5 6 7 8 9 10; do dig @223.5.5.5 baidu.com | grep "Query time"; done这行命令会连续查询10次,每次打印出query time。然后你把10个数字排序,取中间那个(第5或第6个)作为你的参考值。这叫"中位数",比平均值更抗极端值干扰。
Windows用户用 nslookup
Windows命令提示符下:
nslookup baidu.com 223.5.5.5nslookup不直接显示耗时,但你可以用 time 命令前缀,或者开两个窗口对比。更简单的方法是装一个 dig 的Windows版本,或者用PowerShell的 Resolve-DnsName。
怎么测DoT/DoH加密DNS的速度
上面的方法测的是明文UDP的速度。如果你想测安卓"私人DNS"用的DoT加密速度,命令行没法直接测,需要用专门的DoH/DoT客户端工具,或者看实际浏览器体验。关于DoT和DoH两种加密协议的详细原理区别,可以参考本站DoH/DoT/DoQ 协议对比。日常建议:DoT/DoH因为多了TLS握手,延迟通常比明文UDP高5-20ms,这是正常现象,换来的是加密安全。
方法二:在线测速工具(不用装软件)
如果你不想开命令行,浏览器里就能测。
DNSPerf(推荐)
DNSPerf是一个专门做DNS性能监测的网站。它从全球200多个监测点,每分钟测试主流公共DNS的响应时间和可用性,数据每小时更新一次。你可以在上面查到Cloudflare、Google、阿里、腾讯等各家DNS的全球平均延迟排名。
它还有一个 DNS Speed Benchmark 工具,输入一个域名,它会从全球各地帮你测这个DNS的解析速度,适合用来对比不同服务商在不同地区的表现。
注意:DNSPerf的数据是全球平均,不代表你所在地的实际速度。国内用户看全球排名参考价值有限,主要用来横向比较各家的稳定性和趋势。
其他在线工具
- DNS Checker(dnschecker.org):全球多地DNS解析结果查询,能看你的DNS解析在不同地区是否一致
- Ping.cc / 站长工具:国内常用的网络测速站,有DNS延迟对比功能
方法三:实际浏览器体验对比
数据测出来再好看,最终还是要落到实际体验上。最简单的对比方法:
- 先记下你现在的DNS设置
- 换成另一家,清空浏览器缓存
- 打开几个常用网站(百度、B站、淘宝),感受"点开网页到页面开始加载"之间的等待时间
- 换回来,再感受一遍
注意:第一次打开某个网站DNS会去查权威服务器,第二次就走本地缓存了。所以测速时要选你平时不常访问的域名,或者先清缓存。
怎么解读测速结果
延迟多少算快?
| Query time | 评价 | 说明 |
|---|---|---|
| 0-20ms | 很快 | 国内优质节点,基本感觉不到延迟 |
| 20-50ms | 正常 | 绝大多数国内公共DNS的水平 |
| 50-100ms | 偏慢但可用 | 跨运营商或跨省,偶尔会感觉到 |
| 100-200ms | 慢 | 国际线路或节点远,日常使用会有明显感知 |
| 200ms以上/超时 | 不推荐 | 高峰期可能打不开网页 |
延迟低就一定快吗?不一定
这是最常见的误区。DNS速度要看三个指标:
- 延迟(Latency):单次查询多快返回
- 解析成功率:100次查询里有多少次成功返回了正确IP
- 缓存命中率:很多热门域名本地有缓存,直接返回不用递归
有些DNS测出来单次延迟很低,但解析成功率不稳定(偶尔超时),实际用起来反而时快时慢。有些DNS延迟略高,但缓存命中率极高、从不超时,日常体验反而更好。
所以正确的测速方法是:分时段测多次(早中晚各测一轮),同时记录超时次数,综合判断。
测速时的注意事项
- 分时段测:网络高峰期(晚上8-11点)和凌晨的延迟可能差一倍。别只在凌晨测一次就下结论。
- 测不同类型的域名:国内大站(百度、淘宝)几乎所有DNS都缓存了,测不出差别。要测一些不太热门的小站,才能看出递归解析的真实能力。
- 关掉VPN/代理再测:VPN会改变DNS查询路径,测出来的数据不准。
- 手机上测:安卓手机可以装终端APP(如Termux)跑dig命令,也可以用一些网络工具类APP。
常见问题
Q1:测出来延迟低,为什么打开网页还是慢?
DNS只是上网的第一步。网页慢可能是带宽不够、服务器远、图片太大、运营商出口拥堵等各种原因。换DNS只能解决"域名解析慢"这一个环节,不能解决所有网速问题。
Q2:DoT加密DNS比明文DNS慢多少?
通常多5-20ms。因为多了一次TLS握手过程。但这个延迟在日常上网中几乎感觉不到,换来的是ISP无法窥探你的DNS查询内容。如果你的设备支持DoT(安卓9+),建议开启。
Q3:为什么我在广东测阿里DNS快,朋友在北京测却觉得腾讯更快?
DNS速度和你的地理位置、运营商线路强相关。阿里在华南节点多,腾讯在华北/华南都有布局。没有"全国统一最好"的DNS,只有"对你这条线路最好"的DNS。以你自己的实测为准。
Q4:要不要把主DNS和备DNS设成不同厂商?
可以,比如首选阿里,备用腾讯。这样一家挂了另一家顶上。但如果首选DNS响应慢,系统会等一会儿才切到备用,这个等待过程可能造成短暂卡顿。建议把你测速最快的那家设为首选。
参考来源
- DNSPerf 官方网站 — 支撑文中DNSPerf在线测速工具的介绍、全球200+监测点、每分钟测试频率等事实。
- DNSPerf DNS Speed Benchmark — 支撑文中在线benchmark工具的使用方法说明。
- Google Public DNS FAQ — 支撑文中DNS查询方式、临时日志等DNS基础概念,以及测速方法论参考。
- Cloudflare 1.1.1.1 加密DNS文档 — 支撑文中DoT/DoH加密协议额外延迟的说明。