OpenWrt配置双AdGuard实现DNS国内外分流

教程类 · 2023-10-17

OpenWrt配置双AdGuard实现DNS国内外分流
发布于 2023-06-14 11:35:11
4.1K0
举报
从去年改造了家里的网络到现在都很稳定,但是最近自建的出墙偶尔抽风,我一直使用的Hysteria协议,发现有版本升级,于是升级了服务端,最后发现还是不丝滑,发现是我现在用的openwrt中的passwall插件不支持端口跳跃功能, 所以在恩山论坛找了个最新的OpenWrt固件进行安装,前段时间刷到了一个利用双AdguardHome分流国内外DNS解析,说这样可以防DNS污染,反正这次要升级OpenWrt,所以就折腾了一下,为了保持以前服务正常使用,我直接重新启动了一个OpenWrt,等觉得没问题再销毁全部切换过来,本篇记录自己踩的坑,当水篇文章了~。

前提准备
1、 下载合适的Op固件:我使用的是恩山bleach1991的 高大全/精简版 Openwrt x86 6.1内核 软路由固件

2、 转换ESXI虚拟机磁盘软件:StarWind V2V Image Converter

开始配置
关于安装OpenWrt就不在这里列图了,安装好后建议先参考我另外的一篇文章扩容磁盘,OpenWrt 扩容磁盘方案及实操

我采用的是直接docker里面安装双AdguargHome,网上很多方案都是一个使用Op插件自带的AdguargHome,直接接管国内的DNS解析,为了维护方便,我直接全部使用docker启动。

规划如下:

国内组:udp:15335(DNS解析)、tcp:3001(Ad管理端)
国外组:udp:15336(DNS解析)、tcp:3002(Ad管理端)
安装国内组
进入OP管理端,依次点击:系统 -> TTYD 终端,进入shell窗口,直接运行下面docke命令启动国内组AdguardHome:
docker run --name adguardhome1 \

--restart unless-stopped\
-v /opt/adguardhome1/work:/opt/adguardhome/work\
-v /opt/adguardhome1/conf:/opt/adguardhome/conf\
-p 15335:53/udp\
-p 15335:53/tcp\
-p 3001:3000/tcp\
-d adguard/adguardhome:latest

复制
启动成功后访问http://{OpenWrt地址}:3001,设置帐号密码,注意安装的时候网页管理端口保持3000、DNS服务保持53,因为容器映射的是这2个端口。

安装好登录AdguardHome,依次点击顶部导航设置 -> DNS设置 :

上游DNS服务填下面的:

tls://dns.pub
tls://dns.alidns.com
https://doh.pub/dns-query
https://dns.pub/dns-query
https://dns.alidns.com/dns-query
复制
勾选并行请求

Bootstrap DNS 服务器填下面的:

你本地默认的运营商DNS(比如四川电信是:61.139.2.69)
114.114.114.114
复制
如果没有使用Ipv6,勾选禁用Ipv6地址的解析

DNS缓存配置根据自己分配的空间自行设置,我这里直接保持默认配置是4194304字节

点击保存即可

依次点击顶部导航 过滤器设置 -> DNS黑名单:

添加一些自己网上找的,这里列几个我用的,根据自己需要的选择:

easylistchina:https://easylist-downloads.adblockplus.org/easylistchina.txt
adgk手机去广告:https://raw.githubusercontent.com/banbendalao/ADgk/master/ADgk.txt
anti-ad-easylis:https://anti-ad.net/easylist.txt
1024_hosts:https://raw.githubusercontent.com/Goooler/1024_hosts/master/hosts
easyprivacy:https://easylist-downloads.adblockplus.org/easyprivacy.txt
ad-wars:https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts
复制
不建议添加太多,越多误杀越严重!

OpenWrt配置双AdGuard实现DNS国内外分流
OpenWrt配置双AdGuard实现DNS国内外分流
至此国内组安装完毕。

安装国外组
进入OP管理端,依次点击:系统 -> TTYD 终端,进入shell窗口,直接运行下面docke命令启动国外组AdguardHome:
docker run --name adguardhome2 \

--restart unless-stopped\
-v /opt/adguardhome2/work:/opt/adguardhome/work\
-v /opt/adguardhome2/conf:/opt/adguardhome/conf\
-p 15336:53/udp\
-p 15336:53/tcp\
-p 3002:3000/tcp\
-d adguard/adguardhome:latest

复制
启动成功后访问http://{OpenWrt地址}:3002,设置帐号密码,注意安装的时候网页管理端口保持3000、DNS服务保持53,因为容器映射的是这2个端口。

安装好登录AdguardHome,依次点击顶部导航设置 -> DNS设置 :

上游DNS服务填下面的:

tls://1.1.1.1/dns-query
tls://dns.google
https://dns.google/dns-query
tls://dns11.quad9.net
https://dns11.quad9.net/dns-query
复制
勾选并行请求

Bootstrap DNS 服务器填下面的,如果上游DNS都是设置的加密DNS,这个可以不填:

9.9.9.10
8.8.8.8
复制
如果没有使用Ipv6,勾选禁用Ipv6地址的解析

DNS缓存配置根据自己分配的空间自行设置,我这里直接保持默认配置是4194304字节

点击保存即可

依次点击顶部导航 过滤器设置 -> DNS黑名单:

国外一般DNS不会污染,所以不需要添加其他的,就开启自带的AdGuard DNS filter即可。
OpenWrt配置双AdGuard实现DNS国内外分流
OpenWrt配置双AdGuard实现DNS国内外分流
至此国外组安装完毕。

配置 OpenWrt
默认openwrt会使用自带的Dnsmasq进行解析,所以我们要直接把自带的DNS转发到我们的国内组,即127.0.0.1#15335

依次点击openwrt左侧导航栏:网络 -> DHCP/DNS,设置下面说的选项:

基本设置:DNS转发设置为 127.0.0.1#15335 ;取消仅本地服务的√;HOSTS和解析文件:忽略解析文件打√
高级设置:没有使用Ipv6就把禁止解析Ipv6 DNS记录打√,DNS查询缓存设置为0。
配置 Passwall
我使用的passwall,对接其他出墙插件大致差不多的,大概就是把使用DNS的地方使用 127.0.0.1#15536

依次点击passwall -> 基本设置 -> DNS :过滤模式:通过UDP请求DNS,远程DNS:127.0.0.1#15336。

OpenWrt配置双AdGuard实现DNS国内外分流
OpenWrt配置双AdGuard实现DNS国内外分流
依次点击passwall -> 规则列表 -> 直连列表 :

将国内组使用到的上游DNS的域名IP都加入到直连里面,以免又跑到国外DNS去解析了。
OpenWrt配置双AdGuard实现DNS国内外分流
OpenWrt配置双AdGuard实现DNS国内外分流
配置主路由(可选)
如果你的OpenWrt只是作为旁路由运行,并且要想内网所有设置都先经过AdGuardHome进行过滤,那么还需要最后一步在分发DHCP的路由器上配置DNS,

我这里主路由是RouterOS,所以我使用winbox登录到RouterOS,将DNS修改为OpenWrt的IP地址,这样就可以让内网分配IP的设备都经过AdGuardHome。

效果一览
国内组:

OpenWrt配置双AdGuard实现DNS国内外分流
OpenWrt配置双AdGuard实现DNS国内外分流
国外组:

OpenWrt配置双AdGuard实现DNS国内外分流
OpenWrt配置双AdGuard实现DNS国内外分流
说到最后
其实AdGuardHome现在已经无法屏蔽了PC端的视频广告了,我找了很多规则都无法实现,但是手机端的广告是可以屏蔽的,不要对这个抱有太大的希望,做为一个DNS缓存器确实能达到很好的效果,这样做了国内外分流解析,真能防止DNS污染了吗???

取消回复
  1. 1 2023-10-20

    555

  2. 1 2023-10-20

    1

  3. 1 2023-10-20

    1

  4. 1 2023-10-20

    1

    1. 1 2023-10-20
      @1

      555

    2. 1 2023-10-20
      @1

      1

  5. 1 2023-10-19

    555

    1. 1 2023-10-20
      @1

      1

    2. 1 2023-10-20
      @1

      1

      1. 1 2023-10-20
        @1

        555

Theme Jasmine by Kent Liao