cftunnel:一键搞定 Cloudflare Tunnel,让内网穿透变得简单
痛点场景
你在本地开发了一个 Web 应用,调试完毕后想分享给外地同事预览,却发现:
- 没有公网服务器,无法直接部署
- 花生壳、ngrok 等工具要么限速、要么需要付费
- 手动配置 Cloudflare Tunnel 虽然免费,但需要记住一堆命令行参数
这就是大多数开发者在「让本地服务对外可见」时遇到的困境。cftunnel 正是为解决这个场景而生。
cftunnel 是什么
cftunnel 是一个 Cloudflare Tunnel 的管理工具,专为 OpenClaw 生态优化。它的核心目标是:用最少的配置,把本地服务暴露到外网。
相比直接使用 cloudflared 命令行,cftunnel 提供了更友好的交互界面和自动化配置能力。目前在 GitHub 已获得 232 个 stars,版本稳定在 0.8.1。
核心原理
Cloudflare Tunnel 的本质是创建一个从你的服务器到 Cloudflare 边缘节点的持久连接。所有流量通过这个加密隧道传输,外部用户访问的是 Cloudflare 分配的域名,而非你的真实 IP。
cftunnel 在此基础上做了两层封装:
- 配置生成层:自动读取 OpenClaw 的服务配置,生成对应的 tunnel 规则
- 进程管理层:简化 cloudflared 的启动、停止、重启操作
# cftunnel 的简化流程
用户操作 → cftunnel 解析配置 → 生成 cloudflared 指令 → 启动 tunnel → 返回访问地址
安装与使用
安装 cftunnel 非常简单:
# 通过脚本安装
curl -fsSL https://raw.githubusercontent.com/你的repo/cftunnel/main/install.sh | bash
基本使用流程:
# 初始化配置
cftunnel init
# 启动 tunnel
cftunnel up
# 查看状态
cftunnel status
# 停止服务
cftunnel down
配置文件示例(cftunnel.yaml):
tunnel_name: my-local-site
credentials_file: ~/.cloudflared/credentials.json
services:
- name: web
url: http://localhost:3000
ingress_rule: "example.com"
- name: api
url: http://localhost:8080
ingress_rule: "api.example.com"
与同类工具的对比
| 特性 | cftunnel | 传统 cloudflared | ngrok | 花生壳 |
|---|---|---|---|---|
| 费用 | 免费 | 免费 | 免费版限速 | 免费限流量 |
| 配置复杂度 | 低 | 高 | 低 | 中 |
| OpenClaw 集成 | 原生支持 | 需手动 | 不支持 | 不支持 |
| 多服务管理 | 支持 | 部分支持 | 付费版支持 | 不支持 |
| 自定义域名 | 支持 | 支持 | 付费版 | 不支持 |
cftunnel 的优势在于:零配置接入 OpenClaw生态,如果你已经在使用 OpenClaw,cftunnel 可以无缝集成,不需要额外的学习成本。
技术架构亮点
自动化凭证管理
cftunnel 会自动处理 tunnel 的认证凭证创建和续期,用户不需要手动执行 cloudflared tunnel login。
热重载机制
修改配置后无需重启服务,cftunnel 支持配置热加载:
cftunnel reload
日志聚合
将 cloudflared 的分散日志统一收集,方便排查连接问题:
cftunnel logs --follow
适用场景
- 本地开发调试:快速分享本地站点给团队成员或客户
- 临时演示环境:不需要购买服务器即可对外展示
- 家庭实验室:将树莓派上的服务暴露到互联网
- CI/CD 流水线:自动化部署时动态创建访问入口
小结
cftunnel 解决的不是什么高深的技术难题,而是一个实实在在的效率问题。它把 Cloudflare Tunnel 的强大能力封装成几条简单的命令,让开发者专注于业务本身。如果你正在使用 OpenClaw 或者需要一种可靠的内网穿透方案,cftunnel 值得一试。