Releases: pymumu/smartdns
Releases · pymumu/smartdns
Release 46
更新内容:
- audit日志增加输出group信息。
- 修正DOH GET方法查询错误问题。
- 修正bind选项crash问题。
- DNS64支持group组配置
- 修正上游查询重试的问题。
- 其他一些问题修正。
smartdns帮助文档:https://pymumu.github.io/smartdns/
非静态版本下载:https://github.com/PikuZheng/smartdns/releases/
注意:
- luci-compat版本后续不再演进,不再添加新功能,版本维护至2024年底,请及时升级至openwrt 2203之后的版本。
- 入门用户推荐优先使用luci-lite版本。
- 如果安装luci后界面无显示,请尝试清除浏览器缓存。
Release 45
🎉2024新春版,完善功能,提升性能、可靠性,推荐更新。
㊗️也祝福各位新春快乐。
更新内容:
- 增加luci-lite轻量版本,入门用户使用更容易。
- 增加
ip-alias
选项,支持CDN IP加速,具体参考:https://pymumu.github.io/smartdns/config/ip-alias/ - 增加
ip-rules
和ip-set
参数,支持批量设置IP规则:https://pymumu.github.io/smartdns/config/ip-set/ - 发布smartdns官方docker镜像:https://hub.docker.com/r/pymumu/smartdns
- 增加
bind-https
选项,支持DOH服务器。 - 新增
client-rules
选项,支持按客户端MAC地址,IP分组:https://pymumu.github.io/smartdns/config/client-rule/ - 新增
group-begin
,group-end
,group-match
配置组选项,支持虚拟DNS服务器能力:https://pymumu.github.io/smartdns/config/rule-group/ - 新增
acl-enable
参数,配合client-rules
选项控制客户端访问权限。 - 域名规则支持
-
,.
用于匹配主域名:https://pymumu.github.io/smartdns/config/ad-block/ - 优化缓存管理机制,减少内存占用和CPU占用。
/domain/
类域名规则,增加/./
根域名规则设置, 在不指定/domain/的情况下为全局规则,如: address #6, domain-rules /./ -[rules...]server
参数增加短配置选项,-g -> -group -e -> -exclude-default-group -p -> -proxy -k -> -no-check-certificate -b -> -bootstrap-dns
- luci界面周期下载支持配置小时和星期,by @zxlhhyccc
- smartdns命令行增加
-R
选项和restart-on-crash yes
参数,当进程崩溃时自动重启进程。 - conf-file支持通配符, conf-file *.conf
- 配置文件中的域名支持国际化,支持中文。
- 新增
srv-record
用于配置SRV记录,可用于vlmcsd - 新增
https-record
用于支持配置HTTPS记录,可支持ECH等安全特性。 - 支持proxy-dnssec。(关闭测速后启用)
- 增加
mdns-lookup
参数,用于通过mDNS查询本地主机名或IP地址反查等。 - 增加
log-syslog, audit-syslog
参数,支持配置smartdns输出日志到系统日志。 - 增加
max-query-limit
参数,配置最大并发请求数。 - 增加
cache-mem-size
参数,支持指定缓存占用的最大内存。
问题修正和优化:
- 解决debian系统中systemd启动依赖问题,by @brainos
- 修正optware下dnsmasq启动失败的问题。
- 对不支持的配置项输出日志,错误的配置,退出程序。
- 缓存PTR记录。
- 优化一些日志打印。
- 最快IP模式下,等待更多时间以获取最快IP。
- 当address指定IPv4的情况下,IPv6默认返回SOA。
- 其他若干问题修改。
smartdns帮助文档:https://pymumu.github.io/smartdns/
非静态版本下载:https://github.com/PikuZheng/smartdns/releases/
注意:
- luci-compat版本后续不再演进,不再添加新功能,版本维护至2024年底,请及时升级至openwrt 2203之后的版本。
- 入门用户推荐优先使用luci-lite版本。
- 如果安装luci后界面无显示,请尝试清除浏览器缓存。
Full Changelog: Release43...Release45
Release 43
更新内容:
force-qtype-SOA
支持范围的写法,如: force-qtype-SOA 1-23,48-64。address
参数支持多IP地址,支持最多8个IP地址,如:address /a.com/1.2.3.4,5.6.7.8- 域名规则支持前缀通配。(
*
,-
仅支持在域名开头)// 前缀通配 *-a.example.com // 仅匹配子域名 *.example.com // 仅匹配主域名 -.example.com
- server/server-tcp/server-tls/server-https支持
-host-ip
指定IP地址。 - 增加
ddns-domain
选项,用于将DDNS域名解析为本机IP地址,避免上游查询。 - 配置文件配置项支持
\
换行。 - 支持后台运行时输出日志到终端,
log-console yes
。
问题修正:
- 修正max TTL问题
- 优化systemd服务启动时的错误情况。
- 代码结构优化和优化log打印。
- 修正openwrt系统下广告屏蔽失效的问题。
- 修正subnet不工作的问题。
- 修正bootstrap DNS重试失败的问题。
- 修正bugos-nxdomain问题。
smartdns帮助文档:https://pymumu.github.io/smartdns/
非静态版本下载:https://github.com/PikuZheng/smartdns/releases/
Full Changelog: Release42...Release43
Release 42
更新内容:
- 支持DOT服务器,
bind-tls
选项。 - server参数增加
-bootstrap-dns
选项,支持指定专门的bootstrapDNS服务器。 - 支持设置smartdns从控制台输出log,以方便容器化部署分析log,
log-console
选项。新增log-level off
,完全关闭LOG。 - 支持默认情况下按照设备内存自动设置cache大小。
- cache文件减少版本升级后不可用的概率。
- domain-rules新增
-no-cache
,-response-mode
参数。 - 支持完全禁用IPV6查询的情况下,允许例外的域名:
address /domain.com/-
- 支持自动将address类域名,展开对应的PTR记录,
expand-ptr-from-address yes
选项。 - server参数新增
-subnet
选项,可指定单个DNS上游的ECS信息。联通或移动用户可模拟电信用户IP地址,让223.5.5.5返回电信就近的IP地址,部分网站网络访问时延会有较大改善。 - 新增
cache-checkpoint-time
参数,设置周期保存cache文件,避免cache丢失。 - bind参数新增
-ipset
,-nftset
选项,支持对应端口查询时,强制设置ipset和nftset。
luci更新
- luci第二DNS新增ipset,和nftset选项。
- luci增加对log的设置。
- luci第一,第二DNS,增加额外标志参数,可以自定义参数。
- luci修正一些文字错误
其他更新
- 增加test测试代码,提升软件整体质量。
- 增加性能测试,具体性能指标参考:#1337 (comment)
- 全新的smartdns帮助文档:https://pymumu.github.io/smartdns/
- Release42版本合入openwrt主干,可以直接feed更新编译安装,软件体积更小。
BUG修正
- 修正几个Crash问题。
- 优化log,降低无效log的级别。
- 解决cname域名循环的问题。
注意事项
- luci界面如不显示,或显示不正常,可以尝试清除浏览器缓存,或使用隐私模式访问管理页面。
- lede如安装 luci-app-smartdns.*.all-luci-compat-all.ipk不显示,请额外安装luci-compat软件包。
- 推荐使用js版本(非compat)的luci界面,功能更加完善。
- smartdns从37版本已经会返回多个IP地址,具体原因查看:https://pymumu.github.io/smartdns/faq/#smartdnsip,判断smartdns是否生效,请使用
nslookup smartdns
来查看。
Release 41
更新内容:
- 支持通过socks5/http代理进行DNS查询。
proxy-server
参数 - bind参数支持绑定到具体的网口。
bind ip:port@interface
- luci界面增加socks5代理配置、测速模式、返回结果模式、DNS64的配置。
- luci界面支持bind绑定设备配置。
- 随机化Query ID。
- 增加ipset-no-speed, nftset-no-speed参数,支持测速失败的情况下,将域名IP添加到对应的ipset/nftset。
- 增加cname参数,支持别名查询。
cname /a.com/b.com
- 域名规则domain-rules增加rr-ttl, rr-ttl-min, rr-ttl-max参数设置TTL特定域名的TTL时间。
- 支持DNS64。
dns64 64:ff9b::/96
参数 - 配置文件支持
\
换行,避免行字符串过长。 - 解决一些BUG,提高稳定性。
注意事项:
- luci界面如不显示,或显示不正常,可以尝试清除浏览器缓存,或使用隐私模式访问管理页面。
Release 41 RC3
更新内容:
- 支持通过socks5/http代理进行DNS查询。
proxy-server
参数 - bind参数支持绑定到具体的网口。
bind ip:port@interface
- luci界面增加socks5代理配置、测速模式、返回结果模式、DNS64的配置。
- luci界面支持bind绑定设备配置。
- 随机化Query ID。
- 增加ipset-no-speed, nftset-no-speed参数,支持测速失败的情况下,将域名IP添加到对应的ipset/nftset。
- 增加cname参数,支持别名查询。
cname /a.com/b.com
- 域名规则domain-rules增加rr-ttl, rr-ttl-min, rr-ttl-max参数设置TTL特定域名的TTL时间。
- 支持DNS64。
dns64 64:ff9b::/96
参数 - 配置文件支持
\
换行,避免行字符串过长。 - 解决一些BUG,提高稳定性。
注意事项:
- luci界面如不显示,或显示不正常,可以尝试清除浏览器缓存,或使用隐私模式访问管理页面。
Release 41 RC2
更新内容:
- 支持通过socks5/http代理进行DNS查询。
proxy-server
参数 - bind参数支持绑定到具体的网口。
bind ip:port@interface
- luci界面增加socks5代理配置、测速模式、返回结果模式、DNS64的配置。
- luci界面支持bind绑定设备配置。
- 随机化Query ID。
- 增加ipset-no-speed, nftset-no-speed参数,支持测速失败的情况下,将域名IP添加到对应的ipset/nftset。
- 增加cname参数,支持别名查询。
cname /a.com/b.com
- 域名规则domain-rules增加rr-ttl, rr-ttl-min, rr-ttl-max参数设置TTL特定域名的TTL时间。
- 支持DNS64。
dns64 64:ff9b::/96
参数 - 配置文件支持
\
换行,避免行字符串过长。 - 解决一些BUG,提高稳定性。
注意事项:
- luci界面如不显示,或显示不正常,可以尝试清除浏览器缓存,或使用隐私模式访问管理页面。
Release 41 RC1
更新内容:
- 支持通过socks5/http代理进行DNS查询。
proxy-server
参数 - bind参数支持绑定到具体的网口。
bind ip:port@interface
- luci界面增加socks5代理配置、测速模式、返回结果模式的配置。
- luci界面支持bind绑定设备配置。
- 随机化Query ID。
- 增加ipset-no-speed, nftset-no-speed参数,支持测速失败的情况下,将域名IP添加到对应的ipset/nftset。
- 增加cname参数,支持别名查询。
cname /a.com/b.com
- 域名规则domain-rules增加rr-ttl, rr-ttl-min, rr-ttl-max参数设置TTL特定域名的TTL时间。
- 支持DNS64。
dns64 64:ff9b::/96
参数 - 配置文件支持
\
换行,避免行字符串过长。 - 解决一些BUG,提高稳定性。
注意事项:
- luci界面如不显示,或显示不正常,可以尝试清除浏览器缓存,或使用隐私模式访问管理页面。
Release 40
更新内容:
- 优化luci界面,支持域名分流配置和定时更新规则。使用 参考这里
- 支持上游服务器配置socket mark(-set-mark)。
- 支持设置日志文件的默认权限。
- 支持禁用特定域名的过期缓存。
- 支持日志个数为0时,禁用日志。
- 优化一些log打印。
- 解决一些BUG。
如有问题请在github提交issue或改进代码。
Full Changelog: Release39...Release40
feature-dns-forwarding
openwrt LUCI界面支持配置DNS分流和广告屏蔽,同时支持定时下载相关的配置文件。
概念:
目前支持管理的文件有两种:
- 一种是
配置文件
:格式为smartdns配置文件格式。
默认路径为:/etc/smartdns/conf.d/
可配置参数为:设置
->高级设置
->包含配置文件
配置文件参考:https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-smartdns.conf - 一种是
域名列表
文件,格式为一行一个域名。
默认路径为:/etc/smartdns/domain-set/
可配置参数为:域名规则
->分流设置
->域名列表文件
;域名规则
->域名屏蔽设置
->域名列表文件
配置文件参考:https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt
使用方法:
- 下载文件
- 在
下载文件设置
中的下载文件
中,增加定时下载文件。 - 在对话框中输入文件名,URL,和选择下载文件的类型,文件名为下载后保存的文件名,下载文件类型为下载文件的类型,保存在上述概念的不同目录。
- 点击
下载文件
页面中更新文件
按钮,等待更新。 - 更新完成后,刷新页面。
- 可勾选
自动更新
复选框,每日凌晨5点定时更新列表文件。
- 包含下载的配置文件
- 点击
设置
->高级设置
->包含配置文件
,从列表中选择下载文件
中配置的配置文件
。如无列表显示,可刷新页面。 - 也可指定配置文件所在的全路径。
- 域名分流
可以将域名列表
文件中的域名的查询请求,发送到对应服务器组
包含的服务器中,具体配置流程
- 在
上游服务器
中添加上游服务器,并配置相关的服务器组
。如果只想让当前服务器接受本服务器组域名的查询,在可以在添加页面的高级设置
中勾选从默认组中排除
复选框。 - 在
域名规则
->域名分流设置
中,选择或输入上述服务器组
,如无列表选择,可配置上游服务器后,刷新页面。 - 在
域名规则
->域名分流设置
中,适当勾选跳过测速
,停用IPV6解析
,IPSET/NFTSet
选项。 - 在
域名列表文件
中,选择或上传分流的域名列表文件。 - 如果有单个域名需要分流,可以在
域名列表
文本框中输入,格式为一行一个域名。
- 屏蔽域名(广告屏蔽)
参考域名分流配置
,只是选择的域名列表不同。
注意事项:
- 如果修改了文本框中的内容,点击
保存并应用
时,页面提示无更改内容,则可以点击页面最下面的重启服务
按钮使配置生效。 下载文件
列表,上游服务器组配置完成后,务必刷新页面,以便部分输入框可提示选择对应的文件列表,方便使用。如未刷新,也可直接输入路径,或名称,但要确保输入匹配。- LUA版本(compat)的因openwrt机制限制,配置界面与JS版本略有不同,缺少批量设置域名规则集的功能,请注意识别。推荐使用js版本
- 此pre-release页面发布件可能会重复刷新,并可能在未来删除,请勿用于二次集成引用。
- 此pre-release为原型测试版本,可能有无法工作的BUG,如遇到BUG请提供相关的问题复现步骤或log。
欢迎各位测试验证,并提出改进建议。