字体预加载
Home
avatar

翻过墙

翻过墙

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 需要一定的网络知识,建议在测试环境中先熟悉配置,再部署到生产环境。

Pi-hole 广告拦截 开源 DNS 工具 免费