家裡是 Orange 光纖,Livebox 5,DHCP 發下來的 DNS 一直是 Livebox 自己。我一直覺得這樣看不到查詢紀錄,就把抽屜裡那台 Raspberry Pi 3B 拿出來,插上 8GB 的 SanDisk 卡,裝 Raspberry Pi OS Lite(bookworm, 32-bit),跑 Pi-hole。網路不大,大概十來個裝置(手機、筆電、電視、兩台 NAS),每天查詢量看 dashboard 大約一萬到兩萬次。
做法很直接:Pi 用有線接在 Livebox 的 LAN 口,固定 IP 從路由器那邊綁 MAC 發,避免 Pi 自己設靜態之後和 DHCP 打架。Pi-hole 裝好後我把 upstream 指到 Livebox(192.168.1.1),想說先讓它轉發,不要把上游直接換成 1.1.1.1,這樣至少 Livebox 的 DNS 還能當第一層。查詢介面照預設 53,web 介面留在 80。
真正要動的是 DHCP 的 DNS 欄位。Livebox 5 的管理介面在「網路 → DHCP」裡可以改發給客戶端的 DNS,但那個欄位只吃一個位址,填了 Pi 的 IP 之後,Livebox 自己的 DNS 就等於被繞過。如果只想先試,可以不改路由器,先手動把一兩台裝置的 DNS 指到 Pi,確認穩定再全量。
# /etc/dhcpcd.conf(舊寫法,bookworm 已改用 NetworkManager,這裡只是示意固定 IP)
interface eth0
static ip_address=192.168.1.53/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Pi-hole 端我只改了 upstream:
# Settings → DNS → Upstream DNS Servers
192.168.1.1 # Livebox
為什麼要這樣繞一層:Pi-hole 本身不解析,它只是把查詢轉出去,所以上游一掛,全家的 DNS 就跟著掛。這是我踩到的第一個坑:Livebox 重開或韌體更新時,Pi-hole 的 upstream 會短暫連不上,BFD(blocking)看起來正常,但實際查詢全部 timeout,手機顯示「已連線,無網際網路」。第二個坑是 Pi 3B 的 SD 卡,跑了大概兩個月,某天開機卡在 fsck,整個內網 DNS 直接失效,因為所有裝置都指到它。
邊界很清楚:只要 Pi 斷電、SD 卡壞、或 Livebox 重啟,這套就變成單點故障。我後來在 Pi-hole 上把 upstream 多加一個 1.1.1.1 當備援,並且在 Livebox 的 DHCP 裡保留第二個 DNS 位址(有些韌體版本可以填兩個,我這台只吃一個,所以只能靠裝置自己 fallback)。另一個反例是訪客網路:Livebox 的訪客 SSID 不吃自訂 DNS,走的是隔離網段,Pi-hole 看不到那邊的查詢,這點我一開始沒注意到。
現在這台 Pi 還是跑著,但我已經不把它當唯一 DNS 了。你們在法國用 Livebox 或 Freebox 的時候,是把 Pi-hole 當唯一 DNS,還是會留一台備援?備援是另一台 Pi,還是直接讓路由器當第二個?
0 条评论
还没有评论,写下第一条。