一、安装环境和准备工作
同样,本文紧密结合之前分享的关于 Redmi AX6000 路由器实现科学上网的内容。之前,我们也分享过另一篇关于 msodns 软件实现国内外流量分流的教程。您可以在以下链接查看之前的文章,然后与本文进行对比,选择适合您自建需求的软件。本文基于AdGuardHome实现国内外流量分流,并导入去广告规则以实现所有设备的广告拦截。然而,请注意,AdGuardHome的广告拦截效果比浏览器去广告插件的去广告能力弱很多(这个没办法,检测机制不一样)。
二、AdGuardHome介绍
AdGuard Home 是一种开源的网络广告和跟踪器拦截软件,它可以在您的家庭网络中拦截广告、恶意软件、跟踪器和其他有害内容。AdGuard Home 是一个 DNS 服务器,它通过过滤广告和追踪请求来防止它们被加载,从而使您的网络更加快速和安全。AdGuard Home 的主要功能包括:
- 广告拦截:AdGuard Home 可以有效地阻止广告在浏览器和应用中的显示,从而提高浏览速度。
- 隐私保护:AdGuard Home 可以拦截跟踪器和分析工具,从而保护您的隐私,同时防止恶意软件和恶意网站的攻击。
- 家长控制:AdGuard Home 允许您控制网
文章来源(Source):浅时光博客 络中的内容,阻止不良内容,同时允许您设置过滤规则和白名单。 - 跨平台支持:AdGuard Home 可以在多种操作系统上运行,包括 Windows、macOS、Linux 和树莓派等。
AdGuard Home 可以通过安装到您的家庭网络中的服务器来使用,从而拦截网络广告和其他不良内容,从而使您的网络更加高效和安全。
三、AdGuardHome安装
2.1:下载安装程序
注意:下载下来的程序文件解压然后传到路由器或者直接通过wget或者curl命令直接下载下来;下载下来的文件最后在PC端通过upx工具进行压缩,不然解压后的文件比较大,很占用路由器空间。UPX的使用可以查看下面文章里面关于UPX压缩的部分。
程序包下载解压,然后通过UPX进行压缩之后,把执行文件上传到路由赋予执行权限即可。
2.2:安装执行程序
# 把执行文件上传到 /data/AdGuardHome 目录下
mkdir -p /data/AdGuardHome/
cd /data/AdGuardHome/
# 添加执行权限
chmod +x AdGuardHome
# 执行安装,安装完成则自动启动
./AdGuardHome -s install
ss -tnlp|grep 3000
2.3:配置端口转发ADG
转发53端口到ADG(这里我adg DNS监听端口设置为5353)
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
# 检查规则是否添加成功
iptables -t nat -C PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353 && echo "规则存在" || echo "规则不存在"
iptables -t nat -C PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353 && echo "规则存在" || echo "规则不存在"
ip6tables -t nat -C PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353 && echo "规则存在" || echo "规则不存在"
ip6tables -t nat -C PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353 && echo "规则存在" || echo "规则不存在"
# 也可以使用下面的命令检查规则是否存在
iptables -t nat -v --list 和 ip6tables -t nat -v --list
2.4:加入开机自启执行
~# vi /data/auto_ssh/auto_ssh.sh
/data/AdGuardHome/AdGuardHome -s install
/data/AdGuardHome/AdGuardHome -s start
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
四、AdGuardHome配置
2.1:访问引导页面
- 浏览器输入
你的路由器IP:3000进行访问
管理端口为3000,dns监听端口设为5353
注:5353端口为 AdGuardHome 的 DNS 服务器监听端口(重要)
后面就是下一步配置管理员账号、然后下一步保存打开登入仪表板就可以了,我就贴图了。
注意:还有一些DNS的配置等相关的操作,我这里就不展开赘述了,大家可以自行网上搜索相关的资料。
2.2:配置去广告规则
为了更好地发挥 AdGuard Home 去广告的功能,仅依靠默认的过滤规则是不够的,但也不宜过多,过多的过滤规则会影响解析的速度
说明:不要选择网络上哪些多个规则源合集的规则,很容易导致网站无法运行;比如B站使用了那些合集的规则后导致看视频F12看到很多报错,内存一直飙升
OSID规则【推荐】
- 官网:https://oisd.nl/
- 简介:完整的列表阻止了广告、(移动)应用程序广告、网络钓鱼、恶意广告、恶意软件、间谍软件、勒索软件、加密货币劫持、诈骗 … 遥测/分析/跟踪(在不需要正常功能的地方)
- 规则:AdGuard Home 网站(OISD Blocklist Full)
AdRules项目【推荐】
- 项目:https://github.com/Cats-Team/AdRules
- 官网:https://adrules.top/
- 规则:AdRules DNS List
说明:这是个人使用半年之后觉得还不错的规则,网上也可以查询到更多的规则,请自行进行下载配置。
五、国内外分流配置
1、下载域名列表
注意:这个项目提供了很多属于中国大陆的域名列表。这个文件是china list 转发到 dnsmasq,dnsmasq会自动使用pppoe拨号给的DNS;但是由于格式不兼容无法在AdGaurdHome中使用,我们需要对其进行转换。 使用sed命令我们可以很方便将其转化为AdGaurdHome所支持的格式
项目地址: https://github.com/felixonmars/dnsmasq-china-list
cd /data/AdGuardHome/
# 编写脚本
vim china-list.sh
#!/bin/sh
# 国内域名走dnsmas
CHINADNS=127.0.0.1
LIST="$(dirname $0)/dnsrule.txt"
# 国外域名走clash进行代理
cat <<EOF > ${LIST}
127.0.0.1:1053
EOF
# 下载国内域名列表并替换配置内容
curl -Os https://ghproxy.com/https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf && \
sed -i -E "s#server=(\/.+\/)114\.114\.114\.114#[\1]${CHINADNS}#g" accelerated-domains.china.conf && \
cat accelerated-domains.china.conf >> ${LIST}
rm -f accelerated-domains.china.conf
# 执行脚本
chmod +x china-list.sh
./china-list.sh
2、修改AGH配置
- 修改AdGuardHome配置,添加分流配置文件地址
vim /data/AdGuardHome/AdGuardHome.yaml
upstream_dns_file: "/data/AdGuardHome/dnsrule.txt"
3、shellclash配置
- DNS运行模式选择redir_host
- 开启域名嗅探;无需禁用内置DNS,如果禁用需要开启
注意:上面使用iptables方式做了53端口转发,那么需要删除对应的iptables规则
Mark文件里添加 dns_port=5353,这个5353端口要和你adg里设置的保持一致
root@XiaoQiang:~# vim /data/clash/mark
dns_port=5353
DNS部分选择重定向端口,并使用user.yaml配置下面的dns内容,让clash监听在1053;以下自定义配置适用于fake-ip模式
root@XiaoQiang:~# vim /data/clash/user.yaml
dns:
# 设置 true 以启用 dns(默认为 false)
enable: true
# 默认值为false
ipv6: false
# 查找主机并返回 IP 记录
use-hosts: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
listen: 0.0.0.0:1053
# 上游 DNS 服务器.DoH或DoT的流量不会通过代理,所有流量都将定向到服务器。
nameserver:
- 127.0.0.1:53
# 上游 DNS 服务器,与nameserver并发请求,GEOIP国家不是CN时使用的DNS
fallback:
- https://1.0.0.1/dns-query
- tls://dns.google
- https://doh.opendns.com/dns-query
- tls://1.1.1.1:853
- tls://8.8.8.8:853
# 解析dns nameserver主机,填写纯IP(又称为Bootstrap DNS)
# Bootstrap DNS 服务器用于解析您指定为上游的 DoH / DoT 解析器的 IP 地址
default-nameserver:
- 223.6.6.6
- 119.29.29.29
- 1.0.0.1
- 208.67.220.220
- 8.8.4.4
# fake-ip 白名单,又名 Always Real IP
fake-ip-filter:
- "*.lan"
- "time.windows.com"
- "time.nist.gov"
- "time.apple.com"
- "time.asia.apple.com"
- "*.ntp.org.cn"
- "*.openwrt.pool.ntp.org"
- "time1.cloud.tencent.com"
- "time.ustc.edu.cn"
- "pool.ntp.org"
- "ntp.ubuntu.com"
- "ntp.aliyun.com"
- "ntp1.aliyun.com"
- "ntp2.aliyun.com"
- "ntp3.aliyun.com"
- "ntp4.aliyun.com"
- "ntp5.aliyun.com"
- "ntp6.aliyun.com"
- "ntp7.aliyun.com"
- "time1.aliyun.com"
- "time2.aliyun.com"
- "time3.aliyun.com"
- "time4.aliyun.com"
- "time5.aliyun.com"
- "time6.aliyun.com"
- "time7.aliyun.com"
- "*.time.edu.cn"
- "time1.apple.com"
- "time2.apple.com"
- "time3.apple.com"
- "time4.apple.com"
- "time5.apple.com"
- "time6.apple.com"
- "time7.apple.com"
- "time1.google.com"
- "time2.google.com"
- "time3.google.com"
- "time4.google.com"
- "music.163.com"
- "*.music.163.com"
- "*.126.net"
- "musicapi.taihe.com"
- "music.taihe.com"
- "songsearch.kugou.com"
- "trackercdn.kugou.com"
- "*.kuwo.cn"
- "api-jooxtt.sanook.com"
- "api.joox.com"
- "joox.com"
- "*.qq.com"
- "y.qq.com"
- "*.y.qq.com"
- "streamoc.music.tc.qq.com"
- "mobileoc.music.tc.qq.com"
- "isure.stream.qqmusic.qq.com"
- "dl.stream.qqmusic.qq.com"
- "aqqmusic.tc.qq.com"
- "amobile.music.tc.qq.com"
- "*.xiami.com"
- "*.music.migu.cn"
- "music.migu.cn"
- "*.msftconnecttest.com"
- "*.msftncsi.com"
- "localhost.ptlogin2.qq.com"
- "*.*.*.srv.nintendo.net"
- "*.*.stun.playstation.net"
- "xbox.*.*.microsoft.com"
- "*.*.xboxlive.com"
- "proxy.golang.org"
- "*.sgcc.com.cn"
- "*.alicdn.com"
- "*.aliyuncs.com"
- "*.douyin.com"
fallback-filter:
geoip: true
geoip-code: CN
4、重启相关服务
- 重启clash服务使配置生效
- 修改了配置之后,重启AGH服务使其配置生效
cd /data/AdGuardHome/
./AdGuardHome -s restart
5、检查网页端配置
6、检查DNS解析
通过本机PING国内外域名,查看效果;预期为:国内直连真实IP,国外fake-ip,192.168.x.x
声明
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。
版权声明:未经本站作者允许不得转载本文内容,否则将视为侵权。

想查看隐藏内容
查看隐藏内容
shellclash可以配合这几个组件吗
可以的,shellclash上记得做下配置