mosdns分流,adguardhome去广告,配合openclash,珠联璧合,举世无双,无dns泄露,内外网柔顺丝滑速度飞快

 


我之前出过一期视频,讲解怎样利用openclash强大的分流功能防止dns泄露。非常感谢大家的支持,那期视频获得了不少好评,里面用到的配置文件和yaml文件也得到一定程度的认可。这种配置方法不仅能够有效防止dns泄露,而且上网体验也是不错的,但是本着精益求精的精神,我认为单独使用openclash还是有一点点不尽人意之处的。首先,为了防止dns泄露,我们没有打开绕开中国大陆这个功能的开关,这就造成了国内的上网请求也要经过meta内核,这对于x86架构的软路由来讲可能不会有太大的影响,因为x86作为软路由普遍都会性能过剩,但是对于一些硬路由或者n1盒子等等刷的openwrt系统却是不小的负担,甚至有可能造成系统负载,cpu占用率等等指标爆表。其次,同样也是为了防止dns泄露,在判定国内还是国外网站的时候不能使用ip地址数据库,同时由于域名更新非常频繁域名数据库又不可能完全实时准确,所以不可避免会造成少量的误判。另外,openclash不具有广告拦截能力,大量不请自来的广告不但会对openwrt系统和openclash造成冲击,也会给我们造成很大的困扰。本视频主要讲解怎样利用mosdns的分流功能和adguardhome的去广告功能解决上面提到的三个问题。

一、准备工作和演示环境。

1、openwrt系统使用immtalwrt最新版24.10.4。如果有的朋友还不清楚什么是openwrt或者immortalwrt,请参考我之前的视频,链接我放在下面。

openwrt基础及组网常识 

2、我已安装了openclash,openclash版本和内核已更新到最新,相关数据库已更新到最新,openclash已经按照我之前的“使用openclash防止dns泄露”那期视频里面的无dns泄露版本进行了配置,这期视频的链接我放在下面,不会配置openclash的朋友可以参考。

openclash防止dns泄露

3、由于adguardhome放在主路由上面才能够最大程度的拦截广告,所以本视频演示使用主路由模式。当然我做过测试,这套系统放在旁路由上面也是没有问题的。

4、对dns系统进行修改存在一定的风险,请大家务必注意我的操作步骤和顺序。 

二、mosdns安装及配置.

1、mosdns的安装和配置在我之前的视频“使用mosdns配合passwall或homeproxy防止dns泄露”里面有详细的讲解,链接我放在下面,大家可以参考,这里就不重复详细讲解了,本视频重点会放在针对openclash的设置。按照我后面的配置,mosdns会先对dns请求第一次进行分流,国内直接走国内dns,这样绝大部分国内的dns请求就不会进入meta内核,解决了我们前面提到的第一个问题,国外送到openclash进行第二次分流,这样经过mosdns和openclash的双重分流,分流精确度就会非常高,即使无法达到100%,误判率也是极低,解决了我们前面提到的第二个问题。

使用mosdns配合passwall或homeproxy防止dns泄露

2、immortalwrt的软件仓库里面有mosdns,但是可能因为版本的原因,不能正常使用,建议不要使用immortalwrt的软件仓库安装mosdns,mosdns的官方github主页链接我放在下面。

mosdns的github官网 

3、安装完成以后手动更新数据库,并设置为自动更新。 

4、注意:这时候要先修改openclash的dns设置,再进行下面的mosdns设置。 

5、mosdns设置注意事项。

a、如果是主路由不要勾选“自定义国内dns”选项,mosdns会自动从wan口读取运营商dns。如果是旁路由需要勾选“自定义国内dns”选项,并把国内dns改为自己宽带运营商的dns。不建议使用所谓的加密dns服务器,之前的视频提到过,国内的加密dns服务器对防止dns泄露没有任何作用。

b、远程dns设置为:127.0.0.1:7874 

c、高级选项打开防dns泄露选项。

d、如果后面计划安装adguardhome,建议关闭dns缓存,因为我们会开启adguardhome的缓存,这里再开启缓存这种多重缓存不但没什么意义而且还可能会造成一些问题。如果有的朋友并不介意广告,后面不需要安装adguardhome,可以打开dns缓存,而且dns缓存还可以根据需要调大一些,同时打开缓存保存为文件选项。

e、个人不建议打开mosdns广告过滤选项,虽然mosdns和adguardhome的广告拦截原理是一样的,都是基于域名黑名单拦截,但是mosdns的域名黑名单列表更新不及时,也很少有第三方去做mosdns的域名黑名单列表,所以mosdns的广告过滤功能使用体验不是很好,而且会造成很多古怪问题。 

三、 adguardhome的安装和设置。

1、adguardhome里面的ad是广告的缩写,guard是保护、防护的意思,home是家或者基地的意思,所以adguardhome是广告防护基地的意思,我想说的是adguardhome使用这个名字就是把防广告作为主要卖点的。它的广告拦截功能在目前所有的openwrt插件里面确实也是排在前列的。它的官方域名黑名单列表更新非常及时,也有非常多的第三方去做它的的域名黑名单列表,所以它的广告过滤功能使用体验还是不错的。

2、immortalwrt的软件仓库里面有adguardhome,但是版本比较低,而且不能自动更新,只能通过拷贝内核文件的方式手动更新。官方主页上面的安装方法虽然安装的是最新版本,但是后面同样需要手动更新。这两种安装方法还存在另外一个同样的问题,就是没有luci界面,也就是在openwrt上面找不到界面。网上能够找到的adguardhome的luci界面插件作者已经6年多没有更新了,需要修改配置文件才能够正常使用,不但麻烦,而且对新手朋友也是有一定难度的。我下面给大家介绍一个最简单的方法安装adguardhome,有luci界面,还可以自动更新内核。

3、到istoreos的插件主页下载adguardhome.run,run文件在istoreos上面安装相信大家都会,直接在istore商店里面上传安装就可以了,下面讲一下其它openwrt系统怎样使用run文件。

istoreos扩展插件主页

a、用任意ssh工具登录openwrt。

b、在根目录新建文件夹abc。

c、把adguardhome.run拷贝进abc目录,赋予755权限。

d、执行:sh /abc/adguardhome.run

4、设置adguardhome。

a、更新内核。

b、修改mosdns设置,关掉dns转发,dns重定向。

c、启用adguardhome,然后进行初始配置。

d、上游dns设置为:127.0.0.1:5335

e、设置重定向方式。 这里有三个选项,第一个“作为dnsmasq的上游服务器”实际上就是在dnsmasq里面做转发。第二个“重定向53端口到adguardhome”是在防火墙里面添加规则把默认发送到53端口的请求转发到adguardhome的端口,绕过dnsmasq。第三个“使用53端口替换dnsmasq”就是把dnsmasq和adguardhome的端口互换,adguardhome使用53端口,完全替代dnsmasq。由于dnsmasq是openwrt的底层dns,有些openwrt插件是依赖于dnsmasq的,所以第二和第三种方式有可能会产生兼容性问题,第一种方式是最安全的,但是会有转发延迟,效率不是最高的。第三种完全取代的方式是效率最高的。我自己使用的是第三种方式,而且同时使用了adguardhome的dhcp。不过我建议大家先使用第一种方式尝试,等网络可以正常运行了,再根据自己的需要使用其它的方式。我使用第一种方式来演示。

友情提示:如果在修改dns过程中遇到已确认配置正确,但是配置却不生效,甚至无法上网的情况,不用着急,大概率是上网各个环节中的缓存数据在作怪。请尝试清除浏览器缓存,重启网卡,重启路由器,重启电脑等等。前面的操作看似有些复杂,但是核心就是在修改dns转发,最差的情况,把dnsmasq里面的转发清空就回到初始状态了。

 

 

评论