Pi-hole-网络广告拦截
Pi-hole 是一个开源的网络级广告拦截器,通过DNS层面拦截广告和跟踪器。它可以在路由器、树莓派或任何Linux设备上运行,为整个网络提供广告拦截服务,提升网络体验和隐私保护。
主要特性
🛡️ 网络级拦截
- DNS层面拦截: 在DNS查询阶段拦截广告域名
- 全网生效: 保护网络中的所有设备
- 零配置: 设备无需安装任何软件
- 高效拦截: 减少网络流量和加载时间
📊 详细统计
- 实时监控: 显示DNS查询和拦截统计
- 设备分析: 查看各设备的网络活动
- 域名统计: 统计最常访问的域名
- 拦截报告: 详细的拦截日志和报告
🔧 灵活配置
- 白名单管理: 允许特定域名通过
- 黑名单管理: 自定义拦截规则
- 上游DNS: 支持多种DNS服务器
- API接口: 提供RESTful API
🌐 跨平台支持
- Linux: 支持各种Linux发行版
- 树莓派: 完美支持树莓派设备
- Docker: 支持容器化部署
- 虚拟机: 可在虚拟机中运行
项目地址
Pi-hole - 官网 Pi-hole - Github安装部署
1. 自动安装
# 一键安装脚本
curl -sSL https://install.pi-hole.net | bash
# 或者下载脚本后安装
wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh
2. Docker部署
# 使用Docker Compose
version: '3'
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
environment:
TZ: 'Asia/Shanghai'
WEBPASSWORD: 'your-password'
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
restart: unless-stopped
3. 手动安装
# 安装依赖
sudo apt-get update
sudo apt-get install curl wget git
# 克隆仓库
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd Pi-hole
# 运行安装脚本
sudo bash automated\ install/basic-install.sh
基础配置
1. 网络配置
# 设置静态IP
sudo nano /etc/dhcpcd.conf
# 添加以下内容
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 8.8.4.4
2. DNS配置
# 配置上游DNS服务器
sudo nano /etc/pihole/setupVars.conf
# 设置上游DNS
PIHOLE_DNS_1=8.8.8.8
PIHOLE_DNS_2=8.8.4.4
PIHOLE_DNS_3=1.1.1.1
3. Web界面配置
# 设置Web界面密码
sudo pihole -a -p
# 访问Web界面
# http://your-pi-hole-ip/admin
高级功能
1. 自定义规则
# 添加自定义黑名单
sudo nano /etc/pihole/custom.list
# 添加要拦截的域名
ads.example.com
tracker.example.com
analytics.example.com
2. 白名单管理
# 添加白名单
sudo nano /etc/pihole/whitelist.txt
# 添加允许的域名
api.example.com
cdn.example.com
3. 正则表达式
# 使用正则表达式拦截
# 在Web界面中添加规则
(^|\.)ads?\.(.*)$
(^|\.)analytics\.(.*)$
(^|\.)tracker\.(.*)$
使用场景
1. 家庭网络
# 家庭网络配置
设备: 树莓派4B
网络: 家庭WiFi
保护设备:
- 手机
- 平板
- 智能电视
- IoT设备
2. 办公网络
# 办公网络配置
设备: 服务器
网络: 企业网络
功能:
- 广告拦截
- 恶意网站拦截
- 网络监控
- 访问控制
3. 开发环境
# 开发环境配置
设备: 开发服务器
用途:
- 测试环境
- 本地开发
- 网络调试
- 性能测试
性能优化
1. 硬件要求
# 最低配置
CPU: 单核 700MHz
内存: 512MB RAM
存储: 8GB SD卡
网络: 100Mbps以太网
# 推荐配置
CPU: 四核 1.4GHz
内存: 2GB RAM
存储: 16GB SSD
网络: 1Gbps以太网
2. 网络优化
# 优化DNS缓存
sudo nano /etc/dnsmasq.d/01-pihole.conf
# 添加缓存配置
cache-size=10000
min-cache-ttl=3600
3. 监控设置
# 启用详细日志
sudo nano /etc/pihole/setupVars.conf
# 设置日志级别
QUERY_LOGGING=true
INSTALL_WEB_SERVER=true
INSTALL_WEB_INTERFACE=true
安全配置
1. 访问控制
# 设置Web界面密码
sudo pihole -a -p
# 限制访问IP
sudo nano /etc/lighttpd/lighttpd.conf
# 添加访问控制
$HTTP["remoteip"] =~ "192.168.1.0/24" {
# 允许访问
}
2. 防火墙配置
# 配置防火墙
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 80/tcp
sudo ufw allow from 192.168.1.0/24
3. SSL证书
# 配置HTTPS
sudo apt-get install certbot python3-certbot-lighttpd
# 获取SSL证书
sudo certbot --lighttpd -d pihole.yourdomain.com
常见问题
Q: 如何更新Pi-hole?
A: 运行 pihole -up
命令更新Pi-hole和广告列表。
Q: 如何备份配置?
A: 备份 /etc/pihole/
目录下的配置文件。
Q: 如何查看拦截统计?
A: 访问Web界面的Dashboard查看详细统计信息。
Q: 如何添加自定义规则?
A: 在Web界面的Group Management中添加自定义规则。
总结
Pi-hole 是一个强大的网络级广告拦截工具,具有以下优势:
- ✅ 完全免费开源
- ✅ 网络级拦截
- ✅ 详细统计
- ✅ 跨平台支持
- ✅ 隐私保护
- ✅ 易于部署
Pi-hole 特别适合需要保护整个网络隐私和提升网络体验的用户。
Pi-hole 需要一定的网络知识,建议在测试环境中先熟悉配置,再部署到生产环境。