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 在此基础上做了两层封装:

  1. 配置生成层:自动读取 OpenClaw 的服务配置,生成对应的 tunnel 规则
  2. 进程管理层:简化 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 值得一试。