OpenWrt配置AdGuard_smartdns_passwall
拓扑结构
DNS 请求发给 AdGurdHome 对广告进行过滤,再将 DNS 请求转发给 DNSmasq ,由 Passwall 策略控制 DNSmasq 进行分流量,然后将 DNS 转发到 SmartDNS ,国内 DNS 由 SmartDNS 的 cn 组中的国内公共 DNS 进行解析,国外 DNS 由 SmartDNS 的 gfw 组中的国外公共 DNS 进行解析。
Passwall 通过定义一组路由规则,决定哪些流量需要通过代理。通常会使用 IP、域名、地理位置等规则来分类。如果代理规则是基于域名的,Passwall 会先执行 DNS 解析,将域名转换成对应的 IP 地址。然后通过设置本地防火墙规则(如 iptables)将符合规则的流量重定向到本地的代理节点。
配置细节
DNSmasq 配置
-
网络 --- DHCP/DNS --- 常规设置
- DNS 重定向:
不勾选
- DNS 转发:
127.0.0.1#6153
- DNS 重定向:
-
网络 --- DHCP/DNS --- 高级设置
- DNS 服务器端口:
5353
- DNS 查询缓存的大小:
0
- DNS 服务器端口:
配置使用本地DNS解析
- 网络 --- 接口 --- LAN --- DHCP服务器 --- 高级设置
- DHCP选项:
6,192.168.1.254
,注意有6,
配置不使用 resoly.conf 中的上游服务器
- 系统 --- 高级设置 --- dnsmasq
加入以下内容
# 不使用 /etc/resoly.conf 或其他 resoly.conf 中的上游服务器
no-resolv
# 不获取 /etc/resoly.conf 或其他 resoly.conf 文件的变化,不重新读取
no-poll
AdGurdHome配置
配置 AdGurdHome 监听 53 端口
- 服务 --- AdGurdHome --- 手动设置
dns:
bind_hosts:
- 0.0.0.0
port: 53
- 保存应用后设置 AdGurdHome 上游 DNS 为 DNSmasq
127.0.0.1:5353
生成密码并在手动设置中设置密码
测试上游并 应用
测试广告拦截率的站点:
https://ads-blocker.com/zh-hans/guang-gao-lan-jie-qi/
SmartDNS配置
- 服务 --- SmartDNS --- 常规设置
- 启用:
勾选
- 自动设置Dnsmasq:
不勾选
- 启用:
- 服务 --- SmartDNS --- 高级设置
- TCP服务器:
不勾选
- 域名预加载:
不勾选
- 缓存大小:
102400
一万加 - 其他自行配置
- TCP服务器:
第二服务器不用启用
- 服务 --- 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
配置 cn
、gfw
分组从默认组中排除
若无勾选选项可通过代码 -exclude-default-group
配置
PassWall配置
- 服务 --- PassWall --- 基本设置
- 主要
- 主开关 :
勾选
- TCP/UDP 节点 :
选择可用节点
- 主开关 :
- DNS
- 过滤模式 :
通过TCP/UDP请求DNS都可
- 远程 DNS :
127.0.0.1:6253
- 当使用中国列表外时的默认DNS :
直连DNS
或使用ChinaDNS-NG
避免节点连接域名走远程DNS解析
- 过滤模式 :
- 主要
- 服务 --- PassWall --- 规则管理
手动更新
由 Passwall 策略控制 DNSmasq 进行分流量,需要手动来更新一下有规则后才可分流
配置后 PassWall 页面内的测试 github 不一定能直接生效,需要手动添加需要代理的地址,可通过https://www.ipaddress.com/website/github.com/ 获取github的ip 然后在 PassWall 将域名和ip都添加到代理列表,再到AdGurdHome配置DNS重写(github.com 140.82.112.3) ,这样就能在PassWall测试了。