侧边栏壁纸
博主头像
Blog

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

AdGuard home过滤手机广告——服务端

Administrator
2025-03-16 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

前言

本文使用远程vps搭建Adguardhome并使用DoH来实现递归形DNS的搭建。可能有人说为什么不用nas,这样不是徒增延迟吗?确实这样延迟会提升,但是并不是每个人都有nas的,像我这种四海为家的人就没有 xhj014 (本文如有出错或者大家有更好的方案,欢迎指正和分享~)
并且nas只能内网使用,当你出门在外的时候只能通过内网穿透或者异地组网的形式使用,也是需要有具有公网ip的设备。

搭建环境

claw$4款(继微信机器人后又一个搭建在claw的项目,买值了~),本地ping 223.5.5.5延迟为67ms,本地ping claw延迟27ms,claw ping 223.5.5.5延迟为2~3ms(某种意义上我甚至速度变快了?!!)

开始搭建

本文使用docker环境搭建,适合折腾(nginx不在docker中)

docker run --name adguardhome    --restart unless-stopped    -v /root/adguard/workdir:/opt/adguardhome/work    -v /root/adguard/confdir:/opt/adguardhome/conf    --network host    -d adguard/adguardhome

这里使用的不是端口映射,而是直接接入host,这是为了方便后续使用EDNS,如果端口映射使用的不好可能会出现EDNS识别到的是docker内部的ip,导致变慢(血与泪的教训)
随后便可以使用http://ip:3000 访问面板,首次访问面板会让你设置账号密码以及端口,把面板地址改成3000(因为80端口相当珍贵,我们使用nginx可以反代443到3000。绝对不是因为我一开始nginx反代到了3000懒得改
随后我们进行配置DoH和nginx,这里自备域名和证书
nginx配置如下

server {
    listen 443 ssl;
    server_name <你的域名>;

    ssl_certificate <你的证书路径>;
    ssl_certificate_key <你的密钥路径>;

    location / {
        
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:3000;
    }
    location /<自设路径> {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass https://127.0.0.1:<你设置的DoH端口>/dns-query/<你想设置的用户id>;
}

}

上面的location中反代了面板和DoH,这里我使用的是同个域名,这样真实的https流量与DoH流量在外网看来使用的同一域名,端口和证书,更加能防探测
之后在AdGuard Home面板中的加密设置进行设置
1741930578433.png
证书和密钥自行设置,我是直接复制粘贴上去了我nginx中的证书密钥(需要在https访问的情况下修改)
这里我设置的https端口是8443,所以上面nginx反代的端口应该为8443
保存后就可以使用DoH了,DoH的网址为
https://<你的域名>/<自设路径>

微调

在dns设置中,如果vps性能和网络不吃紧,建议使用并行,更快。当然为了安全性,这里也可以设置上游厂商的DoH和DoT,更加安全,但是也会增加延迟。
1741930861699.png
之后开启EDNS,EDNS是让你DNS解析下来的ip在客户端附近,这样就不会因为你vps在香港就给你解析到国内网站在香港的cdn(这个对速度影响极大,可以自行用b站做测试),自用的话,把速率限制改成0
1741930994355.png
DNS缓存配置看自己,想更快可以调大点,看需求
随后是访问控制(这个是安全性设置,也能方便看记录,建议设置),填写的是上面nginx反代让你填写的用户id,这样只有使用这个路径才能使用,并视为一个用户
1741931214579.png
随后就是喜闻乐见的过滤规则辣
1741931386005.png
规则不要太多,太多第一会影响DNS解析速度,第二会误杀,下面是我使用的规则,供大家参考(这里我也求一些好用的规则,欢迎大家分享)
https://cdn.jsdelivr.net/gh/o0HalfLife0o/list@master/ad.txt
https://anti-ad.net/easylist.txt
https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt
https://easylist-downloads.adblockplus.org/easylistchina.txt
https://gcore.jsdelivr.net/gh/217heidai/adblockfilters@main/rules/adblockdns.txt
至此,配置结束

注意事项

1、搭建这个的机子线路一定要好,不然一定会卡死你
2、nginx设置的路径不要以dns或者doh开头,也不要以dns-query结尾,这种就属于自报家门了

展示与总结

服务器状态图

服务器dns日志

1741932021462.jpg

1741932443532.jpg

QQ动态广告被屏蔽
1741932075692.jpg

短视频平台广告消失(以前每4-5个视频出现个广告)

1741932120403.jpg

当然,单单dns拦截并不能完全拦截,比如我发现失败的就有电信app和itdog。
后面估计还会出个客户端配置篇,但是由于涉及代理,估计是发内板,如果对你有帮助,给个鸡腿吧~~~
客户端篇出来了

0

评论区