文章目录
评测环境说明
速度评测结果为2025.12在移动宽带的环境下,使用下面的脚本通过Ping命令多次测试得到的速率参考,强烈建议在自己的环境中重新运行以下脚本获取适合自己的DNS速率排名。
相关服务:台湾站群服务器租用
使用Ping测试方式原因说明:
- 已排除非速度维度干扰:已通过DNS提供商筛选,提前规避了服务稳定性、解析准确性等非速度类问题,测试可完全聚焦于“速度”这一单一核心指标,无需借助dig等兼具功能验证的工具。
- 精准匹配核心耗时来源:DNS整体速度差异的核心是网络链路往返延迟,而非服务商已保障的微秒级解析处理耗时,
ping可直接测得链路延迟,能真实反映DNS的核心速度表现。 - 测试基准统一无变量:
ping无需绑定具体域名,可规避dig等工具因域名缓存、解析策略差异产生的测试波动,确保所有备选DNS的速度对比基准一致,排名结果更客观可比。
评测脚本(可在MacOS/Linux环境下直接运行,Win11需要在WSL下执行)
#!/bin/bash
# ==================== 参数与配置 ====================
PING_COUNT=${1:-10}
if ! [[ "$PING_COUNT" =~ ^[0-9]+$ ]] || [ "$PING_COUNT" -lt 1 ]; then
echo "错误:请提供一个正整数作为 ping 次数(默认为 10)。"
echo "用法: $0 [ping_count]"
exit 1
fi
# 主推列表:格式为 "IP|说明"
MAIN_LIST=(
"223.5.5.5|阿里"
"223.6.6.6|阿里"
"180.76.76.76|百度"
"119.29.29.29|腾讯"
"119.28.28.28|腾讯"
"180.184.1.1|字节(火山引擎)"
"180.184.2.2|字节(火山引擎)"
"114.114.114.114|114dns"
"114.114.115.115|114dns"
"114.114.114.119|114dns拦截恶意网站"
"114.114.114.110|114dns拦截恶意网站儿童版"
"1.2.4.8|CNNIC"
"210.2.4.8|CNNIC(备用)"
"101.101.101.101|TWNIC(台湾)"
"101.102.103.104|TWNIC(台湾)"
"8.8.8.8|谷歌(默认DoH支持)"
"8.8.4.4|谷歌"
"1.1.1.1|Cloudflare(默认DoH支持)"
"1.0.0.1|Cloudflare"
"9.9.9.9|Quad9(主用,过滤恶意域名,默认DoH支持)"
"149.112.112.112|Quad9(备用)"
"9.9.9.10|Quad9(无过滤版)"
"1.1.1.2|Cloudflare 安全版(拦截恶意网站)"
"1.0.0.2|Cloudflare 安全版(备用)"
"1.1.1.3|Cloudflare 家庭版(拦截恶意网站+成人内容)"
"1.0.0.3|Cloudflare 家庭版(备用)"
"80.80.80.80|Freenom World DNS"
"80.80.81.81|Freenom World DNS(备用)"
"123.123.123.123|中国联通DNS"
"123.123.123.124|中国联通DNS(备用)"
)
# 备选列表
BACKUP_LIST=(
"114.114.115.119|114dns拦截恶意网站"
"114.114.115.110|114dns拦截恶意网站儿童版"
"208.67.222.222|openDNS"
"208.67.220.220|openDNS"
"208.67.222.220|openDNS"
"208.67.220.222|openDNS"
"208.67.222.123|openDNS(可过滤恶意网站)"
"112.124.47.27|oneDNS拦截恶意网站"
"123.125.81.6|DNS派"
"211.99.143.33|歌华有线"
"58.30.131.33|歌华有线"
"123.125.81.6|DNS 派(联通)"
"168.95.1.1|中华电信(台湾)"
"168.95.192.1|中华电信(台湾)"
"101.226.4.6|DNS 派(电信及移动、铁通)"
"202.96.199.133|北京网通"
"114.215.126.16|oneDNS拦截恶意网站"
"101.226.4.6|DNS派"
"114.215.126.16|oneDNS拦截恶意网站"
"101.226.4.6|DNS派"
"101.226.4.6|360"
"64.6.64.6|Verisign 公共DNS"
"8.26.56.26|Comodo 安全DNS"
"8.20.247.20|Comodo 安全DNS(备用)"
"94.140.14.14|AdGuard DNS(默认,过滤广告/跟踪器)"
"94.140.15.15|AdGuard DNS(备用)"
"94.140.14.15|AdGuard DNS(无过滤版)"
"185.228.168.168|CleanBrowsing(家庭过滤)"
"185.228.169.168|CleanBrowsing(家庭过滤,备用)"
"185.228.168.10|CleanBrowsing(成人内容过滤)"
"185.228.169.10|CleanBrowsing(成人内容过滤,备用)"
"185.228.168.9|CleanBrowsing(安全版,仅恶意网站)"
"185.228.169.9|CleanBrowsing(安全版,备用)"
"221.130.33.52|北京移动"
"221.130.33.60|北京移动"
)
# ==============================================
# 全局变量用于 test_dns 返回结果
RESULT_IP=""
RESULT_DESC=""
RESULT_RATE=""
# 函数:测试单个 DNS
test_dns() {
local ip="$1"
local desc="$2"
local output success_count stats_line numbers min avg max
printf "Testing %s (%s)... " "$ip" "$desc"
# 强制使用英文环境,避免中文输出干扰
LC_ALL=C
# 执行 ping(不带超时参数,使用系统默认)
output=$(LC_ALL=C ping -c "$PING_COUNT" "$ip" 2>&1)
# 检查是否有 reply 行:匹配 "from <IP>"(更可靠)
success_count=$(echo "$output" | grep -c "from $ip")
if [ "$success_count" -eq 0 ]; then
echo "failed"
RESULT_IP="$ip"
RESULT_DESC="$desc"
RESULT_RATE="失败"
return
fi
# 提取统计行(兼容 macOS 和 Linux)
if [[ "$OSTYPE" == "darwin"* ]]; then
stats_line=$(echo "$output" | grep "round-trip" | head -n1)
else
stats_line=$(echo "$output" | grep -E "(min/avg/max|rtt)" | head -n1)
fi
if [ -n "$stats_line" ]; then
# 提取 "数字/数字/数字" 模式(忽略 stddev 等)
numbers=$(echo "$stats_line" | grep -o '[0-9.]\+/[0-9.]\+/[0-9.]\+' | head -n1)
if [ -n "$numbers" ]; then
IFS='/' read -r min avg max <<< "$numbers"
if [ "$success_count" -lt "$PING_COUNT" ]; then
echo "partial ($success_count/$PING_COUNT)"
RESULT_IP="$ip"
RESULT_DESC="$desc"
RESULT_RATE="部分失败 (成功 $success_count/$PING_COUNT) min/avg/max = $min/$avg/$max ms"
else
echo "ok"
RESULT_IP="$ip"
RESULT_DESC="$desc"
RESULT_RATE="min/avg/max = $min/$avg/$max ms"
fi
return
fi
fi
# 无法解析延迟
if [ "$success_count" -lt "$PING_COUNT" ]; then
echo "partial (no stats)"
RESULT_IP="$ip"
RESULT_DESC="$desc"
RESULT_RATE="部分失败 (成功 $success_count/$PING_COUNT)"
else
echo "ok (no stats)"
RESULT_IP="$ip"
RESULT_DESC="$desc"
RESULT_RATE="成功但无法解析延迟"
fi
}
# 函数:运行一个列表的测试,结果存入 RESULTS_OUT
run_test_list() {
local list_name="$1"
shift
local entries=("$@")
local total=${#entries[@]}
local i=0
echo "开始测试 $list_name 列表(共 $total 个 DNS)..."
RESULTS_OUT=()
for entry in "${entries[@]}"; do
((i++))
IFS='|' read -r ip desc <<< "$entry"
test_dns "$ip" "$desc"
RESULTS_OUT+=("$RESULT_IP|$RESULT_DESC|$RESULT_RATE")
done
echo " $list_name 测试完成。"
echo ""
}
# 函数:格式化结果数组为 Markdown 表格
format_markdown_table_from_array() {
local -a data=("$@")
local -a success=() partial=() fail=()
local line ip desc rate avg_val
for line in "${data[@]}"; do
IFS='|' read -r ip desc rate <<< "$line"
if [[ "$rate" =~ ^min/avg/max\ =\ ([0-9.]+)/([0-9.]+)/([0-9.]+)\ ms$ ]]; then
avg_val="${BASH_REMATCH[2]}"
# 确保 avg_val 是有效数字
if [[ "$avg_val" =~ ^[0-9]*\.?[0-9]+$ ]]; then
success+=("$avg_val|$ip|$desc|$rate")
else
fail+=("$line")
fi
elif [[ "$rate" == *"部分失败"* ]]; then
partial+=("$line")
else
fail+=("$line")
fi
done
# 成功项:按 avg 数值升序排序(使用 -g 支持浮点)
if [ ${#success[@]} -gt 0 ]; then
{
printf "%s\n" "${success[@]}"
} | sort -g -t'|' | while IFS='|' read -r _ ip desc rate; do
printf "| %s | %s | %s |\n" "$ip" "$desc" "$rate"
done
fi
# 部分失败
for line in "${partial[@]}"; do
IFS='|' read -r ip desc rate <<< "$line"
printf "| %s | %s | %s |\n" "$ip" "$desc" "$rate"
done
# 失败或无法解析
for line in "${fail[@]}"; do
IFS='|' read -r ip desc rate <<< "$line"
printf "| %s | %s | %s |\n" "$ip" "$desc" "$rate"
done
}
# ==================== 主程序 ====================
echo "📡 DNS 延迟评测脚本 (ping 次数: $PING_COUNT)"
echo ""
# 测试主推
run_test_list "主推" "${MAIN_LIST[@]}"
main_results=("${RESULTS_OUT[@]}")
# 测试备选
run_test_list "备选" "${BACKUP_LIST[@]}"
backup_results=("${RESULTS_OUT[@]}")
# 统一输出最终 Markdown 结果
{
echo "### 速度评测结果:主推"
echo "| IP | 说明 | ping速率 |"
echo "| -- | -- | -- |"
format_markdown_table_from_array "${main_results[@]}"
echo ""
echo "### 速度评测结果:备选"
echo "| IP | 说明 | ping速率 |"
echo "| -- | -- | -- |"
format_markdown_table_from_array "${backup_results[@]}"
}
注:上述脚本内容保存为 dns_ping_test.sh 并赋予执行权限:chmod +x dns_ping_test.sh,然后执行:./dns_ping_test.sh或./dns_ping_test.sh 5 # Ping 5 次即可获得结果。
速度评测结果:主推
| IP | 说明 | ping速率 |
|---|---|---|
| 180.76.76.76 | 百度 | min/avg/max = 6.551/7.815/9.590 ms |
| 223.6.6.6 | 阿里 | min/avg/max = 8.662/9.870/12.768 ms |
| 180.184.1.1 | 字节(火山引擎) | min/avg/max = 9.026/10.227/16.200 ms |
| 119.29.29.29 | 腾讯 | min/avg/max = 10.273/10.898/12.657 ms |
| 180.184.2.2 | 字节(火山引擎) | min/avg/max = 9.620/10.974/14.569 ms |
| 114.114.114.110 | 114dns拦截恶意网站儿童版 | min/avg/max = 23.350/24.545/30.587 ms |
| 114.114.115.115 | 114dns | min/avg/max = 23.717/25.204/27.661 ms |
| 210.2.4.8 | CNNIC(备用) | min/avg/max = 27.722/28.445/30.810 ms |
| 114.114.114.119 | 114dns拦截恶意网站 | min/avg/max = 26.536/28.588/34.444 ms |
| 1.2.4.8 | CNNIC | min/avg/max = 28.236/29.329/33.547 ms |
| 8.8.8.8 | 谷歌(默认DoH支持) | min/avg/max = 41.642/42.565/44.482 ms |
| 8.8.4.4 | 谷歌 | min/avg/max = 49.648/49.999/50.821 ms |
| 149.112.112.112 | Quad9(备用) | min/avg/max = 120.825/121.628/125.175 ms |
| 9.9.9.10 | Quad9(无过滤版) | min/avg/max = 124.659/125.200/125.996 ms |
| 1.0.0.3 | Cloudflare 家庭版(备用) | min/avg/max = 190.743/191.014/191.514 ms |
| 1.0.0.1 | Cloudflare | min/avg/max = 196.754/197.723/200.241 ms |
| 1.0.0.2 | Cloudflare 安全版(备用) | min/avg/max = 197.578/198.005/199.700 ms |
| 80.80.81.81 | Freenom World DNS(备用) | min/avg/max = 331.147/351.735/371.075 ms |
| 101.102.103.104 | TWNIC(台湾) | min/avg/max = 373.895/379.729/400.727 ms |
| 119.28.28.28 | 腾讯 | 部分失败 (成功 9/10) min/avg/max = 8.480/9.019/10.370 ms |
| 101.101.101.101 | TWNIC(台湾) | 部分失败 (成功 9/10) min/avg/max = 377.651/380.122/383.029 ms |
| 9.9.9.9 | Quad9(主用,过滤恶意域名,默认DoH支持) | 部分失败 (成功 9/10) min/avg/max = 122.216/122.676/124.868 ms |
| 123.123.123.123 | 中国联通DNS | 部分失败 (成功 7/10) min/avg/max = 16.759/18.538/20.103 ms |
| 123.123.123.124 | 中国联通DNS(备用) | 部分失败 (成功 7/10) min/avg/max = 15.169/18.149/19.628 ms |
| 223.5.5.5 | 阿里 | 失败 |
| 114.114.114.114 | 114dns | 失败 |
| 1.1.1.1 | Cloudflare(默认DoH支持) | 失败 |
| 1.1.1.2 | Cloudflare 安全版(拦截恶意网站) | 失败 |
| 1.1.1.3 | Cloudflare 家庭版(拦截恶意网站+成人内容) | 失败 |
| 80.80.80.80 | Freenom World DNS | 失败 |
速度评测结果:备选
| IP | 说明 | ping速率 |
|---|---|---|
| 114.215.126.16 | oneDNS拦截恶意网站 | min/avg/max = 15.598/16.547/18.761 ms |
| 114.215.126.16 | oneDNS拦截恶意网站 | min/avg/max = 15.766/16.552/19.801 ms |
| 114.114.115.119 | 114dns拦截恶意网站 | min/avg/max = 26.990/28.141/31.681 ms |
| 101.226.4.6 | DNS派 | min/avg/max = 31.105/33.922/45.259 ms |
| 101.226.4.6 | DNS派 | min/avg/max = 31.437/35.002/52.391 ms |
| 101.226.4.6 | 360 | min/avg/max = 30.951/36.212/58.821 ms |
| 208.67.220.222 | openDNS | min/avg/max = 48.106/48.659/49.619 ms |
| 208.67.222.222 | openDNS | min/avg/max = 48.604/49.200/49.824 ms |
| 208.67.222.220 | openDNS | min/avg/max = 48.438/49.741/52.698 ms |
| 208.67.220.220 | openDNS | min/avg/max = 48.710/50.123/53.437 ms |
| 208.67.222.123 | openDNS(可过滤恶意网站) | min/avg/max = 48.872/50.329/56.211 ms |
| 168.95.192.1 | 中华电信(台湾) | min/avg/max = 67.916/68.610/69.195 ms |
| 168.95.1.1 | 中华电信(台湾) | min/avg/max = 68.050/68.882/70.308 ms |
| 185.228.169.10 | CleanBrowsing(成人内容过滤,备用) | min/avg/max = 170.665/171.966/175.522 ms |
| 185.228.169.9 | CleanBrowsing(安全版,备用) | min/avg/max = 172.201/172.674/173.317 ms |
| 185.228.169.168 | CleanBrowsing(家庭过滤,备用) | min/avg/max = 173.186/174.482/178.211 ms |
| 64.6.64.6 | Verisign 公共DNS | min/avg/max = 187.435/188.499/190.853 ms |
| 94.140.14.15 | AdGuard DNS(无过滤版) | min/avg/max = 194.455/195.330/197.884 ms |
| 94.140.14.14 | AdGuard DNS(默认,过滤广告/跟踪器) | min/avg/max = 198.455/198.992/199.812 ms |
| 94.140.15.15 | AdGuard DNS(备用) | min/avg/max = 200.380/201.645/206.085 ms |
| 123.125.81.6 | DNS派 | 部分失败 (成功 6/10) min/avg/max = 15.966/18.359/20.686 ms |
| 123.125.81.6 | DNS 派(联通) | 部分失败 (成功 9/10) min/avg/max = 17.432/19.837/25.384 ms |
| 101.226.4.6 | DNS 派(电信及移动、铁通) | 部分失败 (成功 9/10) min/avg/max = 31.536/34.066/39.634 ms |
| 202.96.199.133 | 北京网通 | 部分失败 (成功 9/10) min/avg/max = 65.419/68.244/73.742 ms |
| 8.26.56.26 | Comodo 安全DNS | 部分失败 (成功 7/10) min/avg/max = 263.441/263.934/264.830 ms |
| 8.20.247.20 | Comodo 安全DNS(备用) | 部分失败 (成功 7/10) min/avg/max = 262.524/264.520/269.162 ms |
| 185.228.168.168 | CleanBrowsing(家庭过滤) | 部分失败 (成功 6/10) min/avg/max = 262.540/263.746/266.468 ms |
| 185.228.168.10 | CleanBrowsing(成人内容过滤) | 部分失败 (成功 9/10) min/avg/max = 261.621/263.221/264.850 ms |
| 185.228.168.9 | CleanBrowsing(安全版,仅恶意网站) | 部分失败 (成功 7/10) min/avg/max = 261.147/262.175/263.368 ms |
| 114.114.115.110 | 114dns拦截恶意网站儿童版 | 失败 |
| 112.124.47.27 | oneDNS拦截恶意网站 | 失败 |
| 211.99.143.33 | 歌华有线 | 失败 |
| 58.30.131.33 | 歌华有线 | 失败 |
附录
旧文数据链接
https://blog.csdn.net/zhiyuan411/article/details/77998278
OpenNic
OpenNic是一个社区化的非营利组织,主张DNS中立、免费服务、用户决议、自由开放、保护隐私、拒绝劫持。访问官网,会自动向你推荐最适合你所在区域的DNS。OpenNIC DNS 官网:http://www.opennicproject.org/。

DoH(DNS over HTTPS)
DNS over HTTPS(DoH)是一种通过HTTPS协议加密DNS查询的技术,旨在防止DNS数据被中间人窃听或篡改,提升网络隐私和安全性。
核心功能:
- 加密通信:将DNS查询封装在HTTPS请求中,确保数据在传输过程中不可见。
- 隐私保护:避免ISP或网络运营商通过DNS记录追踪用户行为。
- 抗劫持:防止恶意DNS服务器返回虚假IP地址,降低钓鱼攻击风险。
如何配置:
- 多数系统不支持直接在DNS设置中填入DoH的HTTPS地址,无法直接兼容替换原DNS的IP地址设置。
- Windows 11及以上:支持预定义DoH服务器(如Cloudflare、Google)直接填IP,可在设置中切换“优选”或“仅加密”模式。
- Windows 10:无原生DoH支持,无法直接填入地址生效,需依赖第三方工具。
- Linux:无法直接填入DoH地址,需通过
doh-client等工具建立本地代理后指向代理IP。 - macOS:系统DNS设置仅接受IP,需通过
.mobileconfig配置文件或代理工具实现DoH,无法直接填地址。 - Android 13及以上:仅允许直接填入预定义服务器(如Google、Cloudflare)的域名,非列表服务器需通过应用中转。
- iOS:系统级不支持直接配置DoH地址,需安装第三方应用或配置文件实现。
- 优选DoH模式:通过启用该配置开关来优先使用DoH加密解析,失败时降级为普通DNS。
- 仅DoH:通过启用该配置开关来强制使用DoH,解析失败则无法访问网络。
国内常见DoH支持:
- 阿里 DNS:https://dns.alidns.com/dns-query (速度参考:42.269/42.933/44.237 ms)
- 腾讯 DNS:https://doh.pub/dns-query (速度参考:40.467/41.721/42.676 ms)
- DNS派:https://doh.360.cn/dns-query (速度参考:44.551/45.967/46.562 ms)