安装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吧!

本文来自:树莓派实验室

 

“安装Pi-hole,让树莓派为你过滤家中广告”的3个回复

    1. 先说解决的方法有两个。假设你装pihole和OC的设备IP是192.168.0.2,且站点文件都存放在/var/www/html目录下。那么访问pihole是192.168.0.2:80,此时OC也是用:80端口,并且在/var/www/html目录下只有一个index,这个index就像一个引导文件,一旦覆盖只会访问后安装的那个站点。(注:80端口是访问网页默认端口,不需要输入也不会显示)。解决的方法,如下
      方法一:在apache里设置两个站点,站点文件存放在不同文件夹(注意权限),设置不同的端口(比如:8080)。我不推荐。。因为分站点设置繁琐,且访问的时候要敲端口192.168.0.2:8080。。
      方法二:同站点不同目录访问。例如我的OC在/var/www/html/owncloud,pihole在/var/www/html/pi-hole目录。这样互相的index文件不会覆盖,/var/www/html这个首页还可以设计一个导航主页,想去OC,想去pihole,想去私人FM,去任何站。。也可以直接访问192.168.0.2/owncloud,和192.168.0.2/pi-hole(另外pihole在目录里新增一个admin的超链接,类似win的快捷方式,可以通过192.168.0.2/admin直接访问pihole)。。这个方法在我一个树莓派十几个站点的时候非常实用,不可能一个个端口去记它对应什么站,端口会忘。用目录直接访问会好一点点。

th1nk3r进行回复 取消回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据