zfl9/chinadns-ng logo

zfl9/chinadns-ng

Free

chinadns 重构增强版,支持黑白名单,ipset/nftset

FreeFree tier
Type
Open Source

About zfl9/chinadns-ng

ChinaDNS-ng is a high-performance, feature-rich DNS forwarder designed for users in China to bypass DNS pollution and optimize domain resolution. Built on epoll and netlink (ipset/nftset), it supports full IPv4/IPv6, manual assignment of China and trusted DNS upstreams, domain-based routing using chnlist and gfwlist, pure domain-based routing mode, dynamic IP collection to ipset/nftsets for transparent proxy, DNS caching with stale and pre-refresh modes, tag:none judgment caching, and six custom upstream groups. It is a personal rewrite of the original ChinaDNS, focusing on performance, reliability, and controllability.

Key Features

基于epoll和netlink(ipset/nftset)实现,性能更强
完整支持IPv4和IPv6协议,兼容EDNS
手动指定国内DNS和可信DNS,而非自动识别
支持chnlist/gfwlist域名列表,深度优化性能和内存占用
纯域名分流模式,不进行IP测试
动态收集域名解析结果IP至ipset/nftset,辅助透明代理分流
DNS缓存、stale缓存、预刷新、忽略名单
支持tag:none域名判定结果缓存,避免重复请求
6个自定义上游组(DNS、ipset/nftset)
支持DoT(通过wolfSSL)

Pros & Cons

Pros
  • 高性能:基于epoll和netlink,低内存占用
  • 灵活的域名分流策略,支持白名单和黑名单
  • 深度优化了大域名列表的性能
  • 支持DNS缓存和高级缓存功能
  • 支持自定義上游組,擴展性強
Cons
  • 主要針對Linux平台,其他系統支持有限
  • 配置文件需要手動維護chnlist和gfwlist文件
  • 依賴於ipset/nftset實現部分功能,增加了配置復雜度

Best For

在中國大陸繞過DNS污染并正確解析域名實現透明代理分流,將域名解析結果添加至ipset/nftset優化大陸CDN域名解析,確保解析到大陸IP配合GFWList實現代理分流,確保受污染域名走代理家庭或企業路由器上的智能DNS解析

FAQ

chinadns-ng 和原版 ChinaDNS 有什麼區別?
chinadns-ng 是個人重構版本,基於epoll/netlink實現,性能更強,支持IPv4/IPv6,手動指定上游DNS,新增域名列表分流、ipset/nftset動態收集、DNS緩存等特性,修復了原版的一些問題。
如何編譯生成可執行文件?
需要安裝 Zig 0.10.1 工具鏈,然後克隆倉庫並執行 `zig build`(可選 `-Dtarget` 指定目標架構)。如需DoT支持,添加 `-Dwolfssl` 參數。編譯後的可執行文件位於 `./zig-out/bin`。
是否支持DoT(DNS over TLS)?
支持,但在編譯時需要添加 `-Dwolfssl` 參數,依賴 wolfSSL 庫。
純域名分流模式如何工作?
啟用純域名分流模式後,所有域名根據chnlist/gfwlist分別轉發給china組或trust組,不進行IP測試,從而避免DNS泄露。