感谢 BeLittleYang 的投稿!Pi-hole 是一个很实用的系统,取出抽屉里吃灰的树莓派,开始服役发挥余热吧~
最近在使用DietPi这个魔改版Raspbian系统时意外的发现了这个神奇的软件(软件主页:https://pi-hole.net/,正如标题所说,它可以帮你过滤整个家中的广告,但不需要繁琐地针对每台设备进行设置,算是对非智能路由及低性能路由无法过滤广告的一种解决方案。
下面就讲解一下具体的安装方法咯。
注:同样适用于其他Linux设备
0.开始之前
首先你需要为你的树莓派安装好系统,然后你可能需要针对自家的网络环境为你的树莓派设置好静态IP,不同的路由器设置方法有一定差别,具体方法自行百度(关键词:路由品牌 静态IP)。
例如我刷了LEDE的路由器的设置在这里:
不过近几年的路由器大多会针对不同的设备设置固定的IP地址,所以如果你确定自己树莓派的IP地址不会变动,不设置也是OK的。
1.安装Pi-hole
Pi-hole的安装过程比较简单,只需在终端中输入一条命令即可:
curl -sSL https://install.pi-hole.net | bash
安装过程中你可以喝杯咖啡,看会儿书,刷会儿微博,直到你进入这个界面:
一路Enter,直到这里:
选择其中一个DNS提供商,或者选择最后一项自定义:
选好之后接着一路Enter,然后你继续可以喝杯咖啡,看会儿书,刷会儿微博,直到这里:
这时就已经安装完成了,访问上面给出的网址,输入密码即可进入后台。
如果需要修改密码,在终端中输入:
pihole -a -p newpassword
新的密码就设置好了。
2.配置路由
光设置好树莓派是没卵用的,毕竟我们要过滤的是整个局域网的广告,所以我们要针对路由器进行配置。
Pi-hole采用的是使用本地DNS服务器的方式在局域网中进行过滤,所以我们需要设置Pi-hole为当前网络的DNS。
方法1
这种方法适用于大部分路由器,直接将DNS设置在路由器上。但需要注意的是,应当将DNS设置在LAN接口上(区别于WAN),在我这里是这样的:
方法2(推荐)
这种方法适用于一些刷了OpenWRT(LEDE),DD-WRT,Tomato等自定义程度较高固件的路由器,推荐使用该方式
在DHCP选项中填入:6,树莓派IP地址
注:若使用该方式,建议将上游DNS设置为路由器
方法3
如果这些选项在你的路由器里都没有,Pi-hole也内置了一个DHCP服务器,具体设置方法不多阐述。
方法4
如果你愿意的话,你也可以针对每一台设备进行设置,方便针对不同的设备进行过滤,具体设置方法不多阐述,自行百度。
不管你使用的哪一种方式,设置完之后都建议重启一下路由器或开关一下飞行模式,让设备使用新的DNS。
3.配置Pi-hole
实际上进行完上面的步骤就已经可以使用了,下面就针对一些常用的功能进行说明。
过滤规则
过滤的规则在这里,可以看到已内置了一些规则:
实际上,Pi-hole使用的是hosts方式对广告进行过滤(类似AdAway),默认的规则对于国内环境不太友好,下面就附上适用于国内环境的一些hosts:
- yhosts:可以说是国内比较不错的hosts,定期有更新,奈何作者的唯我主义连带屏蔽了一些非广告网站,可以在终端中手动添加白名单:
pihole -w `curl -sSL https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/cps.txt https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/error.txt https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/hate.txt | sed '/^@/d; /^#/d; s/127.0.0.1 //' | tr "\n" " "`
- neoHosts:比较小众的hosts,看介绍貌似是不满于上面那位而弄出来的。
- MWSL-hostslist:恶意网站实验室可能没多少人知道,不过其提供的OneDNS可就算是比较有名的了,这个hosts正是OneDNS中所用于屏蔽恶意网站的规则。
- AdAway:也就是安卓上的AdAway所使用的规则,不过针对中国误杀现象严重,慎用。
如果还有哪些不错的去广告hosts,欢迎在评论区中留言。
相较于通常的过滤方式(如Adblock Plus、KoolProxy等),利用hosts过滤有自己的优缺点。优点是不会拖累网速(甚至可能有一定提升),缺点是过滤效果不尽如人意。
不过如果你要是想要利用这个做一些有违我国国情的事情,放心,那样的话就相当于在你家里再上了一道防火长城(Pi-hole只能将规则中的网站解析到自身以进行屏蔽)。
黑白名单
顾名思义就是对过滤规则的手动调整,黑名单分为匹配和通配两种,建议那些整天说退游的同学可以试试。白名单主要是针对一些有防过滤广告或被误杀的网站。
隐私设置
在这里你可以设置让一些不想在日志中出现的网站或设备隐藏起来,至于有什么用嘛……那各位自己心里的B数都很清楚啊……
Pi-hole上的一些其他高级功能这里就不多赘述了,有待自行探索。
4.Enjoy it!
到这里关于Pi-hole的全部设置就完成了,打开浏览器访问一些广告较多的网站,看看广告是否被屏蔽了、仪表盘上的数字是否增加,如果没有再仔细按照上面的步骤检查一遍,尤其是关于DNS设置的部分。
好了,和广告Say Goodbye吧!
相当于树莓派做路由器喽?再在路由器里安装ABP,搞机不错。
并非是作为路由器,而是作为DNS服务器
一直没找到中文的 hosts,非常感谢!
教大家屏蔽广告,你这边 Google 广告的收入也没有了吧,哈哈
请问下如果树莓派宕机,家里网站是不是不能访问了
如果作为专用DNS服务器是有可能这样,不过可以再设置一个外网的DNS服务器
你的路由器里一般能设置两个dns。主要的dns设置成这个树莓派的ip,备用的设置成你本来用的。这样的话就算树莓派宕了你还能上网。
实测效果不够理想,广告屏蔽效果和ABP相比差的比较多。加入的规则比较多,不知道为什么还是不行。
我在github上找到一个还行的
https://github.com/privacy-protection-tools/anti-AD
他是利用别家的几个hosts再综合组成一个新的列表。在pi-hole里用起来还不错。pi-hole里屏蔽列表装了很多个,应该有重复的,不知道会不会影响性能。所以我装了这一个,其他的都给停止了
安装前拒绝连接是怎么回事