这几天玩手机,被各种软件的开屏广告、页面内广告给恶心到了,然后最开始使用shadowrocket的规则来去除广告,但是新的问题出现了,我每次都需要手动去开启shadowrocket,因此运用所学知识,写了一个新的去广告的技巧,介绍去广告之前,我们先介绍什么是DNS,等我们了解DNS,也就知道了DNS去广告的原理。
该方法不能保证可以去除100%的广告,因为并不是所有广告都是通过广告商API来获取的,同时广告商也会通过各种手段来规避该方法,但经过测试,大部分软件的开屏广告已经没了,我的目的已经达到了,所有我也就不说其他方法了
什么是DNS?
DNS是 (Domain Name System) 的缩写,中文名为“域名系统”,它是一个将域名与IP地址进行相互映射的分布式数据库,可以将用户输入的域名转换为可直接又机器读取的IP地址串,实现便捷的网络互连。DNS由域名解析器和域名服务器组成的。通过它可以把你需要访问的网址找到然后把信息发送到你电脑上。
DNS有什么作用?
简单来说就是域名到IP地址的转换,但为了显得我专业,下面用一点专业词汇。
回答这个问题,我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。
但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。
域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP地址。而DNS承担的就是这种翻译效果。
去广告
使用DNS去广告说简单也不简单,说难也不难,我们需要找到一个具有去广告的DNS服务器即可,之后我们可以在各种设备上配置DNS服务器即可,不过更为简单的方法是,如果你拥有一定的计算机知识,你可以在你的路由器上配置DNS,这样便可以免除在不同的设备上配置的麻烦。
这里我展示在路由器上配置DNS免广告的方法,很简单的步骤,只需要在拨号上网中,设置可以去广告的DNS即可。
DNS服务器
提供一些拥有去广告的DNS服务器。
- AdGuard DNS — 拦截广告的 DNS 服务器 (adguard-dns.io)
我目前正在用的,一个老牌的浏览器去广告插件,他同时也提供了DNS去广告的服务,但是对国内网站貌似不太友好,存在误杀情况
-
无意中搜到的一个DNS,国内自发搭建的
-
同18bit DNS一样,也是国内自发搭建的
如下的几个是没用过,只了解过的,但是这里也贴出来供参考
- NextDNS – 为现代互联网而生的新型防火墙
- Cloud Delivered Enterprise Security by OpenDNS
- CleanBrowsing | DNS Filtering Platform
关于为什么某些地区、设备配置了DNS去广告但仍然失效
DNS服务器失效的原因有很多,例如
- ISP(互联网服务提供商)DNS劫持
- DNS服务器故障,或者没有特定广告的过滤规则
- 防火墙阻止了DNS查询
- 路由器无法正确转发DNS请求
- DNS解析结果被本地缓存
- 等等一系列问题