本帖最后由 shenmuecn 于 2019-2-18 13:46 编辑
SmartDNS
![]()
SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回个客户端,避免DNS污染,提高网络访问速度。同时支持指定特定域名IP地址,并高性匹配,达到过滤广告的效果。 支持树莓派,openwrt,华硕路由器,Windows 10 WSL等设备。
smartdns是移动宽带,长城宽带,用户的福音,也是出国旅游的好工具。
下载路径:https://github.com/pymumu/smartdns/releases
使用指导及安装配套表:https://pymumu.github.io/smartdns/
效果展示
以百度为例,分别用阿里DNS 223.6.6.6和SmartDNS对比。
阿里DNS结果:
SmartDNS结果:
可以看到,在未使用SmartDNS时,访问百度时延在30ms左右,使用smartdns后,时延在6ms。
某P站使用阿里DNS,无法访问,使用smartDNS,可以访问。
特性- 多DNS上游服务器
支持配置多个上游DNS服务器,并同时进行查询,即使其中有DNS服务器异常,也不会影响查询。 - 返回最快IP地址
支持从域名所属IP地址列表中查找到访问速度最快的IP地址,并返回给客户端,避免DNS污染,提高网络访问速度。 - 支持非标准端口
支持非53端口查询,支持TCP查询,有效避免DNS污染。 - 特定域名IP地址指定
支持指定域名的IP地址,达到广告过滤效果,避免恶意网站的效果。 - 域名高性能后缀匹配
支持域名后缀匹配模式,简化过滤配置,过滤20万条记录时间<1ms - Linux/Windows多平台支持
支持标准Linux系统(树莓派),openwrt系统各种固件,华硕路由器原生固件,同时支持Windows 10 WSL系统。 - 支持IPV4, IPV6双栈
支持IPV4,IPV6网络,支持查询A, AAAA记录,支持IPV4,IPV6双栈IP优选策略。 - 高性能,占用资源少
多线程异步IO模式,cache缓存查询结果。
功能说明
- SmartDNS接收本地网络设备的DNS查询请求,如PC,手机的查询请求。
- SmartDNS将查询请求发送到多个上游DNS服务器,可采用标准UDP查询,非标准端口UDP查询,及TCP查询。
- 上游DNS服务器返回域名对应的Server IP地址列表。SmartDNS检测与本地网络访问速度最快的Server IP。
- 将访问速度最快的Server IP返回给本地客户端。
界面预览
使用下载配套安装包
下载配套版本的SmartDNS安装包,对应安装包配套关系如下。(请访问https://pymumu.github.io/smartdns/查看最新配套表)
系统 | 安装包 | 说明 | 标准Linux系统(树莓派) | smartdns.xxxxxxxx.armhf.deb | 支持树莓派Raspbian stretch,Debian 9系统。 | 标准Linux系统(x86_64) | smartdns.xxxxxxxx.x86_64.tar.gz | 支持x86_64 Linux 系统。 | Windows 10 WSL (ubuntu) | smartdns.xxxxxxxx.x86_64.tar.gz | 支持Windows 10 WSL ubuntu系统。 | 华硕原生固件(optware) | smartdns.xxxxxxx.mipsbig.ipk | 支持MIPS大端架构的系统,如RT-AC55U, RT-AC66U. | 华硕原生固件(optware) | smartdns.xxxxxxx.mipsel.ipk | 支持MIPS小端架构的系统。 | 华硕原生固件(optware) | smartdns.xxxxxxx.arm.ipk | 支持arm小端架构的系统,如RT-AC68U。 | Padavan | smartdns.xxxxxxx.mipselsf.ipk | padavan固件。 | openwrt 15.01 | smartdns.xxxxxxxx.ar71xx.ipk | 支持AR71XX MIPS系统。 | openwrt 15.01 | smartdns.xxxxxxxx.ramips.ipk | 支持MT7260小端等路由器 | openwrt 15.01(潘多拉) | smartdns.xxxxxxxx.ramips_24kec.ipk | 支持MT762X等小端路由器 | openwrt 15.01(潘多拉) | smartdns.xxxxxxxx.ramips_24kec.ipk | 支持MT7620系列的潘多拉固件 | openwrt 18.06 | smartdns.xxxxxxxx.mips_24kc.ipk | 支持AR71XX MIPS系统。 | openwrt 18.06 | smartdns.xxxxxxxx.mipsel_24kc.ipk | 支持MT7260小端等路由器 | openwrt 18.06 | smartdns.xxxxxxxx.x86-64.ipk | 支持x86-64路由器 | openwrt 18.06 | smartdns.xxxxxxxxxxx.arm_cortex-a9.ipk | 支持arm A9核心CPU的路由器 | openwrt 18.06 | smartdns.xxxxxxxxx.arm_cortex-a7_neon-vfpv4.ipk | 支持arm A7核心CPU的路由器 | openwrt LUCI | luci-app-smartdns.xxxxxxxxx.xxxx.all.ipk | openwrt管理统一界面 |
openwrt系统CPU架构比较多,请查看CPU架构后下载,CPU架构可在路由器管理界面找到,查看方法:
- 登录路由器,点击System->Software,点击Configuration Tab页面,在opkg安装源中可找到对应软件架构,下载路径中可找到,如下,架构为ar71xx
src/gz chaos_calmer_base http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base
使用说明
https://pymumu.github.io/smartdns/
下载:下载链接
版本说明:
如果没有你要的版本,请在回复中留言,注明一下信息:
【路由器型号】:
【CPU型号】:
【openwrt适用的固件路径】:(https://downloads.openwrt.org/releases/目录中给出)
【opkg的安装源信息】:(登录路由器,点击System->Software,点击Configuration Tab页面的内容)
更新日志
【2019/2/18】
- addres配置项支持指定#,#4,#6,-分别表示域名返回SOA, A地址返回SOA, AAAA地址返回SOA以及忽略规则。
- ipset配置项支持指定-,忽略配置规则。
- 支持padavan固件
- 支持AR71xx的潘多拉固件
- 支持ignore-ip指定丢弃结果中的IP地址。
- 解决IP双栈优选下的几个错误。
- 增加配置选项:打印加载时的错误到syslog或终端,方便定位配置错误。
- 优化性能以及可靠性。
- 解决一些crash异常。
- 新增windows 10 WSL支持。
【2019/1/8】
- 增加IP黑名单支持,支持使用IP黑名单过滤特定DNS服务器返回的结果
- 增加IPSET的支持,配合ipset使用。
- bogus-domain,ipset,blacklist支持IP子网。
- 支持过滤特定DNS服务器的伪造域名。
- 支持IPV4, IPV6之间IP地址优选策略。
- 污染IP过滤增强。
- 优化查询超时机制,保证查询超时时间1.1s内。
- 提升Luci界面配置保存速度。
- 支持启用或停用上游服务器。
- 解决crash的BUG。
- 解决一些BUG。
- 增加异常定位能力。
- 优化Luci界面配置。
- 优化baidu DNS回应错误包时的日志打印。
【2018/12/1】
- 增加TCP查询服务器。
- 增加openwrt下的重定向模式配置。
- 增加dns查询审计日志功能,记录dns查询请求。(请在自定义配置中增加配置项)
- 修改几处BUG。
【2018/11/3】
- 增加TLS查询支持。
- 增加X86版本的支持。
- 升级配套openwrt18.06
- 修改进程可能死循环的BUG。
- 修改进程可能异常退出的BUG。
【2018/9/4】
【2018/8/17】
- 增加伪造毒IP地址过滤功能(bogus-nxdomain参数)
- 增加支持arm_cortex-a15_neon-vfpv4
- 修正一处代码BUG。
- 修正潜在的一个并发问题。
【2018/8/9】- LUCI界面增加smartDNS自定义参数界面。
- 增加conf-file参数。
- 修改address匹配规则a,按域名匹配(之前版本后缀匹配)
- 解决X86-64系统下定时器失效的错误。
- 解决openwrt错误日志打印问题。
【2018/8/7】
1. 解决LEDE系统下,重启后,redirect未生效的问题。
2. 增加IPV6场景下的端口重定向。
3. 增加重定向是否生效的检测。并提示。
【2018/8/3】
1. 解决华硕路由器中服务重启问题。
2. 优化,当域名只有一个IP的情况下,不做检测。
3. 增加arm_cortex-a9_vfpv3的支持
4. 解决界面服务状态显示未刷新的问题
5. 优化指导书,刷新检查服务是否生效的方法
6. 界面默认启用redirect
注意:之前版本升级到此版本,需要重启路由器,否则服务状态将获取失败。
【2018/7/31】
1. 增加配置smartdns服务器名字,完善帮助。
2. 增加中文界面.
【2018/7/30】
1.增加x86_64, arm_cortex_a9, arm_cortex_a7的支持
【2018/7/25】
1. 解决smartdns服务在路由器重启时没启动的问题。
【2018/7/24】
1. 解决LEDE安装时的segment falut错误。
2. 支持X86-64系统
|