本文引用自大佬“铁军哥”,已和大佬沟通,获得转载权限,感谢大佬的授权。
通过前几次的折腾(软路由是啥?OpenWrt又是啥?长啥样?在VMware装一个瞅瞅、在ESXi上把OpenWrt变成真正的路由器),OpenWrt路由器的基本功能已经具备了,但是我的主要目的在于验证一个“魔法上网”的功能:SmartDNS。
为什么叫“魔法上网”呢?就是现在市面上存在比较多的DNS服务器,而各个服务器之间同步的进度和响应DNS请求的时间以及准确性可能存在较大差异。举个例子,大家经常使用的DNS服务器一般有114.114.114.114和8.8.8.8,前者IP地址在南京,后者IP地址在美国,从偏远地区(比如北京)访问时响应时间会长一些,而且第一个DNS服务器返回解析值后主机就会直接去请求这个地址,也不管其是否可达。
因此种种吧,就有了一个代理DNS解析的工具,一般常用的就是SmartDNS了,一个开源的小工具,代理DNS请求流量,并在比较后返回最佳的解析地址。
SmartDNS的架构图如下所示:

1、SmartDNS接收本地网络设备的DNS查询请求,如PC,手机的查询请求。
2、SmartDNS将查询请求发送到多个上游DNS服务器,可采用标准UDP查询,非标准端口UDP查询,及TCP查询。
3、上游DNS服务器返回域名对应的Server IP地址列表。SmartDNS检测与本地网络访问速度最快的Server IP。
4、将访问速度最快的Server IP返回给本地客户端。
网上有介绍,只要安装两个ipk文件即可。

SmartDNS介绍链接:
https://pymumu.github.io/smartdns/
SmartDNS下载链接:
https://github.com/pymumu/smartdns/releases
也就是下载下面这两个文件。

下载完成之后在“System”→“Softwares”页面,点击“Upload Package”。

通过“Browse”选择要上传的SmartDNS的ipk文件,再点击“Upload”上传加载。

确认安装信息,点击“Install”。

第一个报错来了,提示缺少依赖包“libopenssl”。

但是这个系统虽然支持在线拉取文件,但是不能直接用,那就到openwrt的软件包中去找一下。链接如下:
https://downloads.openwrt.org/releases/19.07.7/packages/x86_64/base/
但是可能会有问题,因为这个网站在美国,加载非常慢,有可能B还没有加载完就停止了,有耐心的就多刷新几次,等他加载完。

要是你没有耐心,也可以直接复制下面的下载链接:
https://downloads.openwrt.org/releases/19.07.7/packages/x86_64/base/libopenssl1.1_1.1.1k-1_x86_64.ipk
然后重复前面的操作,把libopenssl安装上。

当然,如果你用了老版本的软件或镜像,可能会需要zlib的安装包,链接我也给你放在下面了。
https://downloads.openwrt.org/releases/19.07.7/packages/x86_64/base/zlib_1.2.11-3_x86_64.ipk
然后就是继续安装SmartDNS,安装smartdns和luci-app-smartdns两个包,链接也放在下面了。
https://github.com/pymumu/smartdns/releases/download/Release34/smartdns.11.2021.08.07-1628.x86_64-openwrt-all.ipk
https://github.com/pymumu/smartdns/releases/download/Release34/luci-app-smartdns.1.2021.08.07-1628.all-luci-all.ipk
看样子,正常这个使用URL下载安装包应该是可用的,不用先下载再上传。

但是会有下载报错的提示,感觉大概率是网络问题。

但测试网络是可以通的,除了延迟比较大,所以可能是系统工具的问题吧。

回到软件安装的页面,可以看到SmartDNS两个包安装成功,但是上面没有对应的接口。

不用紧张,如果显示安装好了,那退出重新登陆一下就可以了。

先配置几个上游服务器。

然后勾选使能SmartDNS,配置重定向为“Redirect 53 port to SmartDNS”,劫持流量。

页面可能比较长,一定要拉到最下面,点击保存并应用,不然就会跟我一样点了半天,发现一直不生效。

在主机上做个解析测试。

发现没有,114DNS返回了两个IP地址,阿里DNS也返回了两个IP地址,但是经过SmartDNS分析之后,只返回了一个IP地址。
当然,为了验证,我把名称改成了smartdns1,你发现了吗?
原文链接:用SmartDNS被举报!那怎么还叫“魔法上网”?
大佬公众号:铁军哥
谢谢分享
插眼评论涨分
感谢分享,让我好好学习一下
好人啊