软路由屏蔽广告 软路由屏蔽广告原理

很多用户发现,很多网站的广告简直是丧心病狂,网页一半都是广告,还有一些是闪屏广告、跟进广告、弹窗广告、强制观看、隐私窃取等恶意广告。简要介绍广告直接在路由器(软路由)中

本文最后更新时间:  2023-03-18 14:18:43

很多用户发现,很多网站的广告简直是丧心病狂,网页一半都是广告,还有一些是闪屏广告、跟进广告、弹窗广告、强制观看、隐私窃取等恶意广告。简要介绍广告直接在路由器(软路由)中拦截(屏蔽),让家用电脑、手机、平板等设备有效投放广告,给用户耳目一新的阅读浏览效果。

PS:友好、美观、恰当的广告不会给用户带来不便;相反,广告是一个网站和应用程序的最大收入来源。

广告通用技术的实现

DNS过滤(典型:AdGuardHome)把广告相关的DNS请求禁止,只允许非广告请求通信拦截发生在网络请求开始之前适合于路由器等设备,一次设置,全家庭内网生效无需对接入家庭内网设备有特殊设置仅能通过域名进行广告识别,对于广告域名与内容域名相同的无能为力,无法针对页面内容过滤浏览器插件(典型:AdBlock)根据浏览器发出的请求地址、返回页面内容过滤广告拦截发生在网络请求开始之前与请求结束之后仅适用于网页浏览器,其他非浏览器应用无效每个设备,每种浏览器都需要额外安装插件可以对域名,请求,网页内容进行广告识别流量过滤(典型:KoolProxyR)类似一个全局过滤器,全网流量都通过这个过滤器。针对加密请求(如https等),需要采用类似中间人攻击(MIMT)方式进行拦截。拦截发生在请求开始之前、之后适合于路由器等设备,一次设置,全家庭内网生效需要为客户端安装假证书(实现MIMT解密流量)可以对域名、请求,页面内容进行广告识别

以上所有技术方法,拦截机会和识别点越多,理论效果越好。但是有一个最重要的东西没有提到——规则库。

与杀毒软件类似,杀毒效果取决于核心病毒库的质量,去广告效果也取决于其规则库的质量。

广告规则库的维护难度远高于病毒库,病毒生成速度相对稳定,但广告不是。全球有几千万个网站,每天展示几百亿个广告,由于广告植入方式变化频繁,规则库的维护非常困难。

另外,互联网的核心思想是羊毛出在猪身上。网站运营需要成本,不收用户钱。网站只能依靠其他方向获取收入,广告是主要来源。因此,几乎所有的网站都抵制去广告的技术(通常,KoolShare论坛禁止讨论类似的技术)。

为了保证收益,他们会根据去广告技术的发展不断改变广告插入方式,从而规避去广告软件的操作。所以广告和去广告一直在不断的斗争中发展。因为广告投放方式的改变,一个有效的屏蔽规则很可能在一夜之间完全失效,或者有些网站即使屏蔽了广告展示也能让你等待固定的时间才能获得内容(典型的视频网站)。

从长远来看,广告有利于当前互联网网站和用户的生存(如果所有网站都赚不到钱,最终将不得不倒闭,最终用户将遭受损失)。对于作者本人来说,我认为需要屏蔽的其实是恶意的、强迫性的、诱导性的广告、木马钓鱼链接、隐私收集等垃圾信息。对于那些对日常生活、娱乐、学习有很大帮助的网站,做出贡献或者主动点击广告表示支持,帮助网站更好的发展,是一种双赢的做法。

去广告技术原理

上网的过程在技术上是浏览器通过HTTP协议从远程服务器发回内容并显示的过程。浏览器需要建立TCP连接与服务器连接,通常会有很多连接。广告请求和我们的普通请求在传递方式上没有区别,是混在普通请求里的。

如何屏蔽广告?两步

识别拦截

识别就是从HTTP请求中识别出那些广告请求。目前还不能单纯通过返回内容来判断这个HTTP请求是不是广告(AI成熟的时候应该可以)。现在的技术只能在请求地址上做文章。请求URL(地址)包含域名和特定的资源访问路径。现在,通过域名和对资源的访问路径更容易判断这个请求的性质。目前类似的方法都是基于这种识别思路。

它被识别,然后被拦截。有两种拦截方式:

(1)域名法。其实上网的请求分两步。第一步,域名通过DNS解析,返回给目标服务器的IP。第二步,通过IP建立与远程服务器的TCP连接,通过HTTP传输内容。域名的方式就是在DNS上做文章。当发现请求是广告请求时,会直接返回域名不存在或无效IP,并阻止TCP连接建立。这种方法的优点是简单、快速,并且不干扰正常的TCP连接。缺点是DNS只能得到域名,不能得到完整的URL地址,所以不能过滤一些URL特征。好在现在广告普遍是嵌入式的,也就是普通网站嵌入一个广告的链接。通常情况下,广告都有一个相对明确的域名(通常广告的域名与访问网站的域名是不相连的),所以可以达到很好的效果。这也是目前大多数方案的原理。

(2)流量过滤方法。典型的就是著名的koolProxyR。建立了一个TCP代理。所有流量都流经代理。代理可以获得所有请求的URL,并根据规则决定是否释放这些请求。好处是可以通过这种方式获得完整的请求,并且可以过滤域名以外的内容,甚至可以在AI成熟后识别内容。但也有缺陷,性能损失是一个,但绝对不是大问题。最大的问题是,现在网站基本都是HTTPS请求,浏览器会检查目标网站的证书,以确定是否连接到真实地址。这也使得传统的HTTP劫持几乎无法生存。即使浏览器被强制连接到虚假网址,虚假网站也无法出示真实网站的证书,浏览器会报警。目前,越来越流行的HTTPS已经严重影响了koolProxyR的类似过滤方案,因为它充当了浏览器发起的请求的代理,它只是到真实服务器的中转。由于连接内容完全加密,无法读取,甚至连网址都无法获取,无法拦截。

当然,koolProxyR的类似方案可以通过为每个目标网站制作一个假证书来过滤URL和内容,伪装成浏览器想要访问的真实网站,但这样会产生额外的问题。

需要为所有网站伪造证书,伪造证书的根证书比如放到每个浏览器的信任根里。通常家里会有很多设备上网,PC还好,平板,手机,家用摄像头、PS4、XBOX等等就麻烦了。当然,还可以为这些设备设置白名单,就是不过滤,但无形中还是增加了维护难度。某些应用不接受伪造证书。典型金融类应用,各种支付,网银,银行应用,部分电商,它们会严格校验服务器的证书链,伪造证书根本不被接受。这类应用在koolProxyR之类环境下是无法工作的。

因此,流量过滤不再是摆脱广告的首选方式,基于域名的方案成为主流。

当然,也有一些基于浏览器插件的解决方案,也很有效。浏览器插件可以精细过滤域名、网址甚至页面内容。但问题是它只能适用于浏览器,通常是PC,不能像DNS方案一样适用于整个家庭网络。

Lede固件采用AdGuardHome作为去广告方案,基于DNS技术实现。DNS的技术特点是过滤请求的域名,过滤的核心是规则文件。类似于杀毒软件的病毒库,AdGuardHome可以挂载各种广告规则数据库。其准确性取决于规则库。

现在复习一下开题。

为什么启动了去广告还是可以看到广告

你看到的广告在规则库中没有被屏蔽,或者这个广告和站点正文有相同的域名,AdGuardHome根本无法删除。

广告已经升级了。目前不包含在规则库中,无法阻止。

为什么有些站点显示不了了

规则库误伤了一些“正常站点”,或者规则库以为你在访问广告,其实你并不这么认为(其实你之前以为正常的其实是广告链接)。

现在都是https了,去广告技术没用了

基于DNS的去广告方案,独立于使用协议。甚至其他协议也可以工作,只要它们涉及DNS解析。

遇到异常访问怎么办?

遇到网站访问异常,想确认是否与广告有关,该怎么办?

Http://192.168.1.1:3000打开AdGuardHome管理接口(请根据实际情况修改路由IP)

用户密码是root。

在首页,左上角的Logo附近,有“禁用保护”的字样。单击禁用广告过滤,然后再次单击开始。

此外,DNS缓存也可能影响站点访问,任何人都可以通过断开网络接口、重新连接、重启计算机、重启路由来实现。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。