🛡️ DoH Proxy Pro

🚀 DoH Proxy Pro

个人 DNS over HTTPS 服务,具备并行路由、断路器和地理服务器选择功能 — 用于绕过 DNS 层面的过滤。

runtimeCloudflare Workers protocolDNS-over-HTTPS providers190+ licenseMIT
运行中且就绪 — 并行竞速、断路器、地理选择和自适应学习正在运行
这是一个具备反审查能力的高级 DNS over HTTPS (DoH) 服务。
Pro 版本包括:并行 DNS 竞速、断路器模式、基于地理位置的选择、DNS 填充、ECS 剥离、负缓存、自适应超时、增强的头部随机化等功能。
📊 查看服务器实时统计

📍 您的服务地址

https://popopo-dmgk.pages.dev/dns-query

✨ 高级功能

并行 DNS 竞速 — 同时尝试 10 个顶级服务器,接受第一个有效响应
🛡️
断路器模式 — 自动管理不健康的服务器并临时断开
🌍
基于地理位置的选择 — 根据用户地理位置选择最佳服务器
🧠
自适应学习,用于评分和随时间智能选择服务器
🔄
基于每个服务器的响应速度和可靠性的智能负载均衡
🔒
符合 RFC 8467 的 DNS 填充 — 防止数据包大小分析
🚫
ECS 剥离 — 从 OPT 记录中真正删除 EDNS Client Subnet
💾
智能缓存,自动管理缓存大小和过期
⏱️
自适应超时 — 根据每个服务器的历史记录自动调整等待时间
🔁
负缓存 — 智能缓存 NXDOMAIN 响应
⚙️
使用超过 190 个全球权威 DNS 服务器
🎭
增强的头部随机化,防止服务商侧指纹识别
📊
动态评分:35% 健康度、30% 速度、20% 可靠性、15% 区域
🔗
请求合并 — 合并同一查询的并发请求以减少延迟
🌏
完全支持 CORS,适用于浏览器请求
📡
支持 JSON DoH API,格式为 application/dns-json

🌐 使用的 DNS 服务商

190+ 权威 DNS 服务器,全球覆盖,按区域选择
Cloudflare, Google, Quad9, OpenDNS
AdGuard, NextDNS, Mullvad
AhaDNS — 美国、荷兰、波兰、印度、新加坡、澳大利亚
BlahDNS — 芬兰、日本、德国、新加坡
Pi-DNS — 欧洲、美国
以及数十个其他全球覆盖的服务器...
✅ 此 DoH 代理的功能

完全加密 DNS 请求,通过 HTTPS
绕过 DNS 污染,防止 DNS 响应被篡改
解锁 DNS 层面被过滤的网站
提升隐私 — ISP 无法看到您查询了哪些域名
防止中间人攻击,在 DNS 层面
更高速度,通过竞速模式、断路器和智能缓存
💡 了解过滤类型

网络过滤通常在多个独立的层面进行;每个层面都有自己的解决方案:
过滤层面说明此 DoH 是否足够?
DNS Filtering 网站在 DNS 响应层面被封锁或伪造 ✓ 是
SNI Filtering 基于 TLS ClientHello 中的域名识别并封锁连接 ✗ 否 — 需要 ECH 或分片
IP Blocking 目标 IP 地址被直接封锁 ✗ 否 — 需要 VPN/代理
Deep Packet Inspection 检查数据包模式,不依赖 DNS 或 SNI ✗ 否 — 需要高级 VPN/代理

结论:如果目标网站仅通过 DNS 被过滤,此 DoH 就足够了。对于更高级的过滤(SNI/IP/DPI),请将此 DoH 与分片配置或 VPN 一起使用 — 它们在不同网络层面运作,是互补而非替代关系。

📱 使用方法

🌐 浏览器 (Firefox, Chrome, Edge, Brave)

前往浏览器设置 ← 隐私或安全部分 ← DNS over HTTPS ← 选择自定义提供商并输入上述地址。

在 Firefox 中启用 ECH:

1. 在地址栏输入:about:config
2. 搜索:network.dns.echconfig.enabled
3. 将值设置为 true

通过这些设置,许多 DNS 被过滤的网站将可以访问。

📱 Intra 应用 (Android)

1. 从 Google Play 安装 Intra 应用
2. 打开应用
3. 点击"Configure custom server URL"
4. 在 Custom DNS over HTTPS server URL 中输入以下地址:

https://popopo-dmgk.pages.dev/dns-query

5. 开启 ON 按钮

此设置将加密您的 DNS 并解锁仅通过 DNS 被过滤的网站。

🍎 iOS、iPadOS 和 macOS

要在 Apple 设备上使用,请下载并安装您的个人配置文件:

🍎 下载 iOS/macOS 配置文件

安装方法:

iOS/iPadOS: 用 Safari 下载文件 ← 设置 ← 通用 ← VPN、DNS 与设备管理 ← 已下载的配置文件 ← 安装
macOS: 下载文件 ← 系统设置 ← 隐私与安全性 ← 配置文件 ← 安装配置文件

安装后,您所有应用的 DNS 都将被加密。

💻 Windows 10/11

设置 ← 网络和 Internet ← 属性 ← DNS 服务器分配 ← 编辑 ← 首选 DNS 加密:仅加密 (DNS over HTTPS) 并输入上述地址。

🐧 Linux (systemd-resolved)

1. 编辑配置文件:

sudo nano /etc/systemd/resolved.conf

2. 添加以下行:

[Resolve]
DNS=https://popopo-dmgk.pages.dev/dns-query
DNSOverTLS=yes

3. 重启服务:

sudo systemctl restart systemd-resolved

🔧 路由器

根据路由器型号,可能支持 DoH。请查看路由器的 DNS 设置。在路由器上设置 DoH 后,所有连接到网络的设备都将使用加密的 DNS。

🔧 Xray 配置

简单配置 (v2rayNG 等)

要在基于 Xray 的客户端中使用,您可以使用以下配置:

doh-proxy-simple.json
{ "remarks": "🛡️ DoH Proxy Pro", "dns": { "servers": [ { "address": "https://popopo-dmgk.pages.dev/dns-query", "skipFallback": true } ], "queryStrategy": "UseIP" }, "inbounds": [ { "port": 10808, "listen": "127.0.0.1", "protocol": "socks", "settings": { "auth": "noauth", "udp": true }, "sniffing": { "enabled": true, "destOverride": ["http", "tls"] } } ], "outbounds": [ { "protocol": "freedom", "settings": { "domainStrategy": "UseIP" }, "tag": "direct" } ], "routing": { "domainStrategy": "AsIs", "rules": [ { "type": "field", "outboundTag": "direct", "network": "udp,tcp" } ] } }

注意:此配置将保护您的 DNS 并解锁 DNS 被过滤的网站。

带分片的高级配置 (推荐)

此配置除 DoH 外还具有分片功能,可在 TCP/TLS 层面帮助绕过基于 SNI 的过滤:

doh-proxy-fragment.json
{ "remarks": "🛡️ DoH Proxy Pro + Fragment", "log": { "access": "", "error": "", "loglevel": "warning", "dnsLog": false }, "dns": { "tag": "dns-in", "hosts": { "popopo-dmgk.pages.dev": [ "172.67.73.38", "104.19.155.92", "172.67.73.163", "104.18.155.42", "104.16.124.175", "104.16.248.249", "104.16.249.249", "104.26.13.8" ], "cloudflare-dns.com": [ "1.1.1.1", "1.0.0.1" ] }, "servers": [ "https://popopo-dmgk.pages.dev/dns-query", "1.1.1.1", "8.8.8.8" ], "queryStrategy": "UseIP" }, "inbounds": [ { "tag": "mixed-in", "port": 10808, "listen": "127.0.0.1", "protocol": "mixed", "sniffing": { "enabled": true, "destOverride": [ "http", "tls", "quic", "fakedns" ], "routeOnly": true }, "settings": { "auth": "noauth", "udp": true, "userLevel": 8 } } ], "outbounds": [ { "tag": "fragment-out", "protocol": "freedom", "settings": { "domainStrategy": "UseIP", "fragment": { "packets": "1-1", "length": "1", "interval": "13", "maxSplit": "163" } }, "streamSettings": { "sockopt": { "tcpNoDelay": true, "tcpKeepAliveIdle": 100, "mark": 255, "domainStrategy": "ForceIP", "happyEyeballs": { "tryDelayMs": 300, "prioritizeIPv6": true, "interleave": 2, "maxConcurrentTry": 20 } } } }, { "tag": "udp-noises-out", "protocol": "freedom", "settings": { "domainStrategy": "UseIP", "targetStrategy": "ForceIPv6v4", "noises": [ { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv4" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv4" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv4" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv4" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv4" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv4" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv6" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv6" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv6" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv6" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv6" }, { "type": "rand", "packet": "1200-1230", "delay": "10", "applyTo": "ipv6" } ] }, "streamSettings": { "sockopt": { "mark": 255, "domainStrategy": "UseIP" } } }, { "tag": "direct-out", "protocol": "freedom" }, { "tag": "dns-out", "protocol": "dns" }, { "tag": "block", "protocol": "blackhole" } ], "policy": { "levels": { "8": { "connIdle": 300, "downlinkOnly": 1, "handshake": 4, "uplinkOnly": 1 } }, "system": { "statsOutboundUplink": true, "statsOutboundDownlink": true } }, "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ { "type": "field", "outboundTag": "block", "ip": [ "geoip:private" ] }, { "type": "field", "outboundTag": "direct-out", "domain": [ "domain:ir", "geosite:category-ir" ] }, { "type": "field", "outboundTag": "direct-out", "ip": [ "geoip:ir" ] }, { "type": "field", "outboundTag": "dns-out", "port": "53", "network": "udp" }, { "type": "field", "outboundTag": "udp-noises-out", "port": "443", "network": "udp" }, { "type": "field", "outboundTag": "fragment-out", "port": "0-65535" } ] }, "stats": {} }

分片配置的优势:

• 将 TLS ClientHello 数据包分片以绕过 DPI
• DoH 的补充;在不同网络层面运作
• 增强绕过更高级过滤的能力

🛡️ 安全建议

为获得最大安全性和访问能力:

场景 1 — 仅 DNS 过滤:
✓ 使用此 DoH 代理
✓ 许多网站将可以访问

场景 2 — 更高级的过滤:
✓ 使用此 DoH 代理
✓ 在浏览器中启用 ECH
✓ 在 Xray 中使用分片配置
✓ 对其他层面使用 VPN

通用建议:
• 使用最新版本的浏览器
• 始终保持 HTTPS 启用
• 使用可靠的安全软件
• 使用强密码

❓ 常见问题

使用此 DoH 能否访问被过滤的网站?
可以,如果网站仅通过 DNS 被过滤。如果通过其他方式(IP 封锁、DPI、SNI)被过滤,则还需要分片或 VPN。
什么是分片,它有什么帮助?
分片是一种反过滤技术,在 TCP 层面将 TLS ClientHello 数据包拆分,使 DPI 无法在完整数据包中看到域名 (SNI)。此技术在到目标的连接本身上执行,而非在 DNS 上,因此是 DoH 的补充而非替代。
什么是 ECH,它如何提供帮助?
Encrypted Client Hello 在 TLS 握手过程中加密域名 (SNI),防止基于 SNI 的过滤。使用时需要浏览器/客户端和目标服务器都支持。
此 DoH 与 1.1.1.1 有什么区别?
这是您的个人 DoH 代理,运行在 Cloudflare Worker 上。它不依赖单一服务商,而是同时向 10 个顶级 DNS 服务器发送请求(并行竞速),使用断路器排除不健康的服务器,根据地理位置选择最佳服务器,并智能缓存结果。最终仍使用相同的权威服务商,但具有更高的可靠性和速度。
此服务是否免费?
是的,在 Cloudflare Workers 免费额度内(每天 100,000 次请求)完全免费。
使用此 DoH 会降低速度吗?
不会;通过智能缓存和竞速模式,通常能获得最快的响应。
简单配置和分片配置有什么区别?
简单配置仅启用 DoH,对于绕过 DNS 层面的过滤已经足够。分片配置除 DoH 外,还将 TLS ClientHello 数据包分片,有助于绕过更高级的过滤(SNI/DPI)。为获得最大访问能力,推荐使用分片配置。
别人能看到我在使用此服务吗?
您的 DNS 请求已加密,ISP 无法看到其内容;只能看到您连接到了一个 Cloudflare 服务器。
并行竞速如何工作?
此系统同时向 10 个顶级 DNS 服务器(根据区域、速度、健康度和可靠性评分)发送请求,并接受第一个有效响应。这减少了延迟并提高了可靠性。
什么是请求合并?
当多个用户或程序同时查询同一域名时,Worker 不会向上游服务商发送多个独立请求,而是只发送一个请求并将响应共享给所有人。这减少了服务器负载并降低了延迟。