{"repo":"zfl9/chinadns-ng","free":true,"listed":false,"github":"https://github.com/zfl9/chinadns-ng","clone":"git clone https://github.com/zfl9/chinadns-ng.git","description":"chinadns 重构增强版，支持域名分流、ipset/nftset、UDP/TCP/DoT","language":"Zig","stars":1373,"topics":["chinadns","chinadns-ng","ipset","netlink","ss-tproxy","dns","gfwlist","dnsmasq","nftables","dot"],"license":"AGPL-3.0","category":"networking-infra","readme_excerpt":"简介 ChinaDNS 的个人重构版本，功能简述： - 基于 epoll、netlink(ipset/nftset) 实现，性能更强。 - 完整支持 IPv4 和 IPv6 协议，兼容 EDNS 请求和响应。 - 手动指定国内 DNS 和可信 DNS，而非自动识别，更加可控。 - 修复原版对保留地址的处理问题，去除过时特性，只留核心功能。 - 修复原版对可信 DNS 先于国内 DNS 返回而导致判断失效的问题。 - 支持 chnlist/gfwlist 域名列表，并深度优化了性能以及内存占用。 - 支持纯域名分流：要么走china上游，要么走trust上游，不进行IP测试。 - 可动态收集域名的解析结果IP至 ipset/nftset ，辅助各种代理/分流场景。 - 支持 nftables set ，并针对 IP add 操作进行了性能优化，避免操作延迟。 - 更加细致的 no-ipv6(AAAA) 控制，可根据域名类型，IP测试结果进行过滤。 - DNS 缓存、stale 缓存模式、缓存预刷新、缓存忽略名单（不缓存的域名）。 - 支持 tag:none 域名的判定结果缓存，避免重复请求和判定，减少DNS泄露。 - 除默认的 china、trust 组外，还有 6 个自定义组（上游DNS、ipset/nftset）。 --- 对于常规的使用模式，大致原理和流程可总结为： - 两组DNS上游：china组(大陆DNS)、trust组(国外DNS)。 - 两个域名列表：chnlist.txt(大陆域名)、gfwlist.txt(受污染域名)。 - chnlist.txt域名(tag:chn域名)，转发给china组，保证大陆域名不会被解析到国外，对大陆域名cdn友好。 - gfwlist.txt域名(tag:gfw域名)，转发给trust组，trust需返回未受污染的结果，比如走代理，具体方式不限。 - 其他域名(tag:none域名)，同时转发给china组和trust组，如果china组解析结果(A/AAAA)是大陆ip，则采纳china组，否则采纳trust组。是否为大陆ip的核心依据，就是测试ip是否在 ipset-name4/6 指定的地址集合中。 - 若启用了tag:none域名的判决缓存，则同一域名的后续请求只会转发给特定的上游组（china组或trust组，具体取决于之前的ip测试结果），建议启用此功能，避免重复请求、判定，减少DNS泄露。 - 如果使用纯域名分流模式，则不存在tag:none域名，因此要么走china组，要么走trust组，可避免dns泄露问题。 - 若启用 --add-tagchn-ip ，则tag:chn域名的解析结果IP会被动态添加到指定的ipset/nftset，配合chnroute透明代理分流时，可用于实现大陆域名必走直连，使dns分流与ip分流一致；类似 dnsmasq 的 ipset/nftset 功能。 - 若启用 --add-taggfw-ip ，则tag:gfw域名的解析结果IP会被动态添加到指定的ipset/nftset，可用来实现gfwlist透明代理分流；也可配合chnroute透明代理分流，用来收集黑名单域名的IP，用于iptables/nftables操作，比如确保黑名单域名必走代理，即使某些黑名单域名的IP是大陆IP。 chinadns-ng 根据域名 tag 来执行不同逻辑，包括 ipset/nftset 的逻辑（test、add），见 原理。 编译 请前往 releases 页面下","default_branch":null,"files":null,"tree":[],"storefront":"/r/zfl9","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/zfl9/chinadns-ng/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}