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 TunnelPi 可持續在線、可預測重啟,並以 Linux 服務方式執行 cloudflared。
預覽、Webhook 回調或受管分享GhostlyShareGhostlyShare 將隧道流程維持在應用程式或 CLI 中,比手動維護 cloudflared 設定更簡單。
具更強隔離性的生產環境應用VPS 或受管主機公開伺服器通常較易監控、備份,且能與家用網路分離。

簡易架構:訪客、Cloudflare、Pi、在地服務

Cloudflare Tunnel 保持來源端出站連線。Raspberry Pi 開啟連接器連線至 Cloudflare,Cloudflare 將您的公開主機名稱映射至本地服務,如 localhost:3000 或 LAN 位址。

訪客

訪客會連接到您的公開主機名稱與 Cloudflare 邊緣節點,而非您家中路由器的埠口。

Cloudflare

Cloudflare 掌控公開邊緣、DNS 區域、隧道映射及主機名稱的請求路徑。

Raspberry Pi

cloudflared 在 Pi 上執行,並維持對 Cloudflare 的外部連線會話。

本地服務

實際應用程式可保留在 localhost、其他埠口,或 Pi 可存取的區域網路主機。

請勿將此視為對所有方的隱私防護牆,主要是防止訪客與隨機掃描直接連到您家中路由器或得知來源。

安裝 cloudflared 前先準備 Raspberry Pi

大多數隧道故障並非 Cloudflare 所致,而是因裝置不穩定、本地服務地址變動,或服務使用者無法讀取設定檔。

使用穩定的 Linux 基底

以 Raspberry Pi OS 或 Debian 為起點,更新系統,且裝置支援時優先使用 64 位元。

穩定本地網路環境

為 Pi 提供穩定的網路路徑,若服務需存取區域網路主機,建議使用有線乙太網路或 DHCP 保留。

先確認本地應用程式

在使用 Cloudflare、DNS 或 systemd 前,先確保應用程式在本地正常運作。

決定哪些內容需保密

避免意外公開管理介面,私密工具應放在 Cloudflare Access 後方或保留在本地。

硬體選擇:挑選 Raspberry Pi 5 套件,不只裸板

作為隧道連接器,Raspberry Pi 5 套件比裸板更安全。您需要主板、穩定的 USB-C 電源、散熱或風扇,以及可靠的儲存裝置,才能避免誤怪 Cloudflare 造成斷線。

用作小型 Cloudflare Tunnel 家用伺服器的 Raspberry Pi 5 套件
推薦硬體

用於小型 Cloudflare Tunnel 家用伺服器的 Raspberry Pi 5 套件

尋找具備穩定 USB-C 電源、散熱、機殼與儲存的 Raspberry Pi 5 套件。4 GB 足夠執行 cloudflared,8 GB 則適合同時運行應用程式。

在 Amazon 查看
作為亞馬遜聯盟成員,我從符合資格的購買中獲取收益。
購買清單

建議使用官方 Raspberry Pi 27W USB-C 電源或等效的 5V/5A 電源,且不可忽略散熱。電力不足與過熱即使 cloudflared 設定正確,也會造成隧道不穩。

Cloudflare Tunnel Raspberry Pi 安裝流程

請參考 Cloudflare 控制台或官方文件,取得適用您 Pi 架構的最新套件指令。以下指令僅為安全執行順序示範,非保證套件網址永不變動。

1

步驟一:更新 Pi 並確認架構

先安裝更新,再確認架構,以便從 Cloudflare 複製正確的 cloudflared 套件指令。

ShellLinux 終端機
sudo apt update
sudo apt upgrade -y
dpkg --print-architecture
2

步驟 2:使用官方最新指令安裝 cloudflared

請參考 Cloudflare 控制台或文件,取得符合您架構的 Linux 安裝指令。安裝後請確認執行檔完整。

ShellLinux 終端機
# Paste the current official Cloudflare install command for your Pi here.
cloudflared --version
3

步驟 3:認證並建立命名隧道

授權 Cloudflare 網域,建立命名隧道,並從輸出結果複製隧道 UUID。

ShellLinux 終端機
cloudflared tunnel login
cloudflared tunnel create home-pi
4

步驟 4:撰寫明確的 config.yml

執行前請替換隧道 UUID、主機名稱、本地服務與憑證路徑。備援規則應放最後。

ShellLinux 終端機
mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.yml
ShellLinux 終端機
tunnel: <tunnel-uuid>
credentials-file: /home/pi/.cloudflared/<tunnel-uuid>.json

ingress:
  - hostname: app.example.com
    service: http://localhost:3000
  - service: http_status:404
5

步驟 5:驗證、設定 DNS 路由並前景執行

驗證入口規則,建立 DNS 路由,並在前景執行隧道,從其他網路測試連線。

ShellLinux 終端機
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

服務步驟 1:以明確設定路徑安裝服務

避免 sudo 家目錄與 pi 用戶測試設定不符的常見問題。

ShellLinux 終端機
sudo cloudflared --config /home/pi/.cloudflared/config.yml service install
2

服務步驟 2:啟用服務並檢查狀態

透過 systemd 啟動 cloudflared,確認使用預期設定且運作正常。

ShellLinux 終端機
sudo systemctl enable --now cloudflared
systemctl status cloudflared
3

服務步驟 3:查看日誌並測試重啟

利用日誌檢查設定路徑、憑證、DNS 與本地服務錯誤,確保路由可靠。

ShellLinux 終端機
journalctl -u cloudflared -f
sudo systemctl restart cloudflared
systemctl status cloudflared

小型常駐隧道操作檢查清單

家用隧道只有在重啟、更新、日誌與存取規則都穩定無虞時,才算真正可靠。公開 URL 前請先測試這些基本項目。

重啟測試

重新啟動 Pi,確認主機名稱可用,無需先開啟 SSH 連線。

存取規則

將私有應用放在 Cloudflare Access、強化登入機制或本地網路邊界後方。

更新

定期更新作業系統與 cloudflared,並於更新後確認服務狀態。

日誌管理

請勿公開含有隧道 ID、帳號郵件、主機名稱或私有服務名稱的日誌或截圖。

備份

請有意識地備份設定檔,但隧道憑證須妥善保護,視同機密。

隱私限制

此架構可隱藏來源伺服器,但無法隱藏您的 Cloudflare 帳號、網域紀錄或管理行為。

GhostlyShare 與 ghs CLI 的應用場景

當您想要類似 Cloudflare 的本地分享,但不想自行維護原始 cloudflared 設定時,GhostlyShare 是較輕量的選擇。它適合快速預覽、Webhook 回調、腳本流程及長期分享,前提是您有意識地管理運作時間。

使用 Pi 隧道進行手動控制;使用 GhostlyShare 享受受管理的隧道流程。

這個區分在於控制權,而非持續時間。Raspberry Pi 搭配 cloudflared 提供 systemd、明確的設定路徑、DNS 擁有權及底層服務。GhostlyShare 則提供更簡單的應用程式或 CLI 流程,依使用方式可短暫或長期運行。

故障排除:優先處理常見問題

症狀可能原因初步檢查
顯示 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 帳戶資料、網域紀錄、付款資訊、日誌、內容及管理行為仍可能將專案與您連結。