news 2026/5/1 13:19:48

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/5/1 9:18:36

多语言AI翻译引擎助力跨语种论文写作,保持学术术语准确性

还在为数学建模论文的复现和排版发愁?面对紧迫的时间和高难度任务,不妨试试这10款热门AI论文写作工具,它们能高效辅助你完成精准筛选和优化,让写作过程事半功倍。aibiye:专注于语法润色与结构优化,提升可读…

作者头像 李华
网站建设 2026/5/1 10:41:14

学术效率工具:6款AI论文平台推荐,智能处理使语言更清晰

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

作者头像 李华
网站建设 2026/4/18 7:10:04

高效学术工具:6个AI论文辅助系统,智能润色使内容更精准

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

作者头像 李华
网站建设 2026/5/1 1:56:36

宝,你越敢跟男人‘瞎要’,他越把你当宝

1. 你是要打游戏,还是要给我买奶茶。 2. 以后薯片归我,遥控器归我,你也归我。 3. 不好意思呀,聊得太投缘,想要个专属投喂员身份。 4. 想做你兜里的小馋猫,连打饱嗝都在卖萌。 5. 我希望我们是彼此的零食搭子…

作者头像 李华
网站建设 2026/5/1 9:28:30

C++ 函数与成员函数声明机制的深度剖析与演进全景报告

C 函数与成员函数声明机制的深度剖析与演进全景报告 1. 核心综述:声明作为接口契约的基石 在 C 编程语言的庞大语义体系中,函数声明(Function Declaration)不仅是连接调用方与实现方的接口契约,更是编译器执行类型检…

作者头像 李华
网站建设 2026/5/1 8:49:20

经典算法题型之编辑距离(一)

我们先来看题目描述:给你两个单词「word1」和「word2」,请你计算出将「word1」转换成「word2」所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1输入:word1 "horse"…

作者头像 李华