Posted in Network

利用v2ray内置的规则屏蔽广告

不管是v2rayN还是v2rayNG,都默认包含两个dat文件,这两个dat文件中包含了大量规则,其中就有广告域名的收集。

https://github.com/v2ray/domain-list-community/blob/master/data/category-ads

https://github.com/v2ray/domain-list-community/blob/master/data/category-ads-all

列表中每行规则开头的include的作用是包含(内嵌)其他文件,可以看到每个网站、广告供应商都有一个专有合集,总数量十分庞大。而category-ads-all则include了category-ads,因此前者是后者的一个增强集合,不过扩展的内容并不多。

有了这个概念后,只需要启用这个规则即可。启用的方法是:

首先,打开流量探测功能(想要实现屏蔽效果就必须开启)。

然后,找到软件设置项的自定义规则,在blocked选项中填入geosite:category-ads-all。其含义是启用属性为geosite的category-ads-all规则,而对匹配到这些规则的流量进行block(屏蔽)处理。

但是这个方法的缺点是只适用于域名变化不大的广告供应商,现在很多供应商会经常更改域名,或者使用其他手段进行广告投放,所以实际效果并不理想。而且在v2ray的层面阻断广告流量的进入后,常常会导致某些内容无法继续加载。

目前最常用的屏蔽广告的方法还是首推浏览器插件,比如Ublock Origin。其次是系统级的广告屏蔽软件,比如Adbyby。相比较而言我更推荐前者,因为后者在安全和隐私上存在隐患(不是指Adbyby这款软件,而是指所有系统级的广告屏蔽软件)。

为什么会有隐患呢?因为现在几乎所有的流量都是https加密的,而广告过滤软件为了达到效果,会劫持所有的加密流量,然后自己来解密,实现方法是启用自己的根证书。杀毒软件之所以能拦截https流量,就是在系统中植入了自己的根证书。

但是杀毒软件基本都是老牌、大牌公司,盈利模式也比较清晰;广告拦截程序则不然,公司体量小,盈利模式很模糊,除了用爱发电很难有其他空间,难免会走歪路,赚昧良心的钱。而且广告拦截这东西因为会触及广告商的利益,所以很容易遭受打击,国内曾经比较火的广告拦截软件大多倒闭解散了。盈利困难加上受到重拳打击,不赚快钱的可能性自然比较低。

浏览器插件的原理就有所不同,流量的加密、解密还是由系统、浏览器完成的,只是在后续的网页加载上进行了处理,所以没有安全隐患。

那么,为什么那些广告拦截软件不像浏览器插件一样工作呢?这是因为广告拦截软件是一款系统级软件,权限上就大很多,劫持全部的https流量会很便捷。此外,广告拦截软件不像浏览器插件一样有修改网页页面的能力(不是做不到,只是真的要去做就很复杂了),所以它们只能简单粗暴的从源头就阻断链接的访问。

当然,从实现的原理上讲,广告拦截软件可以拦截整个系统的广告,而浏览器插件只能拦截网页广告,但是从日常使用角度看,只拦截网页广告就能满足需求,没必要拦截整个系统。

浏览器插件和规则往往由众多开发者和爱好者维护,是真的用爱发电,而且基本是开源的,又无盈利行为,导致广告商们也无可奈何。况且只是屏蔽网页的广告,从实质上讲不涉及对网页的篡改,法律风险较低。但是国内已经有多起起诉,起诉对象一般为屏蔽工具的作者、分发者、盈利者。

如果一定要选一款系统级的广告软件,我推荐使用老牌的AdGuard,至少在安全性上很有保障。另外还有一款Ad Muncher,但是容易水土不服。现在很多杀毒软件也自带广告过滤功能,但是同样容易水土不服。不过,前面说到杀毒软件也可以劫持https流量,因此是一把双刃剑。非常注重隐私的朋友是不用杀毒软件的,因为杀毒软件就把你的隐私看光光了。

顺带一提,部分系统级广告拦截软件有着强大的屏蔽效果,比如国内的XX视频网站,浏览器插件都搞不定(展示几十秒的黑屏广告),它们却能搞定,这是为什么呢?因为它们使用了替换大法,解析了视频的真实地址。部分浏览器插件也采用了替换大法,通过替换播放器以绕过广告。但是这种做法就不止是拦截广告那么简单了,属于侵权行为,所以也就一开始有人做这种软件,后续就没人做了,法律风险太高。

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.