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 或局域网地址。
访问者连接的是你的公共主机名和 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 架构的最新安装命令。以下命令仅作安全操作顺序参考,包地址可能会变。
步骤 1:更新 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使用正确配置路径以 Linux 服务方式运行 cloudflared
Linux 上关键是配置路径。若用 sudo 安装服务,主目录可能变为 root 的,服务可能找不到你以 pi 用户测试的配置。
服务步骤 1:使用明确配置路径安装服务
避免了测试时 pi 用户配置与服务账户因 sudo 主目录不同步的常见问题。
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小型常在线隧道运维清单
只有重启、更新、日志和访问规则都稳定,家庭隧道才算真正可靠。广泛分享前请先测试这些基础环节。
重启 Raspberry 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 吗?
适合。如果你需要一个始终在线的小型家庭服务器或实验室服务连接器,Raspberry Pi 功耗低、性能稳定,比日常笔记本更适合长时间在线。
需要路由器端口转发吗?
不需要。Cloudflare Tunnel 通过 cloudflared 向 Cloudflare 发起出站连接,访问者无需直接访问你的路由器端口。
我应该改用 GhostlyShare CLI 吗?
当你需要应用管理的本地共享(如预览、Webhook、脚本共享或长期在线的共享)时,使用 GhostlyShare 或 ghs CLI。若你想完全控制服务文件、入口配置和主机操作系统,则选择 Raspberry Pi 配合 cloudflared。
这会让我的家庭服务器匿名吗?
不会。它可以对访客隐藏源地址,但 Cloudflare 账户数据、域名记录、付款信息、日志、内容和管理员行为仍可能将项目与你关联。
