Posted in Network

让v2ray、Shadowsocks等软件搭配AdGuard DNS实现广告屏蔽效果

可能很多人第一时间想到的是在服务器端搭建AdGuard Home之类的程序,其实这是毫无必要的,因为事实上AdGuard Home不过是一款开源的本地广告拦截程序,而AdGuard官方早就提供了一个免费的DNS解决方案,只要把服务器的DNS改成AdGuard DNS即可。

那么是否有必要把整个服务器的DNS改为AdGuard DNS呢?其实也没必要,因为你的流量全部都是通过v2ray、Shadowsocks转发的,你只要把v2ray、Shadowsocks的DNS设置更改即可。

修改v2ray、Shadowsocks的config文件,添加一行:

 "nameserver":"94.140.14.14"

这行代码将会指定服务器端的v2ray、Shadowsocks程序通过AdGuard DNS访问网址,然后转发被过滤后的信息,自然也就达到了屏蔽广告的效果。修改配置文件后,需要重启一下v2ray、Shadowsocks的进程(或者重启服务器),以重新加载配置文件。

但是,如果你自己并没有修改服务器配置文件的权限,或者不知道怎么修改配置文件,有没有其他方法呢?当然有,那就是直接在v2ray、Shadowsocks客户端内手动指定DNS地址为 94.140.14.14。找到软件客户端内带有DNS设置的选项,自己尝试配置。

配置完成后,我们可以访问一些测试网站来查看屏蔽效果,比如https://d3ward.github.io/toolz/src/adblock.html。经过本人实测,AdGuard DNS的有效率高达87%,已经算是非常厉害了,日常使用完全足够。

使用AdGuard DNS的缺点在于会增加一定的网络延迟,尤其是访问国内网站时,会感受到明显的卡顿。境外DNS服务器对国内网站的优化都不算太好,即便是最常用的8.8.8.8,有时也会掉包、暂时无法访问,或者把网站解析到其他地方去。但目前来说,AdGuard DNS在国内的访问还算稳定,延迟也不算太高,为了过滤广告,这点忍耐不算什么。

知道上面这点后,你就应该了解到,如果偶尔发生无法联网的问题,并非是节点故障,很有可能是DNS服务器解析失败了,这时候需要你重新指定一下DNS服务器,比如国内的阿里云DNS 223.5.5.5

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.