在法国用二手 RPi 跑 Pi-hole,上游 DNS 别只写 Freebox
家里是 Freebox Pop,光猫路由一体的那种。去年底把吃灰的 Raspberry Pi 4(2GB,二手在 Leboncoin 上 35 欧收的)刷了 Raspberry Pi OS Lite,装 Pi-hole 当内网 DNS,主要想挡住电视盒子和几台 IoT 设备的广告请求。先给上下文:内网大概 20 台设备在线,DHCP 还在 Freebox 上,只是把 Freebox 的 DNS 指向 Pi 的固定 IP。
做法不复杂。先用 raspi-config 固定有线口,别用 WiFi,Pi 放在 Freebox 旁边直接网线。安装用官方脚本:
curl -sSL https://install.pi-hole.net | bash
安装时上游 DNS 那一页,我第一版直接选了 Freebox 自己的地址(192.168.1.254)。能用,但日志里大量查询指向 Freebox,缓存命中很差。后来改成走外部解析器:
pihole-FTL --config dns.upstreams '["9.9.9.9","149.112.112.112"]'
再把 Freebox 的 DHCP 里下发的 DNS 只保留 Pi 一个地址,别同时下发 Pi 和 Freebox,否则客户端会随机挑,广告拦截就时灵时不灵。这一点我踩了两天才反应过来。
为什么这么改:Pi-hole 的价值在于本地缓存和黑名单命中,上游如果是 Freebox,等于所有未命中查询先绕一圈到运营商递归,日志也难看。换成 Quad9 之后,缓存命中率从三成多到了七成左右,电视盒子那种重复请求基本不出内网。代价是外部解析器延迟比本地递归高一点,首次查询会慢几十毫秒,日常感知不到。
哪里会失效:第一,Freebox 固件更新后偶尔会把 DHCP 下发的 DNS 重置回自动,得回去看一眼;第二,Pi 一挂全屋内网就上不了网,所以我在 Freebox 里保留了一个备用 DNS 作为第二项,虽然会漏拦一部分,但总比断网好;第三,Pi-hole 默认的 blocking mode 对某些 App 的硬编码 DNS 无效,这类请求会绕过 Pi 直接出去,日志里能看到来源不是 Pi 的查询。还有一次 SD 卡挂了,重装后忘了恢复 teleporter 备份,白名单全丢,现在每周用 cron 导一次。
你们在法国这边用 Pi-hole 的话,上游是走运营商递归还是外部解析器?有没有人试过把 Freebox 的 DHCP 关掉、让 Pi 自己发地址,稳定性怎么样?
0 条评论
还没有评论,写下第一条。