原帖地址:https://www.jkg.tw/?p=157
之前在 UniFi USG 内建的 dnsmasq 服务放入 yhost 挡广告的清单
把广告在 DNS 查询时就彻底按死在地上,这样做挺好的,因为局域网内所有上网的设备
不需要额外安装软件或者设定,不管是上网还是打开任何App,全部都能享受到零广告的好处
但是 USG 一直以来都两个致命毛病
- USG 更新升级时,放入的挡广告清单会被清空
- 需要另外写脚本放它自动去更新
某次在 USG 升级后又被清空,不爽了所以干脆另寻他路,结果就找到一个开源的 Pi-hole !
这个项目有各种好处:
- 能识别阻挡全世界超过 10 万个有害或者广告的域名
- 阻挡广告的效果可以在所有设备、所有系统以及所有App内
- 增进整体网络效能(因为广告在被下载前,已经被阻挡)
- 行动设备可以用 VPN 连回家中 Pi-hole 阻挡广告节省行动网络流量
- 有个漂亮完整的 Web 管理接口
- 提供 API ,可以在你的程式中使用
可以看下 Pi-hole 他们的官方介绍影片:
Pi-hole 开发者目前也都很活跃,想要看完整源码可以到 Pi-hole Github 网页去,或者只是想要获取他们的挡广告清单
他们现行采用的挡广告清单有七个,稍微看一下,各个维护都还算勤劳
而安装好 Pi-hole 以后,系统也会在午夜时间自动抓取更新,并且自动去除重复的项目,无人值守非常方便
虽然这个项目是设计给 Raspberry Pi 的,不过也有人移植到 Docker 上面来
今天我们要介绍的就是在 Synology DSM 的 Docker 上面安装一套 Pi-hole
- 在 DSM Docker 里面下载 Pi-hole 的映像档
1.在 DSM 管理页面打开 Docker
2.点选“仓库服务器”
3.在搜索字段里面输入“pi-hole”
4.点“搜寻”
5.点选“diginc/pi-hole”
6.点选“下载”
跳出“选择标签”时,默认“latest”就可以了
稍等片刻以后,DSM 就会下载完毕
- 布署 Pi-hole 与设定 Docker 环境变量
1.点选 DSM Docker 的“映像档”
2.点选刚刚下载好的映像档“diginc/pi-hole:latest”
3.点击“布署”按钮
4.点击“进阶设定”按钮
“自动重启”建议勾选,如果当机挂了或者 DSM 重新开机后,这个容器还会自动启动
为了避免以后升级 Docker 映像档后设定消失,所以我们要建立本地资料夹与容器资料夹的连结
这样容器内的设定档就会存到 DSM 本地的资料夹,这样也方便我们编辑
1.点击“储存空间”
2.点击“新增资料夹”
3.DSM 本地资料夹请随意新增两个,分别对应两个容器资料夹,设定完应该会跟下面图片一样
“/etc/pihole”这个是 pi-hole 存放设定档的地方
“/etc/dnsmasq.d”这个是 pi-hole 存放 dnsmasq 规则的地方
在“连接埠设定”页面是设定 DSM 与容器端口的映射,设定好以后我们连到 DSM IP 跟相应端口就能访问到容器
1.点选“连接埠设定”
2.pi-hole 共要设定三个端口,设定完应该如下面图片
其中因为我 DSM 已经跑一个 http 服务,所以已经占用掉 80 端口,这边我就改成 36778
53 端口是 DNS 服务器专用,如果 DSM 上面没其他 DNS Server 建议就不要修改
设定 pi-hole 环境变量,有几项比较重要需要设定
1.点击“环境设定”
2.这边列出几个比较重要的设定,完整的设定可以到 Docker 的网页查询
“ServerIP”这边设定 DSM 的内网 IP 地址
“TZ”这边设定时区“Taipei”,有设定时区以后,Pi-hole 会在半夜时间更新广告清单
“WEBPASSWORD”这个是登入 Pi-hole 网页管理页面的密码
“DNS1”、“DNS2”这两个可以根据你的网络设定来决定,下图是 OpenDNS 的,你也可以换成自己网络运营商的,不设定的话就 Pi-hole 就会使用 Google DNS
设定完以上内容后,就全部都点“确定”或者“下一步”,最后 Pi-hole 就会正常启动了!
启动后我们就可以透过刚刚设定的 ServerIP 来登入 Pi-hole 管理页面
http://[ServerIP]:[Port]/admin ,修改掉红色部分,根据以上文章设定为例那就是: http://192.168.2.200:36778/admin
浏览器输入以上网址,然后输入刚刚设定的WEBPASSWORD,就能登入管理页面囉~
登入后就能看到更多资讯,有客户端的请求纪录、添加白名单与黑名单。。等等,还有 Pi-hole 的设定选项~
以下列几个 Pi-hole 比较重要的选项
“Pi-hole DHCP Server”如果你局域网内有其他 DHCP Server 这里就不要打开,否则会打架
“Pi-hole Block Lists”这里可以让你添加或删除广告清单,系统会在每周日凌晨 01:59 自动更新
另外他还支援 DNSSEC 功能,如果你使用 Google DNS 或者其他支援 DNSSEC 的话,这里可以打开支援
Google DNS 在 2013 年的时候就已经支援这项服务,打开后也可以到这个网页看看有没有生效?
设定选项逛一圈以后,我们还需要到你路由器里面修改一下 DNS Server 指向 Pi-hole IP
每种路由器的设定方法不同,以下是以 UniFi USG 为例
通常路由器里面 DNS Server 应该都能设定两个,你也可以只设定一组到 Pi-hole
但是这样如果 Pi-hole 当机或者还没有启动的时候,你局域网内的设备会上不了网络
所以保险一点做法是再写一个 DNS Server 当备援
设定完路由器以后,你可以把你的 iPhone 或者电脑重新连线,不知道怎么做就关闭 WiFi 再打开或者关机再开机
然后请随意开几个网站,或者打开Facebook App之类的看看,广告是不是变少许多呢。。。
汉化文件:Pi-hole汉化.rar
汉化文件使用方法:
1、解压文件出来
2、打开WinSCP
3、用root登录
4、进入/var/www/html/admin
5、把解压的文件上传覆盖
如果用docker安装的,最好用root登录SSH,然后查找文件:find / | grep favicon.png,可能是以下路径(选中标蓝色的那行,长串数字每台机可能会有不同)。
Pi-hole规则:
http://someonewhocares.org/hosts/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/StevenBlack/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
http://sysctl.org/cameleon/hosts
http://www.montanamenagerie.org/hostsfile/hosts.txt
http://www.malwaredomainlist.com/hostslist/hosts.txt
http://adaway.org/hosts.txthttp://winhelp2002.mvps.org/hosts.txt