读书是学习,摘抄是整理,写作是创造。——吴晗

Pi-hole:一位把广告“吸进黑洞”的网络守门人

A black hole for Internet advertisements
——Pi-hole 的自我介绍(repo description)

如果你的网络是一座城市,那么 DNS 就是城市里的“问路台”:每一次打开网页、每一次 App 刷新、每一次智能电视想偷偷连上广告服务器,都会跑去问它一句:
“这个域名在哪里?”

Pi-hole® 更像一位站在问路台旁边、披着斗篷的“城市守门人”。它不是装在某个浏览器里的小插件,也不靠挨个设备安装客户端软件——它直接守在网络入口,用一个简单却坚决的动作把不受欢迎的内容拦下:
“你,别进来。”

Pi-hole® 是一个 DNS sinkhole
它把那些讨厌的广告、追踪、乱七八糟的请求,像丢进深井一样丢进“黑洞”里,让它们再也到不了你家的任何设备。


它是谁?它怎么保护你?

Pi-hole® 有点像一位性格极其靠谱的“管家”,而且还是那种不爱废话、做事麻利的类型:

  • Easy-to-install:它会用一套对话式的安装流程带你走,十分钟以内就能安好
  • Resolute:它不只盯浏览器——移动 App、智能电视这些“广告藏身处”,它也管
  • Responsive:它会缓存 DNS 查询,让日常浏览的体感更顺滑
  • Lightweight:对硬件和软件要求克制,跑起来很轻
  • Robust:它的命令行工具经过质量保证,讲究互操作性
  • Insightful:它的 Web 仪表盘像一面镜子,把网络里发生的一切展示给你
  • Versatile:必要时它还能当 DHCP server,让更多设备自动听它的话
  • Scalable:在合适的硬件上,它甚至能扛住数以亿计的查询
  • Modern:IPv4、IPv6 都照顾到
  • Free:开源、免费,并且强调——由你掌控隐私

它的姿态很明确:
你才是你家网络的主人。


一键召唤:One-Step Automated Install

Pi-hole 对“快速上手”这件事很上心。它会把斗篷一甩,说:
“给我一条命令,我就到你家网络门口站岗。”

1
curl -sSL https://install.pi-hole.net | bash

另一种更“谨慎”的相处方式:Alternative Install Methods

Pi-hole 也很坦诚:把脚本直接 pipe 给 bash 这件事,在江湖上是有争议的——因为你在运行之前,可能没来得及仔细读将要执行的代码。

所以它贴心地准备了几种替代方案,让你用更踏实的方式把它请进家里。

Method 1:Clone 仓库并运行

1
2
3
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd "Pi-hole/automated install/"
sudo bash basic-install.sh

Method 2:手动下载安装脚本并运行

1
2
wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

Method 3:Docker 部署

Pi-hole 也懂现代人的生活节奏:如果你更喜欢容器化的边界感,请去官方 Docker 镜像仓库:
https://github.com/pi-hole/docker-pi-hole


装好之后:让整个网络都听它的

Pi-hole 安装完成,并不等于它立刻能“护全家周全”。它站在那儿会提醒你接下来关键的一步:

你需要让网络里的设备在“问路(DNS)”时来找 Pi-hole。

  • 最推荐:配置路由器,让 DHCP clients 使用 Pi-hole 作为 DNS server
  • 如果路由器不支持设置 DNS:你可以启��� Pi-hole 内置的 DHCP server
  • 最后的最后:手动在每台设备上设置 DNS 指向 Pi-hole

它不是强迫你,它只是很认真地说:
“把门钥匙交给我,我才能守得住。”


它不只是黑洞:它还是一台“更快-than-light”的引擎

Pi-hole 的内心里藏着一颗引擎——Faster-than-light Engine
那是 FTLDNS / FTL:一个轻量、专用的守护进程,为 Web 界面提供统计信息;同时,它的 API 也能让你把这些能力整合进你自己的项目里。

它能告诉你很多“网络日常小秘密”,比如:

  • 被拦截的域名总数
  • 今天一共来了多少 DNS 查询
  • 今天挡下了多少广告
  • 广告拦截占比
  • 唯一域名、唯一客户端
  • 查询是转发给上游 DNS 的,还是命中了缓存
  • ……等等

API 怎么看?

它很大方,直接把门牌号写出来:

  • 浏览器:http://pi.hole/api/docs

也可以用 curl 去敲门(它会很快给你回应):

1
curl --connect-timeout 2 -ks "https://pi.hole/api/stats/summary" -H "Accept: application/json"

它甚至还把 API 接入到命令行里,让你像和一位助手对话一样去管理它:

  • pihole api config/webserver/port
  • pihole api stats/summary

命令行:它的“工作态度”写在每一个指令里

Pi-hole 不爱花哨,它的 Command-Line Interface 就像一位穿着工装、袖口卷起的管理员:
不需要打开 Web 界面,也能把一切安排得明明白白。

pihole 命令可以完成完整管理操作,且快、对用户友好。

它手里常用的工具箱里包括:

  • Allowlisting / Denylisting(以及 Regex)
  • Debugging utility(排障工具)
  • 直播式看日志(tail live log)
  • 更新广告列表(Updating Ad Lists / gravity)
  • 查询广告列表里哪些域名会被拦(Querying Ad Lists for blocked domains)
  • 启用/禁用 Pi-hole(Enable / Disable)
  • ……还有更多

它像在说:
“你给我命令,我就给你秩序。”


Web Interface Dashboard:把网络“看得见”

如果说命令行是 Pi-hole 的工作台,那 Web Interface Dashboard 就是它的会客厅——可选,但一旦用上就很难回去。

这个仪表盘能让你:

  • 在手机上也看得舒服(Mobile-friendly)
  • 加上密码保护
  • 看到详细图表、甜甜圈统计
  • 看 Top 域名、Top 客户端
  • 过滤、排序 DNS 查询日志
  • 查看你定义时间范围内的长期统计
  • 管理并配置 Pi-hole 的各种功能
  • 而且它几乎拥有命令行的全部主功能,却没那么“硬核”

仪表盘怎么进?

Pi-hole 把两条路都给你铺好了:

  1. http://pi.hole/admin/(当你已经在用 Pi-hole 做 DNS)
  2. http://<IP_ADDRESS_OF_YOUR_PI_HOLE>/admin/

它像一位热心向导,伸手指向门口:
“来,进去看看你家网络今天都发生了什么。”


它是免费的,但它也需要被世界温柔对待

Pi-hole 很清楚自己是谁:免费、开源、重视隐私。
但它也很坦白:维护这样的项目有持续成本,而背后是一群志愿开发者在扛。

它会很认真地说一句:
你的支持,真的很重要。

你可以通过:

  • Donations(捐助)
  • GitHub Sponsors
  • Patreon
  • 以及更多方式
  • 甚至只是把它介绍给朋友、分享你从中受益的故事

你也可以成为它的同伴

Pi-hole 不把自己当成“高冷的成品”,它更像一个仍在成长的角色。
它欢迎所有人参与:

  • 报告 issue
  • 提建议
  • 提交 PR

它会说:
“从一个 typo 到一个新功能,我都愿意听你讲。”


结尾:把广告留在黑洞里,把清爽留在家里

Pi-hole® 不靠夸张的噱头,它靠站岗。
它站在你家网络的入口,沉默、坚定、有效:

当广告想混进来时,它把对方的路标抹掉;
当追踪想尾随你时,它让对方找不到门;
当你的设备想更快得到答案时,它用缓存把体验变顺。

它像一句不动声色的承诺:
“我在,你安心用网。”