cftunnel:专为OpenClaw打造的Cloudflare Tunnel管理工具,内网穿透一键搞定

内网穿透的困境

开发 Web 应用时,你可能遇到过这样的场景:本地跑通了一个 demo,想让外地的同事或客户快速预览,却发现家里的宽带没有公网 IP,配置 Nginx 反向代理又容易踩坑。

传统的内网穿透方案存在明显短板:

  • frp:需要自己维护服务端,成本高、配置复杂
  • Cloudflare Tunnel:虽然免费且安全,但纯命令行操作对普通用户不够友好
  • 商业方案:费用高昂,中小团队难以承受

cftunnel(v0.8.1,GitHub 210 ⭐)正是为解决这些痛点而生——它是一个 Cloudflare Tunnel 一键管理工具,特别针对 OpenClaw 用户优化,让内网穿透变得像点个按钮一样简单。

工作原理

Cloudflare Tunnel 的底层原理并不复杂:

用户请求 → Cloudflare 边缘节点 → cloudflared 隧道 → 本地服务

客户端(cloudflared)与你指定的 Cloudflare 域名建立持久连接,Cloudflare 边缘节点根据这个连接将外部请求转发到内网服务。整个过程无需开放防火墙端口,安全性由 Cloudflare 处理。

cftunnel 在这个链路中扮演管理平面的角色。它通过调用 cloudflared 的管理 API,实现隧道的创建、删除、启停等操作,同时提供 Web 界面让你直观地管理多个隧道。

架构设计

cftunnel 采用轻量级架构:单个进程运行在目标内网机器上,通过 YAML 配置文件管理所有隧道:

tunnels:
  my-blog:
    hostname: my-blog.example.com
    tunnel: your-tunnel-id
    destination: localhost:3000
  api-service:
    hostname: api.example.com
    tunnel: your-tunnel-id  
    destination: localhost:8080

这种设计的优势在于:

  • 配置可以版本化管理
  • 重启后自动恢复状态
  • 多隧道共享同一个 cloudflared 进程,资源占用低

横向对比

特性 cftunnel frp 官方 cloudflared
配置复杂度 低,一键生成 中,需配置服务端 高,纯命令行
Web UI ✅ 有 ❌ 无 ❌ 无
OpenClaw 集成 ✅ 原生支持 ❌ 无 ❌ 无
多隧道管理 ✅ 集中管理 ✅ 支持 ❌ 需手动启动多个进程
费用 免费 服务端需付费 免费

cftunnel 的差异化定位很明确:面向 OpenClaw 生态,提供开箱即用的内网穿透体验。如果你已经在使用 OpenClaw 管理应用,cftunnel 可以无缝集成,避免额外的学习成本。

快速上手

安装

# Linux/macOS 一键安装
curl -fsSL https://raw.githubusercontent.com/your-repo/cftunnel/main/install.sh | bash

# 或使用 Go 安装
go install github.com/your-repo/cftunnel@latest

配置与启动

# 初始化配置文件
cftunnel init

# 编辑配置,添加隧道信息
vim ~/.cftunnel/config.yaml

# 启动服务
cftunnel serve

启动成功后,访问 http://localhost:8080 即可看到 Web 管理界面,所有隧道状态一目了然。

进阶操作

# 查看隧道状态
cftunnel status

# 热加载配置(无需重启)
cftunnel reload

# 查看日志
cftunnel logs -f

典型使用场景

远程协作:本地开发环境需要快速分享给异地同事,无需配置复杂网络。

演示分享:向客户演示未上线的 Web 应用,通过 cftunnel 生成临时外网访问地址。

内网工具外访:团队内网部署了 GitLab、Jenkins、Prometheus 等工具,偶尔需要外网访问时,通过 cftunnel 按需暴露。

Webhook 测试:开发支付回调、第三方 API Webhook 时,需要一个公网可访问的端点。

GitHub 上 210 颗 Stars 的热度说明这个工具确实解决了部分开发者的真实需求。如果你正在使用 OpenClaw 管理应用,或寻找一个简单可靠的内网穿透方案,不妨在 GitHub 上查看项目详情,尝试部署体验。