评测环境说明

速度评测结果为2025.12在移动宽带的环境下,使用下面的脚本通过Ping命令多次测试得到的速率参考,强烈建议在自己的环境中重新运行以下脚本获取适合自己的DNS速率排名。

相关服务:台湾站群服务器租用

使用Ping测试方式原因说明:

  1. 已排除非速度维度干扰:已通过DNS提供商筛选,提前规避了服务稳定性、解析准确性等非速度类问题,测试可完全聚焦于“速度”这一单一核心指标,无需借助dig等兼具功能验证的工具。
  2. 精准匹配核心耗时来源:DNS整体速度差异的核心是网络链路往返延迟,而非服务商已保障的微秒级解析处理耗时,ping可直接测得链路延迟,能真实反映DNS的核心速度表现。
  3. 测试基准统一无变量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.110114dns拦截恶意网站儿童版min/avg/max = 23.350/24.545/30.587 ms
114.114.115.115114dnsmin/avg/max = 23.717/25.204/27.661 ms
210.2.4.8CNNIC(备用)min/avg/max = 27.722/28.445/30.810 ms
114.114.114.119114dns拦截恶意网站min/avg/max = 26.536/28.588/34.444 ms
1.2.4.8CNNICmin/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.112Quad9(备用)min/avg/max = 120.825/121.628/125.175 ms
9.9.9.10Quad9(无过滤版)min/avg/max = 124.659/125.200/125.996 ms
1.0.0.3Cloudflare 家庭版(备用)min/avg/max = 190.743/191.014/191.514 ms
1.0.0.1Cloudflaremin/avg/max = 196.754/197.723/200.241 ms
1.0.0.2Cloudflare 安全版(备用)min/avg/max = 197.578/198.005/199.700 ms
80.80.81.81Freenom World DNS(备用)min/avg/max = 331.147/351.735/371.075 ms
101.102.103.104TWNIC(台湾)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.101TWNIC(台湾)部分失败 (成功 9/10) min/avg/max = 377.651/380.122/383.029 ms
9.9.9.9Quad9(主用,过滤恶意域名,默认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.114114dns失败
1.1.1.1Cloudflare(默认DoH支持)失败
1.1.1.2Cloudflare 安全版(拦截恶意网站)失败
1.1.1.3Cloudflare 家庭版(拦截恶意网站+成人内容)失败
80.80.80.80Freenom World DNS失败

速度评测结果:备选

IP说明ping速率
114.215.126.16oneDNS拦截恶意网站min/avg/max = 15.598/16.547/18.761 ms
114.215.126.16oneDNS拦截恶意网站min/avg/max = 15.766/16.552/19.801 ms
114.114.115.119114dns拦截恶意网站min/avg/max = 26.990/28.141/31.681 ms
101.226.4.6DNS派min/avg/max = 31.105/33.922/45.259 ms
101.226.4.6DNS派min/avg/max = 31.437/35.002/52.391 ms
101.226.4.6360min/avg/max = 30.951/36.212/58.821 ms
208.67.220.222openDNSmin/avg/max = 48.106/48.659/49.619 ms
208.67.222.222openDNSmin/avg/max = 48.604/49.200/49.824 ms
208.67.222.220openDNSmin/avg/max = 48.438/49.741/52.698 ms
208.67.220.220openDNSmin/avg/max = 48.710/50.123/53.437 ms
208.67.222.123openDNS(可过滤恶意网站)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.10CleanBrowsing(成人内容过滤,备用)min/avg/max = 170.665/171.966/175.522 ms
185.228.169.9CleanBrowsing(安全版,备用)min/avg/max = 172.201/172.674/173.317 ms
185.228.169.168CleanBrowsing(家庭过滤,备用)min/avg/max = 173.186/174.482/178.211 ms
64.6.64.6Verisign 公共DNSmin/avg/max = 187.435/188.499/190.853 ms
94.140.14.15AdGuard DNS(无过滤版)min/avg/max = 194.455/195.330/197.884 ms
94.140.14.14AdGuard DNS(默认,过滤广告/跟踪器)min/avg/max = 198.455/198.992/199.812 ms
94.140.15.15AdGuard DNS(备用)min/avg/max = 200.380/201.645/206.085 ms
123.125.81.6DNS派部分失败 (成功 6/10) min/avg/max = 15.966/18.359/20.686 ms
123.125.81.6DNS 派(联通)部分失败 (成功 9/10) min/avg/max = 17.432/19.837/25.384 ms
101.226.4.6DNS 派(电信及移动、铁通)部分失败 (成功 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.26Comodo 安全DNS部分失败 (成功 7/10) min/avg/max = 263.441/263.934/264.830 ms
8.20.247.20Comodo 安全DNS(备用)部分失败 (成功 7/10) min/avg/max = 262.524/264.520/269.162 ms
185.228.168.168CleanBrowsing(家庭过滤)部分失败 (成功 6/10) min/avg/max = 262.540/263.746/266.468 ms
185.228.168.10CleanBrowsing(成人内容过滤)部分失败 (成功 9/10) min/avg/max = 261.621/263.221/264.850 ms
185.228.168.9CleanBrowsing(安全版,仅恶意网站)部分失败 (成功 7/10) min/avg/max = 261.147/262.175/263.368 ms
114.114.115.110114dns拦截恶意网站儿童版失败
112.124.47.27oneDNS拦截恶意网站失败
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/

家庭宽带可用DNS收集整理和速度评测:2025版

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支持