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 值得一试。