配置建议:
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或改进代码。