Releases: zfl9/chinadns-ng
Releases · zfl9/chinadns-ng
2024.05.12
- DoT 上游地址,允许省略域名信息,也即
tls://IP
,如tls://223.5.5.5
。 - 优化 wolfssl 构建参数,改用 wolfssl native API,减少内存占用和二进制大小。
chinadns-ng+wolfssl
开头的版本支持 DoT 上游。- x86_64 (v3/v4)、aarch64 的 wolfssl 已启用硬件加速指令。
- wolfssl_noasm 是没有硬件加速指令的版本,因为某些硬件(如树莓派)阉割了相关指令。
- x86_64 后面的 v2/v3/v4 是指微架构级别,见 https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
2024.04.30
- 新构建选项
-Dwolfssl-noasm
,用于关闭 x86_64、aarch64 下的硬件加速指令,防止 SIGILL。 - 默认关闭 DoT 上游的 SSL 证书验证,因为某些平台下(arm32、mips)存在问题,见 #169 。
chinadns-ng+wolfssl
开头的版本支持 DoT 上游。- x86_64 (v3/v4)、aarch64 的 wolfssl 已启用硬件加速指令。
- wolfssl_noasm 是没有硬件加速指令的版本,因为某些硬件(如树莓派)阉割了相关指令。
- x86_64 后面的 v2/v3/v4 是指微架构级别,见 https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
2024.04.27
2024.04.13
- 支持自定义组(配置不同的上游、ipset/nftset),在原有数据结构上扩展实现 #157。
--no-ipv6
规则修改(与旧版规则不兼容),新规则分为两大类:tag:*
、ip:*
。- 新增选项
--filter-qtype
,用于过滤给定 qtype 的查询,如 qype=64/65,见 #82 。 --cache-stale
选项允许设置更大的参数值,之前只允许最大值 65535(单位秒)。--cache-refresh
选项的单位更改,之前单位是秒,现在改为了百分比(0~100)。- 新增选项
--cache-nodata-ttl
,用于缓存 NODATA 响应(如 no-AAAA 过滤结果)。 - 支持
udp://
上游,当查询方使用 TCP 时,自动丢弃此类上游的 TC 响应 #153 #160 。
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
;旧格式仍然可用。