# 旧手机搭建 Pi-hole:全屋去广告 DNS 服务器
你有没有过这种体验:打开一个 App,满屏弹窗广告;看个网页,内容还没加载完,广告倒是先跳出来了。今天教你把旧手机改造成全屋去广告 DNS 服务器,电视、手机、电脑的广告统统拦截。
核心工具是 Pi-hole,一款开源 DNS 级广告拦截工具。手机上跑不了原生 Pi-hole,但我们通过 Termux + Pi-hole in Docker 或直接 DNS 代理方案来实现。
---
## 一、Pi-hole 原理
Pi-hole 本质上是一个 DNS 黑名单过滤器。
正常上网流程:
```text
你 → DNS 服务器 → 返回广告域名的 IP → 加载广告
```
装上 Pi-hole 之后:
```text
你 → Pi-hole → 发现是广告域名 → 返回 0.0.0.0 → 广告加载失败
```
它内置了上百万条广告域名的黑名单,每日自动更新。你还可以手动导入更多规则(如 AdGuard 规则、anti-AD 规则)。
---
## 二、方案选择
旧手机跑 Pi-hole 有两种方案:
| 方案 | 难度 | 效果 | 推荐度 |
|------|-----|------|-------|
| 方案 A:Termux + Pi-hole 脚本 | ★★☆ | 完整功能 | ★★★★ |
| 方案 B:AdGuard Home 替代 | ★☆☆ | 类似效果,更轻量 | ★★★★★ |
AdGuard Home 用 Go 语言编写,有 ARM 版本,资源占用极低,功能与 Pi-hole 高度重合,而且不需要折腾 Docker。**本文推荐方案 B,旧手机友好。**
---
## 三、操作步骤(AdGuard Home 方案)
### 第 1 步:旧手机安装 Termux
从 F-Droid(f-droid.org)下载 Termux。不要用 Google Play 版本,因为 Play 版已停止更新,很多包装不上。
安装后打开 Termux,执行基础更新:
```bash
pkg update && pkg upgrade
pkg install wget curl
```
### 第 2 步:下载并运行 AdGuard Home
```bash
wget https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_arm64.tar.gz
tar xzf AdGuardHome_linux_arm64.tar.gz
./AdGuardHome
```
首次运行会自动初始化,终端会显示管理界面地址:
```text
http://127.0.0.1:3000
```
### 第 3 步:通过局域网访问管理界面
旧手机连上家里 WiFi,查看 IP 地址:
```bash
ifconfig
```
假设 IP 是 192.168.1.105。在电脑浏览器打开:
```text
http://192.168.1.105:3000
```
按界面引导完成初始化配置:
- 监听端口:53(DNS 服务)
- 管理端口:3000(保持默认)
- 创建管理员账号密码
### 第 4 步:配置上游 DNS 服务器
初始化完成后进入设置 → DNS 设置:
- 上游 DNS 服务器:
```text
114.114.114.114
223.5.5.5
```
这两个是国内延迟最低的公共 DNS。如果追求隐私,可以换成:
```text
tls://dns.quad9.net
```
### 第 5 步:添加广告过滤规则
进入过滤器 → DNS 封锁清单,点击"添加封锁清单"→"添加自定义列表":
推荐规则:
```text
https://anti-ad.net/easylist.txt
https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
https://cdn.jsdelivr.net/gh/privacy-protection-tools/anti-AD@master/anti-ad-easylist.txt
```
这三条规则覆盖了国内绝大多数广告、跟踪器和恶意域名。
### 第 6 步:让全屋设备用上 Pi-hole
到路由器管理后台,找到 DHCP 设置,把 DNS 服务器地址改为旧手机的 IP(如 192.168.1.105)。
**重要**:同时填备用 DNS 为 114.114.114.114,这样万一旧手机关机,网络不至于完全断掉。
重启路由器或重新连接各设备的 WiFi,之后所有设备(手机、电脑、电视、平板)都能享受去广告效果。
---
## 四、进阶:保持 Termux 后台运行
Android 系统会杀后台进程,必须做以下设置:
1. 手机设置 → 电池 → 关闭 Termux 的电池优化
2. 手机设置 → 应用 → Termux → 开启"允许后台活动"
3. 开启 Termux 内的 Wake Lock:
```bash
pkg install termux-api
termux-wake-lock acquire
```
4. 设置 Termux 开机自启(需要 Termux:Boot 插件,F-Droid 可下载)。
---
## 五、效果检验
配置完成后,访问下面几个网址测试:
- speedtest.net(如果没看到测速页面的视觉广告,说明生效)
- xinwenlianbo.tv(国内广告密集的新闻站)
进入 AdGuard Home 管理面板 → 网页控制台,能实时看到拦截了哪些域名、各设备的拦截数量。
---
## 六、注意事项
1. **功耗很低**:AdGuard Home 在旧手机上运行时内存占用约 60-80 MB,CPU 占用不到 5%,几乎不耗电。
2. **不要关闭 WiFi**:关闭 WiFi 后 DNS 服务就断了,全屋断网可能会被家人打。
3. **规则别加太多**:规则太多会增加 DNS 查询延迟。3-5 条精选规则最平衡。
---