cftunnel 0.8.1 评测:Cloudflare Tunnel 一键管理工具让内网穿透变得如此简单

被 NAT 困住的开发者:内网穿透的燃眉之急

凌晨两点,你终于在本地跑通了新项目的 Web 服务。兴冲冲想把地址发给同事预览,却发现服务部署在公司内网——没有公网 IP,没有固定域名,外网访问形同奢望。

传统的内网穿透方案要么需要折腾复杂的配置文件,要么依赖不稳定的第三方服务。Cloudflare Tunnel 虽然免费、稳定、速度不错,但纯命令行配置对新手并不友好,每次新增服务都要手动敲命令、编辑 YAML。

cftunnel 正是为解决这个痛点而生——它让你用最少的操作,管理多条 Cloudflare Tunnel 隧道。

核心原理:Cloudflare Tunnel 如何打通内外网

理解 cftunnel 之前,先回顾 Cloudflare Tunnel 的工作方式:

  1. cloudflared 守护进程在本地运行,与 Cloudflare 边缘节点建立加密长连接
  2. 外部用户通过 Cloudflare 分配的临时域名(或自定义域名)访问
  3. 流量经由 Cloudflare 网络路由到 cloudflared,再转发到本地服务

整个过程不需要开放防火墙端口、不需要公网 IP,天然支持零信任安全模型。

cftunnel 的架构设计

cftunnel 定位为 cloudflared 的管理界面,核心功能包括:

  • 配置文件生成:将用户输入转化为标准 tunnel 配置文件
  • 隧道生命周期管理:启动、停止、重启隧道进程
  • 多隧道支持:同时管理多个独立隧道,适合微服务架构

项目仅有 237 GitHub Stars,但定位清晰——不做大而全的功能,只解决"配置管理"这一核心问题。

安装与实战:5 分钟完成内网穿透

# 克隆项目
git clone https://github.com/your-repo/cftunnel.git
cd cftunnel

# 一键安装(具体命令因系统而异)
./install.sh

# 启动交互式配置
cftunnel add my-web-app --local-port 3000 --remote-host myapp.example.com

配置完成后,cftunnel 自动生成 config.yml 并启动对应隧道:

tunnel: my-web-app
credentials-file: /root/.cloudflared/credentials.json
ingress:
  - hostname: myapp.example.com
    service: http://localhost:3000
  - service: http_status:404

访问 https://myapp.example.com,你的本地服务已经暴露在公网。

与同类工具的差异对比

特性 cftunnel 原生 cloudflared frp
配置复杂度 低(一键生成) 高(手动编辑 YAML) 中(需配置服务端)
多隧道管理 原生支持 需额外脚本 支持但配置繁琐
与 OpenClaw 集成
依赖第三方中转 ✅(需公网服务器)

cftunnel 的优势在于降低 Cloudflare Tunnel 的使用门槛,同时保留原生方案的稳定性和 Cloudflare 全球加速能力。

适用场景

  • 开发测试:快速让本地服务暴露给团队成员或客户
  • 临时演示:展会、汇报时需要公网访问内网演示环境
  • 家庭实验室:无公网 IP 的树莓派、NAS 需要远程访问
  • OpenClaw 生态:配合 OpenClaw 使用,管理 AI 应用的对外服务

对于已经有一定技术背景的用户,原生 cloudflared 足够满足需求;但如果你追求效率、经常管理多个隧道,cftunnel 值得一试。


项目地址:GitHub 搜索 cftunnel,当前版本 0.8.1。部署前建议阅读官方文档确认系统兼容性。