OpenWrt配置AdGuard_smartdns_passwall

拓扑结构

assets/Pasted image 20230507213552.png

DNS 请求发给 AdGurdHome 对广告进行过滤,再将 DNS 请求转发给 DNSmasq ,由 Passwall 策略控制 DNSmasq 进行分流量,然后将 DNS 转发到 SmartDNS ,国内 DNS 由 SmartDNS 的 cn 组中的国内公共 DNS 进行解析,国外 DNS 由 SmartDNS 的 gfw 组中的国外公共 DNS 进行解析。

Passwall 通过定义一组路由规则,决定哪些流量需要通过代理。通常会使用 IP、域名、地理位置等规则来分类。如果代理规则是基于域名的,Passwall 会先执行 DNS 解析,将域名转换成对应的 IP 地址。然后通过设置本地防火墙规则(如 iptables)将符合规则的流量重定向到本地的代理节点。

配置细节

DNSmasq 配置

配置使用本地DNS解析

配置不使用 resoly.conf 中的上游服务器

# 不使用 /etc/resoly.conf 或其他 resoly.conf 中的上游服务器
no-resolv

# 不获取 /etc/resoly.conf 或其他 resoly.conf 文件的变化,不重新读取
no-poll

AdGurdHome配置

配置 AdGurdHome 监听 53 端口

dns:
  bind_hosts:
    - 0.0.0.0
  port: 53
127.0.0.1:5353

生成密码并在手动设置中设置密码
学习笔记/个人随记/assets/Pasted image 20230814005604.png

学习笔记/个人随记/assets/Pasted image 20230814005641.png

测试上游并 应用

测试广告拦截率的站点:

https://adblock-tester.com/

https://ads-blocker.com/zh-hans/guang-gao-lan-jie-qi/

SmartDNS配置

第二服务器不用启用

bind :6153 -group cn
bind :6253 -group gfw -no-speed-check -no-cache

上游服务器设置

# 国内
# DNSPod Public DNS+
119.29.29.29
2402:4e00::
https://1.12.12.12/dns-query
https://120.53.53.53/dns-query

# AliDNS
223.5.5.5
223.6.6.6
2400:3200::1
2400:3200:baba::1

https://223.5.5.5/dns-query
https://223.6.6.6/dns-query
https://2400:3200::1/dns-query
https://2400:3200:baba::1/dns-query


# 国外
# Cloudflare
1.1.1.1
1.0.0.1
https://1.1.1.1/dns-query

2606:4700:4700::1111
2606:4700:4700::1001

# google
8.8.8.8
https://8.8.4.4/dns-query

# opendns
208.67.222.222
https://208.67.222.222/dns-query

学习笔记/个人随记/assets/Pasted image 20230813230024.png

配置 cngfw 分组从默认组中排除

学习笔记/个人随记/assets/Pasted image 20230813230212.png

若无勾选选项可通过代码 -exclude-default-group 配置
学习笔记/个人随记/assets/Pasted image 20230813230710.png

PassWall配置

配置后 PassWall 页面内的测试 github 不一定能直接生效,需要手动添加需要代理的地址,可通过https://www.ipaddress.com/website/github.com/ 获取github的ip 然后在 PassWall 将域名和ip都添加到代理列表,再到AdGurdHome配置DNS重写(github.com 140.82.112.3) ,这样就能在PassWall测试了。