cftunnel:一条命令搞定 Cloudflare Tunnel 管理
内网穿透的痛点
本地跑了个服务想让外网访问?家里宽带没有公网 IP,部署云服务器又觉得杀鸡用牛刀。frp、ngrok 这些传统方案要么配置繁琐,要么稳定性堪忧,遇到需要快速演示的场景,光搞定穿透就折腾半天。
cftunnel 就是来解决这个问题的——它把 Cloudflare Tunnel 的管理流程大幅简化,一条命令搞定 tunnel 的创建、启动和管理。
Cloudflare Tunnel 工作原理
Cloudflare Tunnel 采用反向代理架构:本地启动 tunnel 客户端连接 Cloudflare 边缘节点,外部用户访问的是 Cloudflare 域名,流量通过加密隧道直接到达本地服务。
这种架构带来三个核心优势:
- 无需公网中转服务器,零额外成本
- Cloudflare 提供 DDoS 防护和全球 CDN 加速
- 一次配置,长期稳定运行
但官方客户端 cloudflared 对新手不太友好,尤其是多 tunnel 管理时,命令行参数复杂且容易混淆。
cftunnel 核心设计
cftunnel 将 cloudflared 常用操作封装为简洁的子命令,核心理念是:一个服务,一个 tunnel,一行命令。
主要功能
- 一键创建 tunnel:自动生成 tunnel 名称和 UUID,无需手动记录
- 服务别名:给每个 tunnel 起个好记的名字,方便管理
- 后台守护进程:确保 tunnel 稳定在线,断线自动重连
- 统一配置管理:记录所有 tunnel 的映射关系
快速上手
# 安装
curl -fsSL https://raw.githubusercontent.com/你的用户名/cftunnel/main/install.sh | bash
# 创建 tunnel,指向本地 8080 端口
cftunnel create myblog --port 8080 --name "博客服务"
# 启动 tunnel
cftunnel start myblog
# 查看运行状态
cftunnel list
整个过程比直接用 cloudflared tunnel run <UUID> 少打很多参数,cftunnel 会自动处理 credentials 文件路径和 tunnel 注册流程。
与同类工具对比
| 特性 | cftunnel | frp/ngrok | cloudflared 直接使用 |
|---|---|---|---|
| 配置复杂度 | 低 | 中 | 高 |
| 依赖外部服务器 | 否 | 是 | 否 |
| 免费额度 | Cloudflare 免费层 | 有限制 | Cloudflare 免费层 |
| 多 tunnel 管理 | 内置 | 需手动配置 | 需记忆 UUID |
| 适用场景 | 个人/小团队快速部署 | 有公网服务器的场景 | 进阶用户 |
对于不需要自定义域名的场景,Cloudflare Tunnel 本身已足够好用,cftunnel 只是在易用性上做了增强。
典型使用场景
场景一:客户演示
本地开发完成后想快速演示给客户,直接运行:
cftunnel create demo --port 3000
分享 Cloudflare 分配的随机子域名,对方即可访问,完全不需要对方安装任何客户端。
场景二:团队协作
OpenClaw 项目开发完成后,需要让团队成员或外部用户快速预览,cftunnel 可以一键创建 tunnel,将本地服务暴露给指定用户,同时通过 Cloudflare 的访问策略控制权限。
场景三:临时调试环境
临时需要公网访问的调试环境,无需购买云服务器,几分钟即可搭建,调试完成后一键删除。
在 OpenClaw 中的应用
OpenClaw 项目产出的内容经常需要外网访问支持。通过 cftunnel,可以让 OpenClaw 的本地服务快速支持外网访问,结合 Cloudflare Zero Trust 的访问策略,还能实现:
- 基于邮箱域名的访问控制
- 单点登录集成
- 访问日志和审计
这样团队成员只需要一个 Cloudflare 账号,就能安全地访问各个内网服务。
总结
cftunnel 不是替代 cloudflared,而是降低了它的使用门槛。如果你经常需要让本地服务快速暴露到公网,又不想维护复杂的穿透配置,可以试试这个工具。从创建到启动一条命令搞定,剩下的交给 Cloudflare 的基础设施。
项目地址:[GitHub 仓库链接],欢迎 Star 和贡献。