Releases: zfl9/chinadns-ng
Releases · zfl9/chinadns-ng
2024.03.27
- 支持读取 hosts 文件。
- 支持定义本地 A/AAAA 记录。
2024.03.25
- DNS 缓存、stale 缓存模式、缓存预刷新、缓存忽略名单(不缓存的域名)。
- 支持 tag:none 域名的判定结果缓存,避免重复请求和判定,减少DNS泄露。
- 允许指定监听的协议(TCP、UDP),如
--bind-port 65353@udp
仅监听 UDP。
2024.03.07
- 使用 Zig 重写了大部分代码,提高开发效率。
- 默认启用 TCP + UDP 监听、TCP + UDP 上游。
- 在上游地址前加上
tcp://
可强制使用 TCP 上游。 - 支持监听多个 IP 地址,方便 IPv4/IPv6 双栈用例。
- 每个上游组允许配置多个服务器(之前最多两个)。
- 引入配置文件支持,语法类似 dnsmasq,一行一个。
- 命令行参数解析重写,不再依赖 getopt* 相关 C 接口。
注意:此版本的构建方式有重大更改,不再使用 Makefile。
2023.10.28
- 给 TZ 环境变量设置默认值,避免在打印日志时的不必要系统调用开销,具体请参见 glibc 文档:TZ-Variable。
- 关闭 IPV6_V6ONLY sockopt,以便在监听
::
地址时,能够接收来自 IPv4 的 DNS 查询,而不必运行两个进程。
2023.06.01
- 上游套接字的超时时间(生存时长)从 30秒 改为 60秒;并做了一些优化,减少不必要的系统调用。
- 选项与可选参数之间允许带空格,如
-N
、-N gt
、--no-ipv6 gt
、-a list,list6
;旧格式仍然可用。
2023.05.08
2023.04.20
- 新增
-A/--add-taggfw-ip
选项,用于添加 tag:gfw 黑名单域名的 IP 至 ipset/nftset。 -a/--add-tagchn-ip
接收可选参数,用于指定其它集合,默认还是--ipset-name4/6
的那个集合。
目前,有3套 ipset/nftset,分别用于这3类域名:
- tag:none域名:使用
--ipset-name4/6
选项,用于测试china上游的结果是否为大陆IP。 - tag:chn域名:使用
--add-tagchn-ip
选项,用于添加白名单域名的IP,用于iptables/nft操作。 - tag:gfw域名:使用
--add-taggfw-ip
选项,用于添加黑名单域名的IP,用于iptables/nft操作。
2023.04.17
2023.04.11-2
- 修复可能存在的 nft-add bug(小概率)
2023.04.11
相关新功能、新特性见 2023.04.01 版本的发布说明。
- 优化域名列表的数据结构,进一步减少内存占用
- 优化 add-tagchn-ip,避免某些情况下的重复添加 #121
- 修复 2023.04.01 版本的相关 BUG,调整部分代码实现细节