文章目录
Toggle文章介绍了如何利用腾讯云的公共DNS服务(dnspod)实现去广告和保护隐私的功能,无需自行部署AdGuard Home。通过配置DNS拦截规则,可以屏蔽广告和追踪域名。文章详细说明了开通服务、开启过滤规则以及替换原有DNS的方法,包括普通DNS和加密的DoH/DoT方式,并提供了适用于家庭网络的自动绑定IP脚本。很早之前,我曾提到在内网部署AdGuard Home以实现家庭网络的广告屏蔽和隐私保护,但此方案需要在自有设备上完成部署,并且在外出时进行公网访问也显得不够便捷。相比之下,腾讯云(dnspod)早已提供公共DNS服务,支持广告屏蔽功能。因此,我们无需部署任何服务,就能实现与AdGuard Home相似的效果。
一、相关基础知识
首先,需要了解为何使用特定的DNS可以实现广告屏蔽和隐私保护的功能。我们访问互联网内容的第一步通常是进行DNS解析——它负责将网址(如example.com)转换为实际的IP地址。通过使用经过配置的特殊DNS(如AdGuard DNS),这些服务在接收到解析请求时,会识别并拦截已知的广告域名、追踪器域名或恶意网站,返回无效地址或直接屏蔽,从而实现广告屏蔽和隐私保护的功能。而一般的公共DNS则不具备这些功能,因此我们通常需要在浏览器中安装相关插件或在内网部署AdGuard Home等解决方案。
然而,内网部署AdGuard Home在外出时无法使用,毕竟不可能在外出时依赖家庭内网的DNS。虽然我之前也提到过在公网部署AdGuard Home,但这需要自有服务器,并伴随一定的风险。既然已有现成的公共DNS能够实现上述功能,直接使用公共DNS显然更为便捷。
二、开通服务与开启过滤规则
关于开通服务的过程,我就不再详细说明(因为我是好几年前开通的,早已没有相关图片)。开通该服务没有特别要求,也不需要您在腾讯云上拥有任何服务(无需域名服务,点击即可开通)。准确来说,应该是dnspod,但自从dnspod被腾讯收购后,几乎所有服务都可以在腾讯云控制。您只需在腾讯云-云解析-公共DNS中开通该服务,完全免费,并且无需在腾讯云上拥有域名,费用为零。

开通后会每个月送300万次的解析次数,正常情况下是根本不会耗尽,所以放心用。

默认是不会开启任何拦截规则的,需要手动开启,这里就可以看到拦截规则里面就有Adguard的规则,所以腾讯云这个公共dns拦截效果是和Adguard差不多的,至于剩下的规则,可以看自己需求,我建议是最下面的分类目录不用开启,其他的都开。

三、替换原dns
这里分为两种形式,一种是普通的dns,另一种是用doh(dns over https)/dot(dns over tls),后者是带加密,且不用绑定自己的ip地址,我建议是直接使用doh/dot,更安全也免去了绑定ip的步骤。

先说使用doh/dot的形式,我这里只说一下电脑版要如何配置,手机浏览器等设备可以直接看官方文档,我这就不废话了。电脑在网络设置里面找到dns,然后开启doh,把腾讯云分配给你的dns填入就行。




需要注意的是,安卓目前不支持doh只支持dot,而dot目前是不支持拦截规则和黑白名单,所以如果是使用的安卓用户,需要使用常规的dns并绑定ip。
如果是在家庭网络,可以直接使用普通的公共dns,但是如果要过滤规则那些服务,是需要绑定对应ip(自己宽带的ip地址,不限于是否有公网),官方只给了个绑定ip的url,我这里给出个开机自启脚本,这个脚本放在内网的某个设备,开机自动运行,每过5分钟会自动访问一次那个url实现绑定自己的ip,我这个只适用于alpine系统,其他系统可以自行修改命令,直接把下面的命令粘贴复制到终端内:
cat > /etc/init.d/auto_bind <<'EOF' #!/sbin/openrc-run name="Auto Bind DNS" description="Bind to DNS every 5 minutes" command="/bin/sh" command_args="-c 'while true; do curl -s https://link.dns.pub/aaaa/aaaaa; sleep 300; done'" command_background=true pidfile="/run/${RC_SVCNAME}.pid" EOF chmod +x /etc/init.d/auto_bind rc-update add auto_bind rc-service auto_bind start
这样的话就可以把dns更换成腾讯云普通的公共dns地址,绑定了自己网络ip也就能过滤广告那些。
原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/resource/898.html