dockerHub镜像地址
https://hub.docker.com/r/pihole/pihole
树莓派可直接刷入PI-hole系统,本文采用docker方式部署
使用场景
-
去除电视盒子和电视自带的广告
-
去除运营商dns污染带来的广告(手机和电脑等)(尤其是租房)
上面的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引用给注释掉
然后点击nginx-服务-重启
解决了DNS 53端口和宝塔面板80端口占用
然后拉取镜像并启动服务
docker-compose up
访问ip:端口/admin访问首页
如192.168.31.40:80/admin
密码在docker第一次启动时,日志可以看到
本文没有看到密码,所以选择密码重置
查看docker id
docker ps -a
进入Pi-hole docker容器
docker exec -it 5dd97a905bae bash
执行重置密码
输入两次密码确认即可
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;
输入密码,进入首页
注意Pi-hole只有英文,没有简体中文翻译
设置dns
点击setting,点击dns,输入自选dns
滑动到最底部点击save,保存
使用广告过滤域名列表
参考下面开源项目
https://github.com/privacy-protection-tools/anti-AD
复制连接地址
https://anti-ad.net/domains.txt
点击adlists,输入上述地址,点击add添加
更新广告域名列表
点击tools,点击update gravity,点击update
直到看到success,就为成功
如遇到DNS resolution is currently unavailable错误,参考上述步骤解决
如果是window,打开网络设置
设置手动dns为pihole服务器的ip地址(不需要端口号)
如果为路由器,本文为小米路由器
设置上网设置
设置为路由器时,全屋设备都会过滤广告,包括不限于手机,电脑,平板,电视和电视盒子
打开测速网
在没有chrome去广告插件,隐身模式下,可以看到广告仍然存在
打开电视盒子和电视,发现开屏广告仍然在
打开美剧,电影下载,xx影视,发现广告一点没少
唯一不太确定的就是,手机端简书和搜狐网页的弹窗广告开启pihole后没了,但是横幅广告仍在,不清楚是频率导致还是pihole过滤了这两个首屏弹窗
虽然可以看到已被阻止的域名,但是没有明显看到广告过滤
目前就当做dns记录器,默认开着,避免一些未知的广告可能命中
后面有空再尝试更多高级的配置和玩法
END.
微信红包封面:龙年大吉
公众号发送关键词加群
,加入交流群
觉得本文还行,不妨顺手点赞和收藏,下期见。
推荐阅读
《HomeLab迷你小主机(x86):Jellyfin设置DLNA投屏到电视》
☕ 朋友,都看到这了,确定不关注一下么? 👇
![](http://www.dsx2020.com/files/logo.jpg)