Pi-hole 是一个基于 Pi 的网络工具,主要用于过滤广告和跟踪请求,虽然 Pi-hole 最初是为 Raspberry Pi 设计的,但它也可以在其他支持 Linux 的路由器上运行,以下是一些常见的路由器配置步骤,假设你正在使用一个支持 OpenWrt 的路由器(如华为、D-Link、TP-Link 等品牌的路由器)。
确认路由器的固件版本
确保你的路由器已经安装了最新版本的 OpenWrt 固件,可以通过路由器的Web界面或通过 SSH 登录到路由器。
安装Pi-hole
Pi-hole 可以通过 OpenWrt 的固件仓库安装,你可以手动安装Pi-hole 的固件包,或者使用自动化脚本。
方法 1:手动安装
- 连接到路由器的 SSH 会话。
- 更新固件仓库:
opkg update
- 安装必要的依赖项:
opkg install -o root /tmp http://downloads.openwrt.org/openwrt/package-pihole opkg install -o root /tmp pi-hole
- 启动 Pi-hole 服务:
/etc/init.d/pihole restart
方法 2:使用自动化脚本
你可以使用 Pi-hole 的自动化安装脚本来安装和配置 Pi-hole,以下是一个示例:
# 执行脚本 chmod +x install_pi-hole.sh ./install_pi-hole.sh
配置DNS
Pi-hole 会创建一个本地DNS服务器,你需要将其设置为路由器的默认DNS服务器。
- 打开路由器的Web界面,进入“网络” > “DNS”。
- 设置 DNS 服务器地址为
..1或 Pi-hole 的IP地址(通常是168.1.1或168..1,取决于你的网络配置)。 - 保存设置。
配置Pi-hole 的配置文件
Pi-hole 使用一些配置文件来过滤广告和跟踪请求,这些文件通常位于 /etc/pihole/ 目录,以下是一些常见的配置文件:
/etc/pihole/list.db:包含广告和跟踪服务器的列表。/etc/pihole/user.db:包含用户的DNS记录。/etc/pihole/DNS:DNS 解析配置文件。
如果你需要自定义这些文件,可以通过 SSH 访问路由器并使用文本编辑器进行修改。
启用Pi-hole 的防火墙规则
确保Pi-hole 的防火墙规则允许它监听端口,Pi-hole 监听端口是 53(DNS)和 80(HTTP)。
- 回到路由器的Web界面。
- 进入“防火墙” > “规则”。
- 添加允许的规则,
- 输入
53:53,允许 DNS 请求。 - 输入
80:80,允许 HTTP 请求。
- 输入
- 保存防火墙规则。
测试Pi-hole
- 在你的网络中测试Pi-hole 是否正在工作,你可以尝试解析一个广告域名或访问 Pi-hole 的Web 界面(
http://pi.hole)。
测试广告过滤
- 解析一个广告域名,
www.google.com,看看是否被 Pi-hole 过滤了。 - Pi-hole 正确工作,你应该看到一个错误页面,类似于“此域名已被 Pi-hole 过滤”。
测试DNS 解析
- 在设备上设置 DNS 服务器为 Pi-hole 的IP地址。
- 尝试解析一个域名,
www.example.com,看看是否能成功解析。
配置路由器的NAT规则(如果需要)
如果你希望Pi-hole 仅对特定的设备生效,你可以在路由器上设置NAT规则,限制Pi-hole 仅对特定的IP地址或子网生效。
- 进入路由器的Web界面。
- 进入“网络” > “NAT”。
- 添加一个NAT规则,将特定的子网或IP地址重定向到Pi-hole 的IP地址。
- 保存规则。
可能的优化和故障排除
- 性能问题:Pi-hole 在路由器上运行可能会占用较多资源,特别是处理大量的DNS请求,你可以尝试优化Pi-hole 的配置,或者在路由器上增加内存。
- DNS 解析问题:如果你遇到DNS 解析问题,可能是因为Pi-hole 的配置文件有误,或者DNS服务器设置不正确。
- 防火墙规则错误:如果Pi-hole 不响应,可能是因为防火墙规则没有正确配置。
后续配置
- 如果你希望Pi-hole 进行更深入的配置,可以参考Pi-hole 的官方文档。
- 你还可以使用Pi-hole 的Web 界面进行更多的自定义设置。
通过以上步骤,你应该能够在路由器上成功配置并使用Pi-hole 进行广告和跟踪过滤,如果你遇到任何问题,可以参考Pi-hole 的官方文档或社区求助。









