news 2026/4/27 12:42:39

Pi-hole广告拦截DNS搭建全网去广告方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pi-hole广告拦截DNS搭建全网去广告方案

前言

Pi-hole是一款网络级广告拦截器,通过DNS过滤实现全网去广告。只需将设备DNS指向Pi-hole,即可拦截广告、追踪器和恶意网站。

一、Pi-hole原理

1.1 工作流程

设备请求 → Pi-hole DNS → 黑名单检查 │ ├── 在黑名单 → 返回0.0.0.0(广告被拦截) │ └── 不在黑名单 → 转发到上游DNS → 返回真实IP

1.2 优势

  • 全网覆盖:一次配置,全家设备生效
  • 设备无关:无需每个设备安装软件
  • 低资源:树莓派Zero都能跑
  • 可视化:详细的查询统计

二、Docker部署

2.1 基础部署

# docker-compose.ymlversion:'3.8'services:pihole:image:pihole/pihole:latestcontainer_name:piholehostname:piholeports:-"53:53/tcp"-"53:53/udp"-"80:80/tcp"environment:TZ:'Asia/Shanghai'WEBPASSWORD:'your_password'PIHOLE_DNS_:'223.5.5.5;119.29.29.29'# 上游DNSDNSSEC:'true'volumes:-'./etc-pihole:/etc/pihole'-'./etc-dnsmasq.d:/etc/dnsmasq.d'cap_add:-NET_ADMINrestart:unless-stopped

2.2 解决端口冲突

# Ubuntu 18.04+可能有systemd-resolved占用53端口# 检查sudolsof-i :53# 禁用systemd-resolvedsudosystemctl stop systemd-resolvedsudosystemctl disable systemd-resolved# 或者修改配置sudosed-i's/#DNSStubListener=yes/DNSStubListener=no/'/etc/systemd/resolved.confsudosystemctl restart systemd-resolved

2.3 启动

docker-compose up -d# 访问Web界面# http://IP/admin# 密码:docker-compose中设置的WEBPASSWORD

三、基础配置

3.1 添加广告黑名单

Web界面 → Adlists → 添加订阅列表 推荐列表: # 官方默认 https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts # 中国广告域名 https://anti-ad.net/easylist.txt https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt # 隐私追踪 https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt

3.2 更新黑名单

# 命令行更新dockerexecpihole pihole -g# 或者Web界面Tools → Update Gravity

3.3 白名单配置

Whitelist → 添加域名 常见需要白名单的域名: - s.youtube.com(YouTube历史记录) - video-stats.l.google.com - www.googleadservices.com(部分网站登录需要)

四、客户端配置

4.1 路由器配置(推荐)

路由器管理界面 → DHCP设置 → DNS服务器 主DNS:Pi-hole的IP地址 备用DNS:留空或8.8.8.8 效果:所有连接路由器的设备自动使用Pi-hole

4.2 单设备配置

# Windows网络适配器 → IPv4 → DNS服务器 → 手动 首选DNS:Pi-hole的IP# macOS系统偏好设置 → 网络 → 高级 → DNS 添加Pi-hole的IP# Linux# /etc/resolv.confnameserver192.168.1.100# Pi-hole IP# Android/iOSWiFi设置 → 高级 → DNS → 手动 输入Pi-hole的IP

五、高级配置

5.1 本地DNS记录

# /etc/dnsmasq.d/02-custom.conf# 自定义域名解析address=/nas.home/192.168.1.10address=/router.home/192.168.1.1address=/pihole.home/192.168.1.100# 重启生效docker restart pihole

5.2 条件转发

Settings → DNS → Conditional Forwarding 勾选 Use Conditional Forwarding Local network: 192.168.1.0/24 DHCP router: 192.168.1.1 效果:可以通过主机名访问局域网设备

5.3 DHCP服务器

Settings → DHCP 启用DHCP服务器后,Pi-hole会: - 自动分配IP - 自动设置DNS为Pi-hole - 显示设备名称 注意:需要先关闭路由器的DHCP

六、性能优化

6.1 缓存配置

# /etc/dnsmasq.d/01-pihole-custom.confcache-size=10000

6.2 上游DNS优化

Settings → DNS → Upstream DNS Servers 推荐配置: - 阿里DNS: 223.5.5.5, 223.6.6.6 - 腾讯DNS: 119.29.29.29 - Cloudflare: 1.1.1.1(国内可能慢) 启用选项: ☑️ Use DNSSEC ☑️ Use Conditional Forwarding

6.3 日志管理

# 禁用查询日志(提高性能)Settings → Privacy → Privacy level 选择 Anonymous mode# 或者限制日志大小# /etc/pihole/pihole-FTL.confMAXDBDAYS=7

七、多站点部署

7.1 需求场景

  • 公司和家里都部署Pi-hole
  • 出差时也想使用去广告
  • 多个办公地点统一管理

7.2 组网方案

使用组网软件(如星空组网)将多个站点组成虚拟局域网后:

家里Pi-hole 公司设备 手机 10.26.0.100 ←── 10.26.0.50 ←── 10.26.0.200 │ │ │ └───────── 虚拟局域网 ────────────┘ 所有设备DNS都指向 10.26.0.100
# 公司设备DNS配置echo"nameserver 10.26.0.100">/etc/resolv.conf# 手机配置WiFi/移动网络 → DNS →10.26.0.100

7.3 备用Pi-hole

# 部署第二个Pi-hole作为备用# 使用Gravity Sync同步配置services:pihole-backup:image:pihole/pihole:latestenvironment:PIHOLE_DNS_:'10.26.0.100'# 主Pi-hole作为上游

八、统计与监控

8.1 Dashboard解读

Total Queries: 总查询数 Queries Blocked: 拦截数量 Percent Blocked: 拦截比例 Domains on Adlists: 黑名单域名数 正常情况: - 拦截比例 10-30% - Top Blocked: 广告域名排行

8.2 查询日志分析

Query Log → 查看所有DNS查询 状态说明: OK (forwarded): 转发到上游DNS OK (cached): 命中缓存 Blocked (gravity): 被黑名单拦截 Blocked (regex blacklist): 被正则规则拦截

8.3 API接口

# 获取统计数据curl"http://pi.hole/admin/api.php?summary"# 禁用Pi-hole(临时关闭)curl"http://pi.hole/admin/api.php?disable=300&auth=TOKEN"# 300秒后自动恢复

九、常见问题

9.1 某些网站打不开

解决方法: 1. Query Log找到被拦截的域名 2. 添加到白名单 3. pihole restartdns

9.2 广告还是能显示

可能原因: 1. 广告和内容同域名(无法拦截) 2. 使用IP直连(绕过DNS) 3. 使用HTTPS DNS(DoH) 解决: - 添加更多黑名单订阅 - 路由器拦截DoH服务器

9.3 DNS解析慢

# 检查上游DNS延迟dig@223.5.5.5 www.baidu.com# 更换更快的上游DNS# 或增加缓存大小

十、与AdGuard Home对比

特性Pi-holeAdGuard Home
资源占用更低略高
Web界面功能全更现代
DoH/DoT需配置内置
家长控制
加密DNS客户端

选择建议:

  • 老硬件(树莓派1/2)→ Pi-hole
  • 需要加密DNS → AdGuard Home
  • 需要家长控制 → AdGuard Home

十一、总结

Pi-hole是网络级广告拦截的最佳方案:

模块内容
部署Docker一键部署
配置黑名单订阅、白名单
客户端路由器/单设备DNS设置
高级本地DNS、DHCP、条件转发
多站点组网实现全局去广告

效果预期

  • 网页广告大幅减少
  • 页面加载速度提升
  • 隐私追踪被阻止
  • 带宽节省10-20%

参考资料

  1. Pi-hole官方文档:https://docs.pi-hole.net/
  2. Pi-hole GitHub:https://github.com/pi-hole/pi-hole
  3. 黑名单收集:https://firebog.net/

本文首发于CSDN,转载请注明出处。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 4:03:59

10/10的AI论文工具推荐:覆盖数学建模复现率99%与自动排版

还在为论文写作头痛?特别是数学建模的优秀论文复现与排版,时间紧、任务重,AI工具能帮上大忙吗?今天,我们评测10款热门AI论文写作工具,帮你精准筛选最适合的助手。aibiye:专注于语法润色与结构优…

作者头像 李华
网站建设 2026/4/22 6:03:21

9 个降AI率工具,本科生高效降AIGC指南

9 个降AI率工具,本科生高效降AIGC指南 AI降重工具:高效降低AIGC率,让论文更自然 在当今学术写作中,越来越多的本科生开始使用AI生成内容来辅助论文写作。然而,随之而来的AIGC率过高、查重率偏高以及AI痕迹明显等问题&a…

作者头像 李华
网站建设 2026/4/22 13:58:36

BetterYeah智能体开发:插件概述

什么是插件当前大多数大模型使用的都是陈旧的语料进行训练,真实场景中,我们往往需要外部的数据来与LLM交互。插件是BetterYeah AI平台封装好提供给用户的内置扩展功能,它可以帮助用户轻松连接外部数据,和大模型协同构建更强大的功…

作者头像 李华
网站建设 2026/4/25 12:08:17

wsl使用git

前言:文章类型 > 笔记 安装git sudo apt-get install git 查看版本(只用前面那句就行) git --version; git credential-manager --version 用户配置 git config --global user.name "Your Name" git config --global user…

作者头像 李华
网站建设 2026/4/23 19:11:59

[特殊字符] 深入了解 Flutter:构建跨平台应用的利器

#> *作者:AI助手 | 发布日期:2025年4月*![Flutter Logo](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flutter_logo.png/800px-Flutter_logo.png) *图1:Flutter 官方 Logo*## 一、什么是 Flutter?**Flutter*…

作者头像 李华
网站建设 2026/4/21 20:28:45

6个高效AI论文网站盘点,智能改写功能让重复率直降

开头总结工具对比(技能4) �� 为帮助学生们快速选出最适合的AI论文工具,我从处理速度、降重效果和核心优势三个维度,对比了6款热门网站,数据基于实际使用案例:工具名称处理速度降重幅…

作者头像 李华