Pi-hole 安裝教學:先以單一裝置驗證過濾及還原

Pi-hole 安裝教學:先以單一裝置驗證過濾及還原

Marcus Reid
2026年10月11日· 8 分鐘讀完

Pi-hole 安裝宜先從一部客戶端開始,確認過濾與還原方法都可行。把服務裝在專用區域網絡主機,只讓測試電腦使用它;驗證封鎖和復原後,才考慮增加裝置。

關鍵要點:

  • 路由器原有 DNS 分發與 DHCP 服務維持不變。
  • 管理密碼保護後台;防火牆限制 DNS 查詢來源。
  • 查詢到達、封鎖、例外、繞行路徑及還原須分別核對。
  • 關閉 Pi-hole 主機前,先還原客戶端 DNS。

Pi-hole 安裝有甚麼前提?

本文以 Ubuntu 24.04 LTS x64 全新原生安裝,以及一部獲授權管理的 Windows 11 區域網絡客戶端為範圍。發行參考為 Core v6.4.3、FTL v6.7.1、Web v6.6,三個組件各自編號;繼續前須核對官方安裝程式取得的穩定版本組合。本文按官方文件整理,未進行完整端到端實測。[1][2][3]

承擔長期 DNS 維護前,可用自建服務的維護框架評估責任。Pi-hole 過濾域名查詢,不能保證移除所有廣告;DNS 廣告過濾的原理說明實際界限。

先準備 sudo 權限、本機控制台、穩定區域網絡地址和客戶端原有 DNS 記錄。受管理電腦、共用生產主機或未獲授權網絡不應繼續。升級既有安裝前,先在 Settings → Teleporter → Export 匯出設定,並備份相容主機環境;把資料庫複製回舊版本不等於受支援的降級還原。[14]

步驟 1:保存原有設定

在 Windows 開啟「設定 → 網絡和 Internet」,選擇目前的 Ethernet 連接或 Wi-Fi 網絡,記下 DNS 自動/手動模式、所有 IPv4/IPv6 伺服器與加密 DNS 設定。IP 地址和閘道分配不變。瀏覽器的「安全 DNS」另行記錄,它未必沿用 Windows 解析器。[5]

Ubuntu 須記錄主機地址、區域網絡介面、原有解析器和防火牆規則。在路由器既有 DHCP 服務預留主機地址,或採用管理員批准且不與租約衝突的固定設定;Pi-hole 不接管 DHCP。防火牆若以 IP 識別測試客戶端,也為該電腦預留地址。[4]

保存 /etc/resolv.conf 及其符號連結目標、resolved 配置,並記下 /etc/systemd/resolved.conf.d/90-pi-hole-disable-stub-listener.conf 是否已存在;既有檔案須保留原內容。先記錄運作正常的基線:

readlink -f /etc/resolv.conf
resolvectl status
getent hosts example.com

離線保存復原清單:原 DNS、Pi-hole/客戶端地址、管理入口、新增規則。查詢日誌含域名與客戶端身份,只在本機保留測試時段,不公開完整日誌或備份。

步驟 2:收窄 DNS 與管理存取

安裝前,在 Ubuntu 查看監聽服務與規則:

sudo ss -lntup
sudo ufw status numbered

DNS 需要 TCP 及 UDP 53;管理介面通常用 80/443,也可能選用後備連接埠。若與無關服務衝突便停止。安裝程式會自行停用 systemd-resolved 的 Stub Listener,服務本身繼續運作;FTL 啟動前,主機 DNS 可能中斷。不要自行停用系統解析器。本文不配置 DHCP 或 NTP。[4][15]

採用預設拒絕入站、保留回環流量的防火牆策略。啟用或改動前,保留已批准 SSH 規則及本機控制台救援途徑。以下例子只向已審查的 UFW 策略加入一部客戶端與一個管理來源,必須替換介面及兩個示例地址:

LAN_IF='enp1s0'
CLIENT_V4='192.168.1.25'
ADMIN_V4='192.168.1.10'
sudo ufw allow in on "$LAN_IF" from "$CLIENT_V4" to any port 53 proto udp
sudo ufw allow in on "$LAN_IF" from "$CLIENT_V4" to any port 53 proto tcp
sudo ufw allow in on "$LAN_IF" from "$ADMIN_V4" to any port 443 proto tcp
sudo ufw status numbered

較早的廣泛放行仍然有效,只移除你負責且與邊界衝突的規則。UFW 未啟用或未建立入站拒絕策略時,由主機管理員先完成,再接入客戶端。只放行實際 HTTPS 連接埠,HTTP 管理入口保持關閉。[6]

IPv6 必須受同等限制;只試 IPv4 時,IPv6 DNS 存取繼續拒絕。無須路由器連接埠轉發、公開 DNS 或訪客網存取。Pi-hole 的 Allow only local requests 允許本地子網,而非只有指定電腦;保留此模式,再以防火牆收窄。不要為排障選 Permit all origins。[7]

步驟 3:完成 Pi-hole 安裝步驟

先下載及閱讀官方安裝程式,再由主機操作者使用 sudo 執行:

wget -O basic-install.sh https://install.pi-hole.net
less basic-install.sh
sudo bash basic-install.sh
pihole version
pihole status
sudo pihole setpassword

選定預期區域網絡介面及網絡政策允許的上游 DNS,可選 DHCP 保持停用。服務身份由安裝程式管理,不改用個人管理帳戶執行,也不隨意改檔案擁有權繞過錯誤。以互動方式設定密碼,可避免密碼出現在命令參數。[8][9]

核對安裝版本與參考,差異須閱讀發行變更,不混裝舊組件。安裝失敗時不要改 Windows DNS。若停用 Stub Listener 後主機無法解析,使用本機控制台;只有確認該 drop-in 安裝前不存在、現在僅含安裝程式的 [Resolve]/DNSStubListener=no 設定,才執行:

sudo systemctl stop pihole-FTL
sudo rm -- /etc/systemd/resolved.conf.d/90-pi-hole-disable-stub-listener.conf
sudo systemctl restart systemd-resolved
getent hosts example.com

逐行執行,任何命令出錯便停止。檔案原先已存在或內容曾被改動時,由管理員按備份還原。重試安裝前核對 resolvectl status、原 /etc/resolv.conf 連結目標,以及主機正常解析。還原失敗便保留救援入口,不盲目覆寫解析配置。[15][16]

首次 HTTPS 登入時,在獲准 Windows 管理裝置開啟 Firefox about:profiles 頁面,記下原有預設設定檔,建立測試設定檔並在新瀏覽器中啟動。[18]Pi-hole 產生的憑證最初不獲瀏覽器信任;先在主機本機控制台記下 CA 指紋:

sudo openssl x509 -in /etc/pihole/tls_ca.crt -noout -fingerprint -sha256

只經已有可信管理途徑複製 tls_ca.crt,不要複製 tls.pem 或私鑰。在 Firefox 開啟「設定 → 私隱與安全 → 憑證 → 檢視憑證 → 憑證機構 → 匯入」,選擇該 CA,與控制台記錄比對指紋,吻合後才允許網站信任。CA 信任涵蓋它簽發的所有憑證,因此只用於此次測試設定檔。[17]

存取名稱須符合憑證及 /etc/pihole/pihole.toml 的 webserver.domain。管理裝置 DNS 無法解析名稱時,先記下原狀,再以管理員權限於 Windows C:\Windows\System32\drivers\etc\hosts 暫時加入 LAN_IP hostname,替換兩個值。使用該名稱及已放行 HTTPS 連接埠存取;名稱或信任仍出現警告便停止,不繞過驗證。登入後核對 DNS 監聽模式、封鎖已啟用,並暫時啟用查詢日誌;登入成功不代表 DNS 存取受限。[10][17]

步驟 4:只更改 Windows DNS

編輯目前連接的 DNS server assignment,改為手動,以 Pi-hole 區域網絡 IPv4 地址作首選 DNS。IP 分配不變,不填公共後備 DNS,以免另闢解析路徑。Pi-hole 的 53 連接埠提供普通 DNS,不能套用 DoH 範本;逐裝置配置不改路由器 DNS。[5][11][13]

另查 IPv6 DNS。仍有其他活躍解析器時,只能稱為 IPv4 驗證,不能聲稱整部電腦均被過濾。雙棧驗證須先有穩定 Pi-hole IPv6 地址、只允許指定客戶端的 IPv6 來源,再設定該解析器;未能辨認全部路徑便停止。

瀏覽器安全 DNS 若繞過系統,僅在獲授權測試設定暫時停用並記錄。VPN、代理及機構政策維持原樣。Windows 原本已不能解析時,先用裝置排障次序定位;主機本身的解析問題轉Ubuntu DNS 故障檢查。

步驟 5:驗證封鎖及單項例外

在管理裝置開啟 Pi-hole 查詢日誌。Windows 對 example.com 作新查詢,先指定 Pi-hole,再經預設解析器;把示例主機地址換成實際值:

nslookup example.com 192.168.1.53
nslookup example.com

核對日誌的時間、客戶端、域名及允許狀態。然後於 Domains 加入 example.com 的 exact deny 精確拒絕項,註明測試用途,不用萬用字元或正則規則。重做兩次查詢,以封鎖狀態判斷,不要求特定回應地址,因為不同封鎖模式的答案可以不同。[9]

再為同一域名加入 exact allow 精確允許項,示範單項例外;精確允許優先於精確拒絕。確認兩項都套用至客戶端所屬群組,新安裝通常使用預設群組。查詢應獲允許;只刪臨時允許項後應再封鎖,最後刪臨時拒絕項並確認正常解析。不要在清理時刪除既有規則。[12]

這驗證的是 DNS 決策,並非網頁外觀。快取頁面、同域廣告和瀏覽器獨立解析仍可能顯示廣告。若目的是改變公共網絡出口,可比較DNS 工具與全流量隧道;Pi-hole 安裝不會提供該功能。

步驟 6:增加裝置前驗收邊界

下表列出讀者應做的檢查,並非作者已取得的結果。非授權來源檢查需要另一部你控制的裝置;沒有便記為未執行,不能宣稱邊界已實測。

檢查方法預期現象失敗時處理
指定及預設解析器的新查詢Pi-hole 記下相應客戶端與域名檢查地址、介面、規則及其他解析器
正常與精確拒絕域名正常允許,測試域名記為封鎖檢查規則啟用、群組和上游解析
加入再移除精確允許項例外生效,移除後再封鎖核對優先次序與客戶端群組
查看 IPv4、IPv6、瀏覽器 DNS每條聲稱覆蓋的路徑都經 Pi-hole收窄結論或完成遺漏路徑
未列入名單的自有裝置查詢UDP、TCP DNS 均不提供服務先修正廣泛防火牆放行
未列入名單裝置存取管理介面無法開啟後台限制實際 Web 連接埠,包括 IPv6
還原客戶端原有 DNS預設新查詢不依賴 Pi-hole 正常運作核對原 DNS 模式及地址

逾時本身不證明防火牆拒絕;須在 Pi-hole 運作時比較兩個來源。TCP 另行測試,可在 Windows nslookup 互動模式使用 set vc。無須外部掃描。

如果單裝置試用已經不夠、還需要按域名使用不同的上游解析器,下一步可以看按域名分流上游的 AdGuard Home。

步驟 7:完成 Pi-hole DNS 還原

Windows 須精確回復保存的設定:原來自動便恢復自動,原來手動便填回完整 DNS 列表與加密設定,瀏覽器也回復原狀。停止 Pi-hole 前,先確認預設新查詢與原本正常的網頁可用。Microsoft DNS 重設會採用 DHCP 提供的伺服器,不能代替恢復原有手動列表。[11]

核對目前項目身份後,只刪本次臨時域名項與新增防火牆規則,還原日誌設定。若退役專用安裝,確定客戶端不再依賴才用官方解除安裝程式。備份保密,確認復原前保留主機救援途徑。[9]

在 Firefox 憑證機構中,只移除符合已記錄指紋的 CA,恢復原有預設設定檔,並只還原此次暫時 hosts 項。官方解除安裝程式會移除上述 resolved drop-in,之後仍須核對主機 DNS;安裝未完成時改用步驟 3 的條件式還原。[16][17][18]

總結

  • 使用受支援的專用主機,只改一部客戶端 DNS。
  • 管理認證、DNS 存取與過濾分開驗證。
  • IPv6 和瀏覽器 DNS 需要獨立檢查。
  • 先還原 DNS,再移除本次配置。

常見問題

不改路由器 DNS 也能安裝 Pi-hole 嗎?

可以。將一部獲授權客戶端的 DNS 直接設為 Pi-hole 區域網絡地址,保留路由器原有 DNS 分發及 DHCP 服務。

一定要用 Raspberry Pi 嗎?

不必。本文使用受支援的 Ubuntu x64 主機,所述原生安裝方法不要求使用 Raspberry Pi 硬件。

為何後台可登入,域名卻不能解析?

管理介面與 DNS 的連接埠及存取控制不同。應檢查 DNS 服務與 53 連接埠兩種協議,而不是削弱後台認證。

封鎖生效後為何仍看見廣告?

DNS 過濾只封鎖匹配域名,無法移除允許域名內的全部廣告;瀏覽器解析及快取也會改變畫面。

要加公共 DNS 作後備嗎?

這次受控試用不加。後備解析器會形成繞行路徑;需要復原時,還原原有 DNS 配置較能保持結果清晰。

IPv4 正常可以略過 IPv6 嗎?

可以限定只試 IPv4,但必須說明範圍;其他 IPv6 解析器可能仍獨立運作,不能計入已驗證的過濾覆蓋。

還原客戶端設定必須解除安裝 Pi-hole 嗎?

不必。先還原客戶端 DNS 並核對解析;移除所有依賴後,是否解除安裝是另一項主機管理決定。

免責聲明:本文依據文件編寫,不代表已完成裝置實測。只操作獲授權裝置,並保留有效復原途徑。

來源:

  1. Pi-hole Core v6.4.3 — https://github.com/pi-hole/pi-hole/releases/tag/v6.4.3
  2. Pi-hole FTL v6.7.1 — https://github.com/pi-hole/FTL/releases/tag/v6.7.1
  3. Pi-hole Web v6.6 — https://github.com/pi-hole/web/releases/tag/v6.6
  4. Pi-hole Prerequisites — https://docs.pi-hole.net/main/prerequisites/
  5. Microsoft Essential Network Settings and Tasks in Windows — https://support.microsoft.com/en-us/windows/experience/connectivity-networking/essential-network-settings-and-tasks-in-windows
  6. Ubuntu Firewall — https://ubuntu.com/server/docs/how-to/security/firewalls/
  7. Pi-hole Interface Binding Behavior — https://docs.pi-hole.net/ftldns/interfaces/
  8. Pi-hole Installation — https://docs.pi-hole.net/main/basic-install/
  9. The pihole Command — https://docs.pi-hole.net/main/pihole-command/
  10. Pi-hole Configuration — https://docs.pi-hole.net/ftldns/configfile/
  11. Microsoft Set-DnsClientServerAddress — https://learn.microsoft.com/en-us/powershell/module/dnsclient/set-dnsclientserveraddress
  12. Pi-hole Domain Database — https://docs.pi-hole.net/database/domain-database/
  13. Pi-hole Post-Install — https://docs.pi-hole.net/main/post-install/
  14. Pi-hole Web v6.6 Teleporter — https://github.com/pi-hole/web/blob/v6.6/settings-teleporter.lp
  15. Pi-hole Core v6.4.3 Installer — https://github.com/pi-hole/pi-hole/blob/v6.4.3/automated%20install/basic-install.sh
  16. Pi-hole Core v6.4.3 Uninstaller — https://github.com/pi-hole/pi-hole/blob/v6.4.3/automated%20install/uninstall.sh
  17. Pi-hole TLS/SSL — https://docs.pi-hole.net/api/tls/
  18. Firefox Profile Manager — https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles

Sources checked 2026 年 10 月 11 日。


延伸閱讀:

開啟 3 天免費試用

註冊即可免費體驗全部高級功能。

*只限新用戶;每位用戶只可獲得一次試用。

Pi-hole 安裝教學:先以單一裝置驗證過濾及還原 | AethoVPN