Raspberry Pi 隧道設定
Raspberry Pi 上的 Cloudflare Tunnel,打造持續在線家用伺服器
本指南適用於 Raspberry Pi 或小型迷你電腦需持續運行 cloudflared 並維持真實主機名稱,涵蓋設定、systemd、安檢及何時選擇 GhostlyShare 或 ghs CLI 較輕便。
目標是穩定的出站連接器,而非神奇匿名。訪客無需路由器存取,但 Cloudflare、您的帳號及使用習慣仍然重要。
當隧道需在筆電休眠、桌面登出及日常工作中持續運作時,Raspberry Pi 非常實用。若偏好應用程式或 CLI 流程而非手動服務檔,GhostlyShare 也適合長時間分享。
目錄
簡短回答:隧道需持續在線時,使用 Raspberry Pi
當網站、儀表板、Webhook 端點或實驗室服務需持續可達且不依賴日常筆電時,Raspberry Pi 是良好 Cloudflare Tunnel 連接器。這不是唯一長時間運行選項,GhostlyShare 也能提供更簡便的隧道流程。
| 需求 | 使用 | 原因 |
|---|---|---|
| 家用服務的持續在線主機名稱 | Raspberry Pi 上的 Cloudflare Tunnel | Pi 可持續在線、可預測重啟,並以 Linux 服務方式執行 cloudflared。 |
| 預覽、Webhook 回調或受管分享 | GhostlyShare | GhostlyShare 將隧道流程維持在應用程式或 CLI 中,比手動維護 cloudflared 設定更簡單。 |
| 具更強隔離性的生產環境應用 | VPS 或受管主機 | 公開伺服器通常較易監控、備份,且能與家用網路分離。 |
簡易架構:訪客、Cloudflare、Pi、在地服務
Cloudflare Tunnel 保持來源端出站連線。Raspberry Pi 開啟連接器連線至 Cloudflare,Cloudflare 將您的公開主機名稱映射至本地服務,如 localhost:3000 或 LAN 位址。
訪客會連接到您的公開主機名稱與 Cloudflare 邊緣節點,而非您家中路由器的埠口。
Cloudflare 掌控公開邊緣、DNS 區域、隧道映射及主機名稱的請求路徑。
cloudflared 在 Pi 上執行,並維持對 Cloudflare 的外部連線會話。
實際應用程式可保留在 localhost、其他埠口,或 Pi 可存取的區域網路主機。
請勿將此視為對所有方的隱私防護牆,主要是防止訪客與隨機掃描直接連到您家中路由器或得知來源。
安裝 cloudflared 前先準備 Raspberry Pi
大多數隧道故障並非 Cloudflare 所致,而是因裝置不穩定、本地服務地址變動,或服務使用者無法讀取設定檔。
以 Raspberry Pi OS 或 Debian 為起點,更新系統,且裝置支援時優先使用 64 位元。
為 Pi 提供穩定的網路路徑,若服務需存取區域網路主機,建議使用有線乙太網路或 DHCP 保留。
在使用 Cloudflare、DNS 或 systemd 前,先確保應用程式在本地正常運作。
避免意外公開管理介面,私密工具應放在 Cloudflare Access 後方或保留在本地。
硬體選擇:挑選 Raspberry Pi 5 套件,不只裸板
作為隧道連接器,Raspberry Pi 5 套件比裸板更安全。您需要主板、穩定的 USB-C 電源、散熱或風扇,以及可靠的儲存裝置,才能避免誤怪 Cloudflare 造成斷線。
建議使用官方 Raspberry Pi 27W USB-C 電源或等效的 5V/5A 電源,且不可忽略散熱。電力不足與過熱即使 cloudflared 設定正確,也會造成隧道不穩。
Cloudflare Tunnel Raspberry Pi 安裝流程
請參考 Cloudflare 控制台或官方文件,取得適用您 Pi 架構的最新套件指令。以下指令僅為安全執行順序示範,非保證套件網址永不變動。
步驟一:更新 Pi 並確認架構
先安裝更新,再確認架構,以便從 Cloudflare 複製正確的 cloudflared 套件指令。
sudo apt update
sudo apt upgrade -y
dpkg --print-architecture步驟 2:使用官方最新指令安裝 cloudflared
請參考 Cloudflare 控制台或文件,取得符合您架構的 Linux 安裝指令。安裝後請確認執行檔完整。
# Paste the current official Cloudflare install command for your Pi here.
cloudflared --version步驟 3:認證並建立命名隧道
授權 Cloudflare 網域,建立命名隧道,並從輸出結果複製隧道 UUID。
cloudflared tunnel login
cloudflared tunnel create home-pi步驟 4:撰寫明確的 config.yml
執行前請替換隧道 UUID、主機名稱、本地服務與憑證路徑。備援規則應放最後。
mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.ymltunnel: <tunnel-uuid>
credentials-file: /home/pi/.cloudflared/<tunnel-uuid>.json
ingress:
- hostname: app.example.com
service: http://localhost:3000
- service: http_status:404步驟 5:驗證、設定 DNS 路由並前景執行
驗證入口規則,建立 DNS 路由,並在前景執行隧道,從其他網路測試連線。
cloudflared tunnel ingress validate
cloudflared tunnel route dns home-pi app.example.com
cloudflared tunnel run home-pi以正確設定路徑執行 cloudflared Linux 服務
Linux 上重要的是設定檔路徑。若用 sudo 安裝服務,家目錄會變成 root,服務可能找不到您以 pi 用戶測試的設定。
服務步驟 1:以明確設定路徑安裝服務
避免 sudo 家目錄與 pi 用戶測試設定不符的常見問題。
sudo cloudflared --config /home/pi/.cloudflared/config.yml service install服務步驟 2:啟用服務並檢查狀態
透過 systemd 啟動 cloudflared,確認使用預期設定且運作正常。
sudo systemctl enable --now cloudflared
systemctl status cloudflared服務步驟 3:查看日誌並測試重啟
利用日誌檢查設定路徑、憑證、DNS 與本地服務錯誤,確保路由可靠。
journalctl -u cloudflared -f
sudo systemctl restart cloudflared
systemctl status cloudflared小型常駐隧道操作檢查清單
家用隧道只有在重啟、更新、日誌與存取規則都穩定無虞時,才算真正可靠。公開 URL 前請先測試這些基本項目。
重新啟動 Pi,確認主機名稱可用,無需先開啟 SSH 連線。
將私有應用放在 Cloudflare Access、強化登入機制或本地網路邊界後方。
定期更新作業系統與 cloudflared,並於更新後確認服務狀態。
請勿公開含有隧道 ID、帳號郵件、主機名稱或私有服務名稱的日誌或截圖。
請有意識地備份設定檔,但隧道憑證須妥善保護,視同機密。
此架構可隱藏來源伺服器,但無法隱藏您的 Cloudflare 帳號、網域紀錄或管理行為。
故障排除:優先處理常見問題
| 症狀 | 可能原因 | 初步檢查 |
|---|---|---|
| 顯示 Cloudflare 錯誤頁面而非應用程式 | 隧道中斷、服務 URL 錯誤,或本地應用程式未監聽。 | 執行 systemctl status cloudflared、journalctl,並使用 curl 測試 Pi 上的本地服務。 |
| 服務在前景可運作,但安裝後無法啟動 | systemd 使用了不同的主目錄或設定路徑。 | 重新安裝服務,並明確指定 --config 路徑為 /home/pi/.cloudflared/config.yml。 |
| 主機名稱無法連接隧道 | DNS 路由、主機名稱或 Cloudflare 區域未連接到指定隧道。 | 在 Zero Trust 確認公開主機名稱,並執行 cloudflared tunnel info home-pi。 |
| 管理頁面可公開存取 | 入口規則指向無存取層的私人工具。 | 將其移至 Cloudflare Access 後方,或保持該服務僅限本地使用。 |
依賴前值得查看的官方文件
設定 Pi 時請保持 Cloudflare 官方文件開啟,產品名稱、套件指令、儀表板介面及方案限制可能會變動。
Raspberry Pi Cloudflare Tunnel 常見問題
常見問題
Raspberry Pi 適合用來架設 Cloudflare Tunnel 嗎?
適合,當您需要一個持續連線的小型家用伺服器或實驗室服務時。它低耗電、穩定且比每日使用的筆電更適合長時間上線。
我需要設定路由器埠轉發嗎?
不需要。Cloudflare Tunnel 透過 cloudflared 向 Cloudflare 建立出站連線,訪客無需直接連入您的路由器。
我應該改用 GhostlyShare CLI 嗎?
當您需要應用程式管理的本地分享(如預覽、Webhook、自動化分享或長期維持的分享)時,請使用 GhostlyShare 或 ghs CLI。若您想完全掌控服務檔案、入口設定及主機作業系統,則建議使用 Raspberry Pi 搭配 cloudflared。
這會讓我的家用伺服器變得匿名嗎?
不會。它能隱藏來源不被訪客看到,但 Cloudflare 帳戶資料、網域紀錄、付款資訊、日誌、內容及管理行為仍可能將專案與您連結。
