HomeLab迷你小主机(x86):docker搭建Pi-hole实现广告过滤

NO.1
Pi-hole

dockerHub镜像地址

https://hub.docker.com/r/pihole/pihole

树莓派可直接刷入PI-hole系统,本文采用docker方式部署

使用场景

  • 去除电视盒子和电视自带的广告

  • 去除运营商dns污染带来的广告(手机和电脑等)(尤其是租房)

img

NO.2
Pi-hole搭建

上面的dockerHub内有docker-compose示例

version: "3"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
# For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
- "80:80/tcp"
environment:
TZ: 'America/Chicago'
# WEBPASSWORD: 'set a secure password here or it will be random'
# Volumes store your data between container upgrades
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add:
- NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
restart: unless-stopped

本文注销了端口的映射,直接选择host网络模式

network_mode: "host"

在运行docker-compose前,需要关闭服务器自身的53端口占用

系统自身的DNS服务(dnsmasp或者systemd-resolved),本文为ubuntu

使用以下代码关闭

systemctl stop systemd-resolved
systemctl disable systemd-resolved

因为本文默认安装了宝塔面板,而宝塔面板默认会占用80端口

所以还需要解决80端口占用问题(如果没有宝塔面板,可忽略80端口占用)

在宝塔面板-应用商店-已安装-nginx-配置修改

把最底部的conf引用给注释掉

img

然后点击nginx-服务-重启

img

解决了DNS 53端口和宝塔面板80端口占用

然后拉取镜像并启动服务

docker-compose up
NO.3
Pi-hole使用

访问ip:端口/admin访问首页

如192.168.31.40:80/admin

密码在docker第一次启动时,日志可以看到

本文没有看到密码,所以选择密码重置

img

查看docker id

docker ps -a

img

进入Pi-hole docker容器

docker exec -it 5dd97a905bae bash

img

执行重置密码

输入两次密码确认即可

sudo pihole -a -p

此时在pihole容器中还需要继续设置

如果后面碰到adlist拉去列表错误时报DNS resolution is currently unavailable

需要设置以下命令

具体作用未知

参考链接

https://discourse.pi-hole.net/t/dns-resolution-is-currently-unavailable/57393/7

echo nameserver 127.0.0.1 > /etc/resolv.conf

退出容器,输入命令,回车

exit;

img

NO.4
配置修改

输入密码,进入首页

注意Pi-hole只有英文,没有简体中文翻译

img

设置dns

点击setting,点击dns,输入自选dns

滑动到最底部点击save,保存

img

使用广告过滤域名列表

参考下面开源项目

https://github.com/privacy-protection-tools/anti-AD

img

复制连接地址

https://anti-ad.net/domains.txt

点击adlists,输入上述地址,点击add添加

img

更新广告域名列表

点击tools,点击update gravity,点击update

直到看到success,就为成功

如遇到DNS resolution is currently unavailable错误,参考上述步骤解决

img

NO.5
过滤广告dns

如果是window,打开网络设置

设置手动dns为pihole服务器的ip地址(不需要端口号)

img

如果为路由器,本文为小米路由器

设置上网设置

设置为路由器时,全屋设备都会过滤广告,包括不限于手机,电脑,平板,电视和电视盒子

img

NO.6
广告测试

打开测速网

在没有chrome去广告插件,隐身模式下,可以看到广告仍然存在

img

打开电视盒子和电视,发现开屏广告仍然在

打开美剧,电影下载,xx影视,发现广告一点没少

唯一不太确定的就是,手机端简书和搜狐网页的弹窗广告开启pihole后没了,但是横幅广告仍在,不清楚是频率导致还是pihole过滤了这两个首屏弹窗

虽然可以看到已被阻止的域名,但是没有明显看到广告过滤

img

NO.7
Tips

目前就当做dns记录器,默认开着,避免一些未知的广告可能命中

后面有空再尝试更多高级的配置和玩法

END.

微信红包封面:龙年大吉

领取大师兄2016红包封面
微信红包封面

公众号发送关键词加群,加入交流群

觉得本文还行,不妨顺手点赞收藏,下期见。

推荐阅读

HomeLab迷你小主机(x86):Jellyfin设置DLNA投屏到电视

☕ 朋友,都看到这了,确定不关注一下么? 👇