本教程转自我的博客搭建Nginx+AdGuard Home | 防止DNS劫持 | 过滤广告 - GoodBoyboy 's Blog|惬意小屋-点滴记忆
前言
DNS运营商劫持我相信大家都不陌生了,利用AdGuard Home我们不仅可以自建加密DNS来防止运营商劫持,还可以用来过滤那些垃圾的广告
开始
准备
首先你需要准备一下东西
一台用于挂AdGuard Home的设备
域名一枚
SSL证书一个
脑子
手
开始
这里我们使用docker安装(貌似docker安装会导致无法正确获取到客户端IP),简单方便
下面是官方的docker安装命令
docker run --name adguardhome\
--restart unless-stopped\
-v /my/own/workdir:/opt/adguardhome/work\
-v /my/own/confdir:/opt/adguardhome/conf\
-p 53:53/tcp -p 53:53/udp\
-p 67:67/udp -p 68:68/udp\
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
-p 853:853/tcp\
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
-p 5443:5443/tcp -p 5443:5443/udp\
-d adguard/adguardhome
下面是端口的解释
-p 53:53/tcp -p 53:53/udp:纯 DNS。
-p 67:67/udp -p 68:68/tcp -p 68:68/udp:如果您打算使用 AdGuard 则添加 主页作为 DHCP 服务器。
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp:添加,如果您 将使用AdGuard Home的管理面板以及运行AdGuard Home作为 HTTPS/DNS-over-HTTPS 服务器。
-p 853:853/tcp:如果您打算将 AdGuard Home 运行为 TLS 上的 DNS 服务器。
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp:如果要添加 将 AdGuard Home 作为 DNS-over-QUIC 服务器运行。您只能留下一个 或其中两个。
-p 5443:5443/tcp -p 5443:5443/udp:如果要运行 AdGuard 添加 Home 作为 DNSCrypt 服务器。
然鹅我们根本不需要开放那么多端口
实际上Windows11目前原生支持DOH,Android原生只支持DOT,但是国内服务器是不能架设DNS服务的,国外服务器则DOT端口被秒封。DHCP服务器用路由器上的就可以了,所以我们这里仅保留DOH以及面板所需的端口
我们将443映射到宿主机随便一个端口,这里是55556,下面是docker命令
docker run --name adguardhome\
--restart unless-stopped\
-v /my/own/workdir:/opt/adguardhome/work\
-v /my/own/confdir:/opt/adguardhome/conf\
-p 127.0.0.1:55555:3000/tcp\
-p 127.0.0.1:55556:443/tcp -p 127.0.0.1:55556:443/udp\
-d adguard/adguardhome
启动容器后利用Nginx代理本地55555端口,访问Adguard home,监听端口保持3000,配置管理员信息,完成后进入主界面
然后我们进入设置,在加密设置里配置好自己的SSL证书,然后勾选启用加密,保存。
最后更改Nginx反向代理端口,代理我们之前开的55556端口
访问即可进入主界面
配置DNS
点击设置中的DNS设置,设置上游DNS服务器
这是我配置的上游DNS
https://dns10.quad9.net/dns-query
tls://8.8.8.8
tls://8.8.4.4
tls://1.1.1.1
tls://1.0.0.1
https://doh.opendns.com/dns-query
https://dns-unfiltered.adguard.com/dns-query
然后选择并发请求来提高解析速度
下面是我的Bootstrap DNS 服务器
1.1.1.1:53
1.0.0.1:53
9.9.9.10
149.112.112.10
2620:fe::10
2620:fe::fe:10
保存即可
后面的一些设置根据自己的实际需求设置即可,如果不知道也可以去网上搜索,下面的配置仅供参考
广告拦截
然后就是我们的重头戏!!!
点击“过滤器”-->“DNS黑名单”
在里面添加广告拦截规则
下面是我在网上收集的好用的集合
Xinggsf 乘风过滤 https://github.com/xinggsf/Adblock-Plus-Rule/blob/master/rule.txt
anti-AD https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt
easylistchina https://easylist-downloads.adblockplus.org/easylistchina.txt
easyprivacy https://easylist-downloads.adblockplus.org/easyprivacy.txt
anti-AD-adguard https://anti-ad.net/adguard.txt
并不是添加的越多越好,过多规则只会减慢解析速度
上面的规则已经能屏蔽掉大部分广告了(包括Android恶心的开屏广告)
使用
一切配置完后我们就需要部署客户端这边了
Windows上以管理员身份打开cmd
netsh dns add encryption server=<resolver-IP-address> dohtemplate=<resolver-DoH-template> autoupgrade=yes udpfallback=no
其中<resolver-IP-address>是服务器的IP地址,<resolver-DoH-template>是模板,也就是像https://dns10.quad9.net/dns-query这样的
然后在设置中更改即可,详情可以去网上搜索
Android这边要用第三方软件辅助使用DOH,感觉Intra这款软件就很不错
后记
教程写得有点粗糙,如果有什么不会的地方可以在下方留言哦~
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GoodBoyboy 's Blog|惬意小屋-点滴记忆!
版权归原作者 「已注销」 所有, 如有侵权,请联系我们删除。