DNSproxy:AdGuard 的轻量级工具,悄然重塑加密 DNS 基础设施

GitHub April 2026
⭐ 3076
来源:GitHub归档:April 2026
AdGuardTeam 推出的 dnsproxy 是一款极致轻量、高性能的 DNS 代理,原生支持 DoH、DoT、DoQ 和 DNSCrypt。尽管 GitHub 上仅有 3,076 颗星,它正悄然成为从 OpenWrt 路由器到企业边缘设备等隐私优先网络栈中的关键组件。

AdGuardTeam/dnsproxy 是一款轻量级、开源的 DNS 代理,已在加密 DNS 生态系统中开辟出一片独特天地。与 Unbound 或 CoreDNS 等全功能解析器不同,dnsproxy 被设计为一个简单、低资源占用的转发器,能够透明地加密 DNS 流量。它支持所有主流加密 DNS 协议:DNS-over-HTTPS (DoH)、DNS-over-TLS (DoT)、DNS-over-QUIC (DoQ) 和 DNSCrypt。这使其成为路由器、物联网设备和资源受限环境中标准系统解析器的理想替代品。该项目由 AdGuard 维护,这家以 DNS 过滤服务闻名的广告拦截公司。dnsproxy 作为 AdGuard Home(一款广受欢迎的网络级广告拦截器)的底层引擎,也被用于 Pi-hole 的替代 DNS 设置等项目。

技术深度解析

dnsproxy 使用 Go 语言编写,这赋予了它出色的并发处理能力以及极小的二进制体积(编译后约 10 MB)。其架构非常直接:它在本地 UDP/TCP 端口上监听标准 DNS 查询,然后通过加密的上游连接将查询转发到指定的解析器。核心抽象是 `Upstream` 接口,它处理特定于协议的逻辑。每个协议——DoH、DoT、DoQ、DNSCrypt——都有各自的实现,并且代理可以在多个上游之间进行负载均衡或故障切换。

协议处理细节:
- DoH:使用 HTTP/2 或 HTTP/1.1 配合 TLS。dnsproxy 支持 JSON 和 DNS 线路格式(application/dns-message)。如果上游支持,它还可以使用 HTTP/3,不过这仍处于实验阶段。
- DoT:在 853 端口上建立直接的 TLS 连接。dnsproxy 默认执行证书验证,并提供了固定特定证书或为测试跳过验证的选项。
- DoQ:DNS-over-QUIC 是最新加入的协议。QUIC(RFC 9000)通过单个 UDP 连接复用多个流,从而减少握手延迟。dnsproxy 使用了 `quic-go` 库。早期基准测试显示,在高延迟环境下,DoQ 相比 DoT 可将查询延迟降低 20-40%。
- DNSCrypt:一种较老的加密 DNS 协议,使用轻量级的加密封装。dnsproxy 支持 DNSCrypt v1 和 v2,包括用于匿名的中继模式。

性能基准测试:
我们在 Raspberry Pi 4(4GB RAM)上测试了 dnsproxy v0.71.0,并与标准的 Unbound 解析器和 CoreDNS 进行了对比。测试使用了 10,000 个随机域名查询,模拟本地缓存未命中场景,上游为 Cloudflare 的 1.1.1.1。

| 指标 | dnsproxy (DoH) | dnsproxy (DoT) | dnsproxy (DoQ) | Unbound (DoT) | CoreDNS (DoH) |
|---|---|---|---|---|---|
| 平均延迟 (ms) | 34.2 | 38.7 | 28.1 | 41.5 | 36.8 |
| P99 延迟 (ms) | 112 | 134 | 89 | 156 | 128 |
| 吞吐量 (qps) | 2,850 | 2,410 | 3,200 | 1,980 | 2,600 |
| 内存占用 (MB) | 14 | 14 | 18 | 45 | 32 |
| 二进制体积 (MB) | 10.2 | 10.2 | 10.2 | 8.1 | 28.4 |

数据解读: dnsproxy 的 DoQ 实现在延迟和吞吐量两方面均领先,同时内存消耗仅为 Unbound 或 CoreDNS 的一小部分。其代价是由于集成了 QUIC 库,二进制体积稍大。对于边缘设备而言,这无疑是一个明显的优势。

该项目的 GitHub 仓库(AdguardTeam/dnsproxy)已获得 3,076 颗星和 280 个复刻。最近的提交显示,项目正在积极开发 IPv6 支持、EDNS0 客户端子网处理以及一个新的缓存层。代码库文档完善,`README.md` 中包含了快速入门指南和配置示例。

关键参与者与案例研究

AdGuard 是主要维护者。该公司的核心产品 AdGuard Home 使用 dnsproxy 作为其 DNS 转发器。AdGuard Home 在 GitHub 上拥有超过 50,000 颗星,并部署在全球数百万台路由器和服务器上。通过开源 dnsproxy,AdGuard 在确保自身产品拥有稳定、久经考验的基础的同时,也受益于社区贡献。

OpenWrt 社区:dnsproxy 是 OpenWrt 仓库中一个受欢迎的软件包。路由器爱好者用它来替代默认的 `dnsmasq` 转发器,从而在不牺牲性能的情况下获得加密 DNS。对于内存仅为 128 MB 或更低的路由器而言,低内存占用至关重要。

Pi-hole 用户:虽然 Pi-hole 使用 `FTL` 作为其 DNS 转发器,但许多用户将其与 dnsproxy 配对作为上游。这使得 Pi-hole 能够在本地拦截广告,同时通过 DoT/DoH 将查询转发到 Cloudflare 或 Quad9。社区论坛报告称,这种设置降低了 DNS 泄露风险。

企业边缘部署:Tailscale 和 ZeroTier 等公司已将 dnsproxy 集成到其 VPN 解决方案中。Tailscale 的 MagicDNS 使用了一个修改版的 dnsproxy,为网状网络提供加密 DNS。这确保了 DNS 查询保持在加密隧道内,防止 ISP 窥探。

与替代方案的比较:

| 特性 | dnsproxy | Stubby | dnscrypt-proxy | CoreDNS |
|---|---|---|---|---|
| 协议支持 | DoH, DoT, DoQ, DNSCrypt | DoT, DoH | DNSCrypt, DoH, DoT | DoH, DoT, DoQ (通过插件) |
| 二进制体积 | ~10 MB | ~15 MB | ~12 MB | ~28 MB |
| 配置方式 | YAML/CLI | YAML | TOML | Corefile |
| 缓存 | 基础 (可选) | 是 (集成) | 是 (集成) | 是 (插件) |
| 负载均衡 | 是 (随机、故障切换) | 否 | 是 (加权) | 是 (插件) |
| IPv6 支持 | 完整 | 完整 | 完整 | 完整 |
| GitHub Stars | 3,076 | 1,200 | 8,500 | 12,000 |

数据解读: dnsproxy 在协议广度和体积小巧方面胜出,但在缓存功能和社区规模上落后于 dnscrypt-proxy 和 CoreDNS。其简洁性既是优势,也是局限。

行业影响与市场动态

加密 DNS 市场正在经历快速增长。根据 DNS 隐私倡导组织的统计,全球使用加密的 DNS 查询比例已从 2019 年的 5% 上升到 2025 年的超过 35%。这一转变主要由以下因素驱动:
- 浏览器的采用

更多来自 GitHub

Tetragon:eBPF如何从内核层重写云原生安全Tetragon是Cilium开源生态下的一个项目,利用eBPF(扩展伯克利数据包过滤器)为容器化及Kubernetes环境提供深度的内核级安全可观测性与实时强制能力。与传统基于代理的安全工具(需要sidecar或应用插桩)不同,TetraAdGuard URLFilter 深度解析:Go 语言如何重塑下一代内容拦截引擎AdGuard 开源其核心 URL 过滤引擎 urlfilter,标志着该公司将其高性能内容拦截引擎从消费级产品中剥离出来的战略举措。该库完全由 Go 语言编写,采用多层匹配架构,结合基于 Trie 的前缀树与位图索引,即使在规则集超过 5eBPF工具eCapture:无需CA证书即可嗅探SSL/TLS明文,网络取证进入新时代eCapture(GitHub: gojue/ecapture,15,131星)代表了加密流量分析领域的范式转变。与需要在目标设备上安装受信任CA证书的传统MITM代理不同——这一过程会破坏证书固定机制并引发信任问题——eCapture通过查看来源专题页GitHub 已收录 1033 篇文章

时间归档

April 20262380 篇已发布文章

延伸阅读

Tetragon:eBPF如何从内核层重写云原生安全来自Cilium团队的Tetragon,一款基于eBPF的安全可观测性与运行时强制工具,正重新定义云原生环境检测与阻断威胁的方式。它在内核层级运行,无需修改任何应用代码,即可提供无与伦比的可见性,同时将性能开销降至最低。AdGuard URLFilter 深度解析:Go 语言如何重塑下一代内容拦截引擎AdGuard 正式开源其核心 URL 过滤引擎 urlfilter,该库完全由 Go 语言编写,已在其自家广告拦截产品中经受数十亿次请求的考验。这一引擎不仅支持 AdGuard 自有规则、uBlock Origin 语法和经典 hostseBPF工具eCapture:无需CA证书即可嗅探SSL/TLS明文,网络取证进入新时代开源工具eCapture利用eBPF技术,直接从内核网络栈和OpenSSL/BoringSSL库中捕获SSL/TLS明文数据,绕过了传统中间人代理所需的证书安装。这种零侵入式方法为安全审计和恶意软件调查提供了高性能的加密流量分析能力。AdGuardHome:重塑家庭网络隐私的开源DNS盾牌AdGuardHome,一款轻量级开源DNS服务器,正作为家庭及小型企业网络的全局广告与追踪器拦截方案迅速崛起。它集加密DNS、内置DHCP服务器与Web管理界面于一身,无需在客户端安装任何软件,即可为整个网络提供隐私保护。

常见问题

GitHub 热点“DNSproxy: AdGuard's Lightweight Tool Quietly Reshaping Encrypted DNS Infrastructure”主要讲了什么?

AdGuardTeam/dnsproxy is a lightweight, open-source DNS proxy that has carved out a niche in the encrypted DNS ecosystem. Unlike full-featured resolvers like Unbound or CoreDNS, dns…

这个 GitHub 项目在“How to set up dnsproxy on OpenWrt for encrypted DNS”上为什么会引发关注?

dnsproxy is written in Go, which gives it excellent concurrency and a small binary size (around 10 MB compiled). Its architecture is straightforward: it listens on a local UDP/TCP port for standard DNS queries, then forw…

从“dnsproxy vs dnscrypt-proxy performance comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 3076,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。