系统运维 / 路由交换

玩转路由器:AdGuardHome安装,实现全网设备去广告和国内外分流

浅时光博客 · 12月18日 · 2023年 1.6w 次已读

一、安装环境和准备工作

同样,本文紧密结合之前分享的关于 Redmi AX6000 路由器实现科学上网的内容。之前,我们也分享过另一篇关于 msodns 软件实现国内外流量分流的教程。您可以在以下链接查看之前的文章,然后与本文进行对比,选择适合您自建需求的软件。本文基于AdGuardHome实现国内外流量分流,并导入去广告规则以实现所有设备的广告拦截。然而,请注意,AdGuardHome的广告拦截效果比浏览器去广告插件的去广告能力弱很多(这个没办法,检测机制不一样)。

二、AdGuardHome介绍

AdGuard Home 是一种开源的网络广告和跟踪器拦截软件,它可以在您的家庭网络中拦截广告、恶意软件、跟踪器和其他有害内容。AdGuard Home 是一个 DNS 服务器,它通过过滤广告和追踪请求来防止它们被加载,从而使您的网络更加快速和安全。AdGuard Home 的主要功能包括:

  1. 广告拦截:AdGuard Home 可以有效地阻止广告在浏览器和应用中的显示,从而提高浏览速度。
  2. 隐私保护:AdGuard Home 可以拦截跟踪器和分析工具,从而保护您的隐私,同时防止恶意软件和恶意网站的攻击。
  3. 家长控制:AdGuard Home 允许您控制网络中的内容,阻止不良内容,同时允许您设置过滤规则和白名单。
  4. 跨平台支持:AdGuard Home 可以在多种操作系统上运行,包括 Windows、macOS、Linux 和树莓派等。

AdGuard Home 可以通过安装到您的家庭网络中的服务器来使用,从而拦截网络广告和其他不良内容,从而使您的网络更加高效和安全。

三、AdGuardHome安装

2.1:下载安装程序

注意:下载下来的程序文件解压然后传到路由器或者直接通过wget或者curl命令直接下载下来;下载下来的文件最后在PC端通过upx工具进行压缩,不然解压后的文件比较大,很占用路由器空间。UPX的使用可以查看下面文章里面关于UPX压缩的部分。

文章来源(Source):https://www.dqzboy.com

程序包下载解压,然后通过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/
  • 简介:完整的列表阻止了广告、(移动)应用程序广告、网络钓鱼、恶意广告、恶文章来源(Source):浅时光博客意软件、间谍软件、勒索软件、加密货币劫持、诈骗 … 遥测/分析/跟踪(在不需要正常功能的地方)
  • 规则:AdGuard Home 网站(OISD Blocklist Full)

AdRules项目【推荐】

说明:这是个人使用半年之后觉得还不错的规则,网上也可以查询到更多的规则,请自行进行下载配置。

五、国内外分流配置

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#[]${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

声明


免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

版权声明:未经本站作者允许不得转载本文内容,否则将视为侵权。


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/16007.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

4 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. wa2der广东·珠海2024-5-14 · 22:42

    想查看隐藏内容

  2. miikasa上海2024-1-19 · 20:23

    查看隐藏内容

  3. miikasa上海2024-1-19 · 10:42

    shellclash可以配合这几个组件吗

    • 浅时光博客2024-1-19 · 14:45

      可以的,shellclash上记得做下配置