Releases: pymumu/smartdns
Release 39
更新内容:
- 支持nftable,具体参考nftset参数。by @yujincheng08
- 减少空闲时的CPU占用率。
- 解决多网口UDP请求源路由问题。
- 优化ping线程优先级,避免测速结果偶现的偏差。
- 支持DOH/DOT上游查询时禁用SNI名称。参数:
--host-name -
- 拆分不同端口的缓存,避免缓存污染。
- 解决speed-check-mode参数配置异常的问题。
- 默认禁用TYPE65(HTTPS)的DNS查询请求。
BUG解决:
- 解决上游响应过快时进程crash的BUG。
- 精确匹配本地主机名,避免规则误触发。
- 优化无结果记录的缓存,以及返回查询码不正确问题。
- 解决启动进程时setcap切换用户引发的crash问题。
- 解决一些BUG。
如有问题请在github提交issue或改进代码。
Full Changelog: Release38.1...Release39
Release 38.1
更新内容:
- 将最新代码推送的openwrt社区,支持openwrt 22.03之后的版本;
安装:
opkg update
opkg install smartdns luci-app-smartdns
- ddwrt官方集成smartdns;
官方最新固件service页面->SmartDNS Resolver->启用。|选择界面参考:https://forum.dd-wrt.com/demo/Services.html - entware更新版本。
BUG解决:
- 解决openwrt下dnsmasq更新不正确的问题。
- 解决openwrt luci界面状态显示不正确问题。
- 解决本地域名处理出错的BUG。
- 增加选项,禁止解析本地主机名。
注意事项:
- 从旧版本升级安装后,请重启设备以升级smartdns配置。
- 此版本会自动设置dnsmasq,如和一些特殊软件配合有问题时,请将端口修改为非53端口,如6053,并取消
自动设置dnsmasq
选项。 - 阿里云公共DNS 223.5.5.5/223.6.6.6不建议使用tcp/tls模式,阿里云公共dns不支持tcp的pipeline模式,会导致查询异常。
- 如家里有苹果设备,请增加
force-qtype-SOA 65
参数,阻止iOS设备查询HTTPS相关的信息,避免使smartdns对iOS设备失效。 - smartdns的默认配置,适合作为主DNS使用,已经支持大部分场景的DNS查询体验改善,一般情况只需要增加上游服务器,无需做配置修改。
如有问题请在github提交issue或改进代码。
Full Changelog: Release38...Release38.1
Release 38
更新内容:
-
openwrt: 删除重定向选项,简化重定向功能配置。
新旧功能对比表:设置 功能 等价原重定向功能 53端口 自动替换dnsmasq作为主DNS 重定向53到smartdns 非53端口并开启 自动设置dnsmasq
自动设置为dnsmasq上游 作为dnsmasq的上游 非53端口并关闭 自动设置dnsmasq
作为独立dns服务 无重定向 -
增加domain-set选项,支持域名集合功能,更加快捷管理域名集合,可替换所有/domain/类配置。
BUG解决:
- 解决默认EDNS功能不生效问题。
- 解决javascript luci保存配置报错问题。
- 解决第二DNS force-AAAA不工作问题。
注意事项:
- 从旧版本升级安装后,请重启设备以升级smartdns配置。
- 此版本会自动设置dnsmasq,如和一些特殊软件配合有问题时,请将端口修改为非53端口,如6053,并取消
自动设置dnsmasq
选项。 - 阿里云公共DNS 223.5.5.5/223.6.6.6不建议使用tcp/tls模式,阿里云公共dns不支持tcp的pipeline模式,会导致查询异常。
- 如家里有苹果设备,请增加
force-qtype-SOA 65
参数,阻止iOS设备查询HTTPS相关的信息,避免使smartdns对iOS设备失效。 - smartdns的默认配置,适合作为主DNS使用,已经支持大部分场景的DNS查询体验改善,一般情况只需要增加上游服务器,无需做配置修改。
如有问题请在github提交issue或改进代码。
Full Changelog: Release37.2...Release38
Release 37.2
配置建议:
smartdns的默认配置,适合作为主DNS使用,已经支持大部分场景的DNS查询体验改善,一般情况只需要增加上游服务器,无需做配置修改。
如有配置修改,请务必了解其用途,避免修改后起到反作用。
更新内容:
- 解决关闭测速时,缓存IP数量仅有一个的问题。
- 解决luci界面下,提示collection data无响应的问题。
- luci增加设置参数:dnsmasq-lease-file, force-aaaa-soa, force-https-soa
- 解决域名地址为127.0.0.1时,返回SERVEFAIL的BUG。
- 解决address设置路由器地址不生效的问题。
最近更新历史:
功能:
- 支持返回多IP地址,优化下载、视频播放体验。
第一个IP地址仍然为最快,保证大部分软件体验,并支持设置返回IP个数,参数:max-reply-ip-num(此功能需要开启cache) - 支持读取dnsmasq dhcp文件,解析局域网主机功能,参数:dnsmasq-lease-file [/path/to/lease-file]。
- 支持设置首次请求响应模式,参数:response-mode, 值:
- first-ping:最快ping响应地址模式,DNS上游最快查询时延+ping时延最短,查询等待与链接体验最佳。(当前默认)
- fastest-ip: 最快IP地址模式,查询到的所有IP地址中ping最短的IP。DNS查询时间最长,IP链接最短。(之前模式)
- fastest-response: 最快响应的DNS结果,DNS查询等待时间最短。
- 支持设置ECS。
- speed-mode支持设置三种测速模式,之前版本为两种。
- 优化docker镜像大小为3MB。
- 双栈优选支持主动优选IPV6地址避免链接V4地址:参数:dualstack-ip-allow-force-AAAA yes。(实验性功能)
- 双栈优选支持设置预取周期,参数:serve-expired-prefetch-time [second]
- 支持非root模式运行,提升服务安全性,参数:user [username]
- 支持缓存除A,AAAA类型的其他结果,如SRV,TXT,NXDOMAIN等。提升查询性能。
- 优化并行查询性能,合并同类型查询。
- 支持查询smartdns服务的IP地址,用于检测smartdns服务是否正常。如:
dig smartdns
返回路由IP。 - 支持自动检测IPV6运行环境,自动开启/关闭IPV6相关功能。
- Auditlog支持记录多IP地址。
- 支持无PID文件启动smartdns多实例,
-pid -
进程启动参数。 - 优化smartdns日志打印,避免无效打印,和收到无效数据包的打印,以及优化配置错误的提示。
- 增加local-ttl参数,指定address返回的TTL。
BUG修复:
- 解决TTL某些场景下不变化的BUG。
- 解决IPSET在某些场景下丢失问题。
- 解决日志打印引发的进程死锁和IP冲突问题
- 解决其他若干crash问题。
- 解决华硕路由器中,cache无法持久化的BUG。
- 解决openwrt中,提示端口冲突的BUG。
- 解决smartdns github版本和debian版本冲突的问题。
- 解决双栈优选的一些BUG。
- 解决其他crash问题。
- 清理代码中潜在的问题。
- 避免查询风暴。
- 解决接收到异常数据包导致的crash问题。
- 解决server group组配置在cache启用时不生效的问题。
注意:
- 此版本默认情况下,会启用多IP能力,会出现第一次查询返回一个IP,后面再次查询返回多个IP的情况,属于正常的功能。注意和之前版本区分。
- cache建议开启,并保证持久化功能开启,这样才能获得多IP查询能力。
- smartdns是否正常,可用
dig smartdns
或ping smartdns.
检查(注意,windows下后面的.是必须) - 如需小体积smartdns,请自行编译,或从openwrt官方
opkg install smartdns
安装。 - 阿里云公共DNS 223.5.5.5/223.6.6.6不建议使用tcp/tls模式,阿里云公共dns不支持tcp的pipeline模式,会导致查询异常。
- 如家里有苹果设备,请增加
force-qtype-SOA 65
参数,阻止iOS设备查询HTTPS相关的信息,避免使smartdns对iOS设备失效。
如有问题请在github提交issue或改进代码。
Release 37.1
配置建议:
smartdns的默认配置,适合作为主DNS使用,已经支持大部分场景的DNS查询体验改善,一般情况只需要增加上游服务器,无需做配置修改。
如有配置修改,请务必了解其用途,避免修改后起到反作用。
更新内容:
- 解决接收到异常数据包导致的crash问题。
- 解决server group组配置在cache启用时不生效的问题。
- 增加local-ttl参数,指定address返回的TTL。
- 解决二次转发时,查询DNS服务器IP地址返回127.0.0.1的问题。
最近更新历史:
功能:
- 支持返回多IP地址,优化下载、视频播放体验。
第一个IP地址仍然为最快,保证大部分软件体验,并支持设置返回IP个数,参数:max-reply-ip-num(此功能需要开启cache) - 支持读取dnsmasq dhcp文件,解析局域网主机功能,参数:dnsmasq-lease-file [/path/to/lease-file]。
- 支持设置首次请求响应模式,参数:response-mode, 值:
- first-ping:最快ping响应地址模式,DNS上游最快查询时延+ping时延最短,查询等待与链接体验最佳。(当前默认)
- fastest-ip: 最快IP地址模式,查询到的所有IP地址中ping最短的IP。DNS查询时间最长,IP链接最短。(之前模式)
- fastest-response: 最快响应的DNS结果,DNS查询等待时间最短。
- 支持设置ECS。
- speed-mode支持设置三种测速模式,之前版本为两种。
- 优化docker镜像大小为3MB。
- 双栈优选支持主动优选IPV6地址避免链接V4地址:参数:dualstack-ip-allow-force-AAAA yes。(实验性功能)
- 双栈优选支持设置预取周期,参数:serve-expired-prefetch-time [second]
- 支持非root模式运行,提升服务安全性,参数:user [username]
- 支持缓存除A,AAAA类型的其他结果,如SRV,TXT,NXDOMAIN等。提升查询性能。
- 优化并行查询性能,合并同类型查询。
- 支持查询smartdns服务的IP地址,用于检测smartdns服务是否正常。如:
dig smartdns
返回路由IP。 - 支持自动检测IPV6运行环境,自动开启/关闭IPV6相关功能。
- Auditlog支持记录多IP地址。
- 支持无PID文件启动smartdns多实例,
-pid -
进程启动参数。 - 优化smartdns日志打印,避免无效打印,和收到无效数据包的打印,以及优化配置错误的提示。
BUG修复:
- 解决TTL某些场景下不变化的BUG。
- 解决IPSET在某些场景下丢失问题。
- 解决日志打印引发的进程死锁和IP冲突问题
- 解决其他若干crash问题。
- 解决华硕路由器中,cache无法持久化的BUG。
- 解决openwrt中,提示端口冲突的BUG。
- 解决smartdns github版本和debian版本冲突的问题。
- 解决双栈优选的一些BUG。
- 解决其他crash问题。
- 清理代码中潜在的问题。
- 避免查询风暴。
注意:
- 此版本默认情况下,会启用多IP能力,会出现第一次查询返回一个IP,后面再次查询返回多个IP的情况,属于正常的功能。注意和之前版本区分。
- cache建议开启,并保证持久化功能开启,这样才能获得多IP查询能力。
- smartdns是否正常,可用
dig smartdns
或ping smartdns.
检查(注意,windows下后面的.是必须) - 如需小体积smartdns,请自行编译,或从openwrt官方
opkg install smartdns
安装。 - 阿里云公共DNS 223.5.5.5/223.6.6.6不建议使用tcp/tls模式,阿里云公共dns不支持tcp的pipeline模式,会导致查询异常。
- 如家里有苹果设备,请增加
force-qtype-SOA 65
参数,阻止iOS设备查询HTTPS相关的信息,避免使smartdns对iOS设备失效。
如有问题请在github提交issue或改进代码。
Release 37
配置建议:
smartdns的默认配置,适合作为主DNS使用,已经支持大部分场景的DNS查询体验改善,一般情况只需要增加上游服务器,无需做配置修改。
如有配置修改,请务必了解其用途,避免修改后起到反作用。
更新内容:
功能:
- 支持返回多IP地址,优化下载、视频播放体验。
第一个IP地址仍然为最快,保证大部分软件体验,并支持设置返回IP个数,参数:max-reply-ip-num(此功能需要开启cache) - 支持读取dnsmasq dhcp文件,解析局域网主机功能,参数:dnsmasq-lease-file [/path/to/lease-file]。
- 支持设置首次请求响应模式,参数:response-mode, 值:
- first-ping:最快ping响应地址模式,DNS上游最快查询时延+ping时延最短,查询等待与链接体验最佳。(当前默认)
- fastest-ip: 最快IP地址模式,查询到的所有IP地址中ping最短的IP。DNS查询时间最长,IP链接最短。(之前模式)
- fastest-response: 最快响应的DNS结果,DNS查询等待时间最短。
- 支持设置ECS。
- speed-mode支持设置三种测速模式,之前版本为两种。
- 优化docker镜像大小为3MB。
- 双栈优选支持主动优选IPV6地址避免链接V4地址:参数:dualstack-ip-allow-force-AAAA yes。(实验性功能)
- 双栈优选支持设置预取周期,参数:serve-expired-prefetch-time [second]
- 支持非root模式运行,提升服务安全性,参数:user [username]
- 支持缓存除A,AAAA类型的其他结果,如SRV,TXT,NXDOMAIN等。提升查询性能。
- 优化并行查询性能,合并同类型查询。
- 支持查询smartdns服务的IP地址,用于检测smartdns服务是否正常。如:
dig smartdns
返回路由IP。 - 支持自动检测IPV6运行环境,自动开启/关闭IPV6相关功能。
- Auditlog支持记录多IP地址。
- 支持无PID文件启动smartdns多实例,
-pid -
进程启动参数。 - 优化smartdns日志打印,避免无效打印,和收到无效数据包的打印,以及优化配置错误的提示。
BUG修复:
- 解决TTL某些场景下不变化的BUG。
- 解决IPSET在某些场景下丢失问题。
- 解决日志打印引发的进程死锁和IP冲突问题
- 解决其他若干crash问题。
- 解决华硕路由器中,cache无法持久化的BUG。
- 解决openwrt中,提示端口冲突的BUG。
- 解决smartdns github版本和debian版本冲突的问题。
- 解决双栈优选的一些BUG。
- 解决其他crash问题。
- 清理代码中潜在的问题。
- 避免查询风暴。
注意:
- 此版本默认情况下,会启用多IP能力,会出现第一次查询返回一个IP,后面再次查询返回多个IP的情况,属于正常的功能。注意和之前版本区分。
- cache建议开启,并保证持久化功能开启,这样才能获得多IP查询能力。
- smartdns是否正常,可用
dig smartdns
或ping smartdns.
检查(注意,windows下后面的.是必须) - 如需小体积smartdns,请自行编译,或从openwrt官方
opkg install smartdns
安装。 - 阿里云公共DNS 223.5.5.5/223.6.6.6不建议使用tcp/tls模式,阿里云公共dns不支持tcp的pipeline模式,会导致查询异常。
- 如家里有苹果设备,请增加
force-qtype-SOA 65
参数,阻止iOS设备查询HTTPS相关的信息,避免使smartdns对iOS设备失效。
如有问题请在github提交issue或改进代码。
Release 37 RC3
修正一些BUG。
Release37 RC2
- 修正crash问题。
Release 37 RC1
- 支持返回所有最佳IP地址,第一个IP地址仍然为最快IP。
- 突发查询下的性能优化。
- 更新默认配置,默认开启双栈优选,默认最小TTL为600s。
- 支持ECS
- 解决TTL值不变化的问题。
- 解决若干BUG。
all-best-ip
- 支持返回所有最佳IP地址,第一个IP地址仍然为最快IP。
- 突发查询下的性能优化。
- 更新默认配置,默认开启双栈优选,默认最小TTL为600s。
- 支持ECS
- 解决TTL值不变化的问题。