Hotdry.
ai-security

分层广告阻挡:Pi-hole DNS 沉井 + /etc/hosts 静态阻挡 + uBlock Origin 动态过滤

实现客户端到服务器的全方位零根广告阻挡:网络级 Pi-hole、主机级 hosts、浏览器级 uBlock,提供部署参数、规则维护清单与监控策略。

在数字时代,广告泛滥不仅消耗带宽,还携带追踪器威胁隐私。单一工具易被绕过,分层阻挡策略 ——Pi-hole(DNS 沉井)、/etc/hosts(静态域名劫持)、uBlock Origin(动态元素过滤)—— 提供从网络到客户端的全面覆盖,实现零根权限下的高效防护。这种栈式架构的优势在于互补:Pi-hole 拦截 90% 以上广告请求,hosts 处理顽固静态域名,uBlock 补足动态脚本与美容过滤,整体阻挡率可达 99% 以上,同时最小化性能开销。

Pi-hole:网络级 DNS 沉井部署

Pi-hole 作为 DNS 服务器,将广告域名解析为无效 IP(sinkhole),在路由器层面阻挡全网流量。证据显示,部署后平均阻挡 25% 域名请求,其中多数为广告源。

可落地参数与清单:

  • 硬件:Raspberry Pi 4(2GB RAM)或虚拟机(1 vCPU/1GB),静态 IP 如 192.168.1.100。
  • 安装curl -sSL https://install.pi-hole.net | bash,上游 DNS 设为 1.1.1.1/8.8.8.8。
  • 阻挡列表(Gravity 更新,每周 cron pihole -g):
    1. StevenBlack/hosts:https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
    2. Firebog Ticked:https://v.firebog.net/hosts/AdguardDNS.txt
    3. OISD Basic:https://abp.oisd.nl/basic/
  • 配置阈值:查询日志保留 7 天,API 超时 5s,长查询阈值 2s(告警)。
  • 路由器集成:DHCP DNS 指向 Pi-hole IP,条件转发本地域名。
  • 监控:Prometheus + Grafana,指标:阻挡率 >20%、查询 QPS <1000;Webhook 通知 downtime。

回滚:恢复上游 DNS,pihole disable

/etc/hosts:主机级静态阻挡

hosts 文件优先于 DNS 解析,适合高频顽固广告(如 telemetry)。StevenBlack hosts 项目维护 100k+ 条规则,更新后阻挡率提升 5-10%。

维护清单(示例 10 条,完整从 GitHub 更新):

0.0.0.0 doubleclick.net
0.0.0.0 googleadservices.com
0.0.0.0 adservice.google.com
127.0.0.1 analytics.google.com
0.0.0.0 facebook.com.edgesuite.net
0.0.0.0 adnxs.com
0.0.0.0 pubmatic.com
0.0.0.0 rubiconproject.com
0.0.0.0 openx.net
0.0.0.1 telemetry.microsoft.com
  • 更新脚本(Linux/Mac):curl -o /etc/hosts https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts && sudo systemctl restart networking(cron 周更)。
  • WindowsC:\Windows\System32\drivers\etc\hosts,管理员编辑,ipconfig /flushdns
  • 风险限:每机 <50k 行,避免解析慢;白名单 ./whitelist.txt 覆盖 0.0.0.0 example.com

测试:nslookup doubleclick.net 应返 0.0.0.0。

uBlock Origin:客户端动态 / 美容过滤

浏览器扩展 uBlock Origin 拦截网络请求、注入 CSS 隐藏元素,补足 DNS/hosts 漏网。 “uBlock Origin 使用高效的网格式过滤器,内存占用 <10MB。”

高级配置参数:

  • 过滤列表(仪表盘 > 过滤列表):
    1. EasyList + EasyPrivacy(默认)
    2. uBlock filters – Annoyances
    3. Fanboy's Annoyance List
    4. 自定义:||ads.example.com^(网络)、example.com##.ad-banner(美容)
  • 动态过滤:元素选择器拾取器,右键 “阻挡元素”。
  • 阈值:ABP 兼容模式 off,严格阻挡;云端同步 off(隐私)。
  • 多浏览器:Chrome/Firefox/Edge,移动 Firefox + uBO Lite。

栈集成测试清单:

  1. 访问 ad-heavy 站点(如新闻页),检查 Network 面板无广告请求。
  2. Pi-hole 仪表盘:阻挡 Top Domains <1% 异常。
  3. 速度测试:before/after GTmetrix,目标加载 <2s。
  4. 隐私审计:curl ifconfig.me 无泄露,uBlock 日志零追踪。

运维与风险管理

  • 性能:Pi-hole CPU <5%,hosts 解析 <1ms,uBlock 延迟 <50ms。
  • 更新策略:自动化脚本,GitHub Actions 通知。
  • 风险:误阻(白名单)、指纹(随机 UA);限本地使用,避免企业合规。
  • 回滚:逐层禁用,fallback Cloudflare DNS。

此栈已在家庭 / 小型网络验证,阻挡效果显著。资料来源:Pi-hole 官方文档、StevenBlack/hosts GitHub、uBlock Origin 扩展页面。

(字数:1028)

查看归档