找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 394792|回复: 1073

【2022-8-6】【已开源】SmartDNS,高性能本地DNS服务器,极大优化网络访问速度

 火... [复制链接]
本帖最后由 shenmuecn 于 2022-8-6 17:33 编辑

特别说明
smartdns为免费开源软件,未收取任何费用,如有问题,请移步github提交issue或提交相关代码patch。
如软件对自己有用,可以github上点赞支持下。
如无用,选择不用即可,请不要谩骂或带节奏。
作者并没有从此软件获益,开发此软件为作者本身使用需要,作者也没有义务或责任为smartdns的使用问题负责,也不会收取所谓的智商税。

国内开源不易,多谢各位的理解和支持。

作者建议使用默认配置,仅需增加上游服务器地址,默认配置已经优化最佳,此模式已经适配大部分场景。
如果需要修改配置,请阅读相关的帮助,正确配置,避免配置错误起到反作用。


阿里云公共DNS 223.5.5.5/223.6.6.6因不支持tcp的pipeline模式,会导致查询异常,不建议使用其tcp/tls模式。

2022-8-6更新内容详见更新日志。


SmartDNS


SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的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。

特性
  •     多DNS上游服务器
    支持配置多个上游DNS服务器,并同时进行查询,即使其中有DNS服务器异常,也不会影响查询。
  •     返回最快IP地址
    支持从域名所属IP地址列表中查找到访问速度最快的IP地址,并返回给客户端,提高网络访问速度。
  •     支持非标准端口
    支持非53端口查询,支持TCP查询。
  •     特定域名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。
Padavansmartdns.xxxxxxx.mipselsf.ipkpadavan固件。
openwrt 15.01smartdns.xxxxxxxx.ar71xx.ipk支持AR71XX MIPS系统。
openwrt 15.01smartdns.xxxxxxxx.ramips.ipk支持MT7260小端等路由器
openwrt 15.01(潘多拉)smartdns.xxxxxxxx.ramips_24kec.ipk支持MT762X等小端路由器
openwrt 15.01(潘多拉)smartdns.xxxxxxxx.ramips_24kec.ipk支持MT7620系列的潘多拉固件
openwrt 18.06smartdns.xxxxxxxx.mips_24kc.ipk支持AR71XX MIPS系统。
openwrt 18.06smartdns.xxxxxxxx.mipsel_24kc.ipk支持MT7260小端等路由器
openwrt 18.06smartdns.xxxxxxxx.x86-64.ipk支持x86-64路由器
openwrt 18.06smartdns.xxxxxxxxxxx.arm_cortex-a9.ipk支持arm A9核心CPU的路由器
openwrt 18.06smartdns.xxxxxxxxx.arm_cortex-a7_neon-vfpv4.ipk支持arm A7核心CPU的路由器
openwrt LUCIluci-app-smartdns.xxxxxxxxx.xxxx.all.ipkopenwrt管理统一界面

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页面的内容)


更新日志
【2022/8/6】

  更新内容:  
  功能:
  1. 支持返回多IP地址,优化下载、视频播放体验。  
     第一个IP地址仍然为最快,保证大部分软件体验,并支持设置返回IP个数,参数:max-reply-ip-num(此功能需要开启cache)
  2. 支持读取dnsmasq dhcp文件,解析局域网主机功能,参数:dnsmasq-lease-file [/path/to/lease-file]。
  3. 支持设置首次请求响应模式,参数:response-mode, 值:
     * first-ping:最快ping响应地址模式,DNS上游最快查询时延+ping时延最短,查询等待与链接体验最佳。(当前默认)
     * fastest-ping: 最快IP地址模式,查询到的所有IP地址中ping最短的IP。DNS查询时间最长,IP链接最短。(之前模式)
     * fastest-response: 最快响应的DNS结果,DNS查询等待时间最短。
  4. 支持设置ECS。
  5. speed-mode支持设置三种测速模式,之前版本为两种。
  6. 优化docker镜像大小为3MB。
  7. 双栈优选支持主动优选IPV6地址避免链接V4地址:参数:dualstack-ip-allow-force-AAAA yes。(实验性功能)
  8. 双栈优选支持设置预取周期,参数:serve-expired-prefetch-time [second]
  9. 支持非root模式运行,提升服务安全性,参数:user [username]
  10. 支持缓存除A,AAAA类型的其他结果,如SRV,TXT,NXDOMAIN等。提升查询性能。
  11. 优化并行查询性能,合并同类型查询。
  12. 支持查询smartdns服务的IP地址,用于检测smartdns服务是否正常。如:`dig smartdns`返回路由IP。
  13. 支持自动检测IPV6运行环境,自动开启/关闭IPV6相关功能。
  14. Auditlog支持记录多IP地址。
  15. 支持无PID文件启动smartdns多实例,`-pid -`进程启动参数。
  16. 优化smartdns日志打印,避免无效打印,和收到无效数据包的打印,以及优化配置错误的提示。
  
  BUG修复:
  1. 解决TTL某些场景下不变化的BUG。
  2. 解决IPSET在某些场景下丢失问题。
  3. 解决日志打印引发的进程死锁和IP冲突问题
  4. 解决其他若干crash问题。
  5. 解决华硕路由器中,cache无法持久化的BUG。
  6. 解决openwrt中,提示端口冲突的BUG。
  7. 解决smartdns github版本和debian版本冲突的问题。
  8. 解决双栈优选的一些BUG。
  9. 解决其他crash问题。
  10. 清理代码中潜在的问题。
  11. 避免查询风暴。
  
  注意:
  1. 此版本默认情况下,会启用多IP能力,会出现第一次查询返回一个IP,后面再次查询返回多个IP的情况,属于正常的功能。注意和之前版本区分。
  2. cache建议开启,并保证持久化功能开启,这样才能获得多IP查询能力。
  3. smartdns是否正常,可用`dig smartdns`或`ping smartdns.`检查(注意,windows下后面的.是必须)


【2019/12/15】
  1. GPL V3协议开源。
  2. 解决一些BUG。

【2019/11/2】
  • 支持设置测速模式speed-check-mode功能,可任意选择ping测速或tcp测速。
  • bind支持绑定多个端口,且支持不同端口的请求应用不同的规则。参考bind flags参数。
  • Luci支持第二DNS服务器。
  • TLS校验支持检查主机名,而不需要校验SPKI。
  • 优化prefetch性能。
  • -v参数支持查询版本号。
  • 解决父子规则包含导致规则失效的问题。
  • 解决一些BUG和提高稳定性。


【2019/4/1】
  • 增加DOH https的支持。(wireformat格式)
  • 增加端口占用检测。
  • 优化双栈IP优选的性能。
  • 增加上游重试机制,避免网络异常失败。
  • 支持域名分流功能(nameserver配置项和-group参数)。
  • 支持TLS使用SPKI校验(-spki-pin参数)。
  • conf-file支持相对路径。
  • 文档增加FAQ说明。
  • 修正一些小错误。
  • 新增armbian arm64 debian stretch系统的支持。


【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】
  • 增加关闭IPV6的功能。
  • 优化部分日志打印。


【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系统













本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

这东西不能解决DNS污染问题吧,只是解析域名后的优选  发表于 2019-12-17 18:46

评分

参与人数 37恩山币 +37 收起 理由
mxy*** + 1 不要怂、就是干!
sn*** + 2 建议加入AI算法使它更智能!!!
nee*** + 1 强大的恩山!(以下重复1万次)
myar*** + 1 强大的恩山!(以下重复1万次)
bing*** + 1 强大的恩山!(以下重复1万次)
cll*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
ken*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
wh*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
jdp*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
lupu*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
SUC*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
米*** -1 严重注意:安装此smartdns后,系统发现非法进程,开始连接境外80端口网站。
lyen*** + 1 面对这种帖子,我内心复杂,真不知道说什么好……
liy*** + 1 感谢你的分享,无论怎样,你都是最无私的人!
z1539*** + 1 真牛逼 我实测成功 打开网页速度真的快了好多!!牛逼!!!必须顶!!!!!!
lai*** + 2 最近github下载不了呀!!能给个其它的下载地址吗?
gxmi*** + 1 强大的恩山!(以下重复1万次)
sh*** + 1 移动的福利
kyli*** + 1 能否编译一份X86的32位的版本
leech*** + 1 一看就是觉得高端、大气、上档次!
ubr*** -1 X86的装都装不上,什么啊!
leey*** + 1 别说了,打他!!!
up*** + 1 面对这种帖子,我内心复杂,真不知道说什么好……
yin*** + 1 强大的恩山!(以下重复1万次)
whow*** + 2 率全体恩山路由党以及党魁向你学习!
北方困*** + 1 率全体恩山路由党以及党魁向你学习!
gee*** + 2 率全体恩山路由党以及党魁向你学习!
13248*** + 1 强大的恩山!(以下重复1万次)
心太高*** + 2 率全体恩山路由党以及党魁向你学习!
sim*** + 1 好东西,有高通IPQ40XX的吗&amp;gt;?
edm*** + 1 不要怂、就是干
Wind*** + 1 一看就是觉得高端、大气、上档次!
炽热*** -1 网件3800安装不过,可能是我笨了点!
lan*** + 1 强大的恩山!(以下重复1万次)
tzxi*** + 2 移动的福利
511*** + 1 移动的福利
cd*** + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
        感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
1033310615 发表于 2022-4-17 19:05
劳烦大师指导下载华硕AC68U和竟斗云619的下载链接及安装方法,谢谢。邮箱1033310615@qq.com

github下载编译好的二进制文件即可。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
劳烦大师指导下载华硕AC68U和竟斗云619的下载链接及安装方法,谢谢。邮箱1033310615@qq.com

点评

github下载编译好的二进制文件即可。  详情 回复 发表于 2022-8-6 17:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享,这个东西我非常需要
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

大佬能不能更新一下编译好新版本IPK吗
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

VG分级分工教育附加覆盖面
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 vpei 于 2020-6-14 16:08 编辑

又得新测试了一下,把本地电脑获取IPv6协议禁止了,就能正常访问。不知道是IPv6哪出了问题。用nslookup 2.baidu.com 192.168.5.254来测试,也是正常的。



用ipv6地址访问openwrt的web页面也能正常访问,就是作为dns地址就不正常。

DNS request timed out.

    timeout was 2 seconds.
服务器:  UnKnown
Address:  10:0:5::1
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** 请求 UnKnown 超时

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 vpei 于 2020-6-14 15:39 编辑

设置本地域名解析2.baidu.com为1.1.1.2进行测试,路由器IP设置为192.168.5.254,IPv6设置为10:0:5::1。第一种是正常的PING,第2种是切换为重定53端口到SmartDNS模式,第3种是作为dnsmasq的上游服务器模式。结果出现上面的提示,这个配置正常吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

装不上啊,.........
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

请问,能不能单独设置指定的域名,只进行ipv4的解析,禁止解析ipv6。
因为有的网站,国内也能访问,就是速度很慢,用国外IP访问比较快,但是节点又不支持ipv6,造成解析很慢。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

clone后,怎么make menuconfig里没找到smartdns?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

正在使用中,有低调上网,觉得还没有原机快。要慢2毫秒。不知道 是不是我环境的问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

请教 shenmuecn 大神,如果用smt直接占了53端口取代dnsmasq的话,smt里是否可以自定义dhcp-option、dhcp-option-force、srv-host这样dhcp的指令?
另,openwrt的dhcp设置里转发到smt的6053端口解析,这个设置方式和smt里直接选择"作为dnsmasq的上游服务器“效果完全等同么?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


谢谢分享。。。。。。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 05:58

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表