【开源】cftunnel — OpenClawClaude Code 生成的网页想分享?本地项目要远程调试?一条命令实现内网穿透,强化OpenClaw能力,从玩具过渡为实用生产力工具!
- 内容介绍
- 文章标签
- 相关推荐
各位佬友好,之前发过 ClawApp 和 OpenClaw汉化版 的帖子,感谢大家的反馈和支持,现在为大家带来了一款新的实用工具cftunnel,仓库内附带skills,安装提示词等,可以快速接入你的生产力工具,提高生产力以及可玩性,便捷性等,出门后,碰到急事,直接远程指挥openclaw来办公,预览调试,超级方便!出门还要干活,这谁顶得住
项目地址:GitHub - qingchencloud/cftunnel: 本地开发/AI 产出无法远程预览?一条命令让 localhost 秒变公网域名 | Cloudflare Tunnel CLI Manager
介绍单页:cftunnel — Cloudflare Tunnel 一键管理 CLI | 内网穿透工具
起因
最近 OpenClaw 太火了,佬友们应该都在玩,用它写代码、生成页面、搭 API 确实爽
但有个问题一直困扰我:AI 生成的东西跑在本地,没法给别人看,也没法远程用
不管你是谁,只要用 AI 在本地跑东西,迟早会遇到这些场景:
- 想分享预览:让 OpenClaw 生成了个网页/文档/作品集,跑在 localhost:3000,想发给朋友或客户看一眼——没公网 IP,打不开
- 远程调试:用 Claude Code 写了个后端 API,远程同事要联调——连不上
- 项目维护:本地跑着个管理后台或监控面板,出差在外想看一眼——访问不了
- 接回调:本地服务要接 GitHub Webhook、支付回调——收不到
之前的方案要么花钱(自己搭 frp 还得有台服务器),要么折腾(ngrok 免费版各种限制、域名随机变),要么就是 Cloudflare Tunnel 原生方案——免费是免费,但配置流程属实劝退:
装 cloudflared → 登录认证 → 创建隧道 → 手写 YAML 配置 → 去 Dashboard 建 DNS 记录 → 写 systemd 服务文件 → …
所以用 Go 写了个 CLI 把这些全封装了,叫 cftunnel
长什么样
免域名模式(零配置,装好就能用):
cftunnel quick 3000
# ✔ 隧道已启动: https://xxx-yyy-zzz.trycloudflare.com
一条命令,不需要 Cloudflare 账户、不需要 API Token、不需要域名。生成一个 *.trycloudflare.com 的随机公网地址,Ctrl+C 退出就没了,适合临时分享
自有域名模式(固定域名,稳定持久):
cftunnel init # 填 API Token 和账户 ID(一次性)
cftunnel create my-tunnel # 创建隧道(一次性)
cftunnel add app 3000 --domain app.example.com # 添加路由
cftunnel up # 启动
然后 app.example.com 就能访问你本地的 3000 端口了,DNS CNAME 记录是自动创建的,不用手动去 Dashboard 操作
免费、安全、无需公网 IP,走的是 Cloudflare 全球网络
和直接用 cloudflared 比
| 操作 | 原生 cloudflared | cftunnel |
|---|---|---|
| 免域名穿透 | cloudflared tunnel --url 手动操作 |
cftunnel quick <端口> 一条命令 |
| 创建隧道 | 浏览器登录 + 手动配 | 一条命令 |
| DNS 记录 | 手动去 Dashboard 建 CNAME | 自动创建 |
| 多个域名 | 手动改 YAML 配置文件 | add / remove / list |
| 开机自启 | 自己写 systemd/launchd | cftunnel install |
| 不用了清理 | 手动删隧道 + 删 DNS + 删配置 | cftunnel destroy 一键搞定 |
| 自更新 | 无 | cftunnel update |
安装
macOS / Linux 一行命令:
curl -fsSL https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.sh | bash
Windows(PowerShell):
irm https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.ps1 | iex
支持 6 个平台:macOS Intel / Apple Silicon、Linux amd64 / arm64、Windows amd64 / arm64
也可以去 Releases 手动下载,或者 git clone 下来 make build
方式一:免域名模式(零配置)
无需账户、Token、域名,装好就能用:
cftunnel quick 3000
# ✔ 隧道已启动: https://xxx-yyy-zzz.trycloudflare.com
适合临时分享和调试,Ctrl+C 退出后域名自动失效。需要固定域名请用方式二。
方式二:自有域名模式(前置条件)
6707dda2cb928589bd13bdf7f4a73c511380×560 39.4 KB
c4c17ce9ff68c03ecc40c3b14698acdf1380×674 142 KB
需要一个 Cloudflare 账户 + 一个域名,然后创建一个 API Token
Token 创建步骤(这里有个坑,我自己踩过好几次):
- 打开 https://dash.cloudflare.com/profile/api-tokens
- 点「创建令牌」→「创建自定义令牌」→「开始使用」
- 令牌名称随便填,比如
cftunnel - 添加 3 条权限(点「+ 添加更多」逐条加):
- 帐户 | Cloudflare Tunnel | 编辑
- 区域 | DNS | 编辑
- 区域 | 区域设置 | 读取
- 区域资源 → 包括 → 特定区域 → 选你的域名
- 创建后立即复制令牌,只显示一次
踩坑提醒:第 2、3 行要把左边的下拉框从「帐户」切换成「区域」,而且 DNS 权限要选「DNS」不是「DNS 设置」,这俩在 CF 中文界面里长得很像但不是一个东西,选错了调 API 会报权限不足
账户 ID 获取:Cloudflare 首页点域名,右下角「API」区域就能看到。或者首页账户名称旁边点「⋯」也能复制
配合 OpenClaw / Claude Code 的典型用法
场景 1:AI 生成的内容给别人预览(普通人最常用)
OpenClaw 生成了个网页、作品集、文档站,想发给朋友或客户看看效果:
cftunnel add preview 3000 --domain preview.example.com
cftunnel up
# 把 preview.example.com 发给对方就行,不用了 cftunnel remove preview 自动清掉
场景 2:远程调试 / 联调 API(开发者刚需)
本地跑着后端服务,远程同事要对接,或者自己在外面要调试家里的项目:
cftunnel add api 8080 --domain api.example.com
cftunnel up
# 同事直接调 api.example.com,跟线上环境一样
场景 3:远程访问本地项目(出差 / 移动办公)
家里或公司跑着管理后台、监控面板、数据库 UI,出门在外想看一眼:
cftunnel add admin 8888 --domain admin.example.com
cftunnel install # 注册系统服务,开机自启,7×24 在线
场景 4:接 Webhook 回调
GitHub Actions、支付平台的 Webhook 需要公网地址:
cftunnel add webhook 9801 --domain webhook.example.com
cftunnel up
场景 5:同时暴露多个服务
一个隧道可以挂多条路由,不用建多个隧道:
cftunnel add api 8080 --domain api.example.com
cftunnel add web 3000 --domain web.example.com
cftunnel add grafana 3001 --domain monitor.example.com
cftunnel list # 看看都挂了哪些
全部命令
quick <端口> 免域名内网穿透(零配置,终端挂起)
init 配置 API Token + 账户 ID
create <名称> 创建隧道
add <名称> <端口> 添加路由(--domain 指定域名)
remove <名称> 删除路由(自动清理 DNS)
list 列出所有路由
up / down 启停隧道
status 查看状态
logs [-f] 查看日志(-f 实时跟踪)
install / uninstall 系统服务(macOS launchd / Linux systemd / Windows Service)
destroy [--force] 删除隧道 + 所有 DNS 记录
reset [--force] 完全重置(删隧道 + 清本地配置)
version [--check] 版本信息 / 检查更新
update 自动更新到最新版
一些技术细节
技术栈:Go + cobra(CLI 框架)+ cloudflare-go/v6(CF API SDK)+ huh(交互式 TUI)
架构:单二进制文件,零运行时依赖,配置存在 ~/.cftunnel/config.yml,cloudflared 二进制自动下载到 ~/.cftunnel/bin/
跨平台:用 Go 的 build tags 做平台适配,macOS 用 launchd plist,Linux 用 systemd unit,Windows 用 sc.exe 注册系统服务,cftunnel install 一条命令搞定
CI/CD:goreleaser + GitHub Actions,推 tag 自动构建 6 个平台的二进制发到 Releases
踩过的坑:
- CF 中文界面的「DNS 设置」和「DNS」是两个不同的权限项,前者不包含 DNS Records API 的访问权限,选错了
CreateDNSRecord会报 403 - macOS 上检测进程是否存活,
proc.Signal(nil)对非子进程不可靠,最后改用kill -0判断 - goreleaser 跨平台构建时,只在 darwin 下定义了
service.New()函数(launchd),linux 构建直接报undefined,后来加了//go:build linux的 systemd 实现才过
项目信息
- GitHub:GitHub - qingchencloud/cftunnel: 本地开发/AI 产出无法远程预览?一条命令让 localhost 秒变公网域名 | Cloudflare Tunnel CLI Manager
- 产品主页:https://cftunnel.qt.cool
- 协议:MIT
- 语言:Go
欢迎 Star、Fork、提 Issue,有问题也可以在评论区聊
纯开源项目,MIT 协议,没有任何商业目的,配合 ClawApp 和 OpenClaw 使用体验更佳,希望对佬友们有帮助
支持免域名模式,可以使用下面终端命令来使用!
cftunnel quick <端口>
# ✔ 隧道已启动: https://xxx-yyy-zzz.trycloudflare.com
小技巧:将下面提示词,直接发给你的 OpenClaw 助手,让他帮你安装,超方便!
适合发送给 AI 的提示词,点击查看
你是一个熟悉 cftunnel 的运维助手。cftunnel 是 Cloudflare Tunnel 的 CLI 管理工具,用于内网穿透。
## 安装
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.ps1 | iex
## 两种模式
### 模式一:免域名(零配置,临时用)
cftunnel quick <端口>
# 自动生成 *.trycloudflare.com 随机域名,Ctrl+C 退出即失效
# 无需账户、Token、域名
### 模式二:自有域名(稳定持久)
需要引导用户准备两个参数:
1. API Token(API 令牌):
- 打开 https://dash.cloudflare.com/profile/api-tokens
- 点击「创建令牌」→「创建自定义令牌」→「开始使用」
- 添加 3 条权限(点「+ 添加更多」逐条添加):
帐户 | Cloudflare Tunnel | 编辑
区域 | DNS | 编辑(注意: 选「DNS」不是「DNS 设置」)
区域 | 区域设置 | 读取
- 第 2、3 行需先将左侧下拉框从「帐户」切换为「区域」
- 区域资源 → 包括 → 特定区域 → 选择域名
- 创建后立即复制令牌(只显示一次)
2. Account ID(账户 ID):
- 方式 A: https://dash.cloudflare.com → 点击域名 → 右下角「API」区域 → 账户 ID
- 方式 B: 首页 → 账户名称旁「⋯」→ 复制账户 ID
使用流程:
# 第 1 步: 配置认证(需要上面两个参数)
cftunnel init --token <API_TOKEN> --account <ACCOUNT_ID>
# 第 2 步: 创建隧道
cftunnel create <隧道名称>
# 第 3 步: 添加路由(自动创建 DNS CNAME 记录)
cftunnel add <路由名称> <本地端口> --domain <完整域名>
# 第 4 步: 启动
cftunnel up
## 其他命令
- cftunnel quick <端口> # 免域名模式(零配置)
- cftunnel down # 停止隧道
- cftunnel status # 查看状态
- cftunnel list # 列出所有路由
- cftunnel remove <名称> # 删除路由(自动清理 DNS)
- cftunnel destroy # 删除隧道 + 所有 DNS 记录
- cftunnel install # 注册系统服务(开机自启)
- cftunnel logs -f # 实时查看日志
- cftunnel update # 自动更新 cftunnel
## 注意事项
- 临时分享优先推荐 `cftunnel quick`,零配置最快
- 自有域名模式需先完成 `init` 和 `create`
- 添加路由时会自动创建 DNS CNAME 记录,删除时自动清理
- 一个隧道可以挂载多条路由(多个域名指向不同本地端口)
- 域名必须是用户 Cloudflare 账户中已有的域名的子域名
--【壹】--:
感谢反馈!这个问题已经在 v0.4.2 修复了。
根因是 add 命令推送 ingress 配置到 Cloudflare 远端时,如果失败了只打了个警告,没有中断,导致后续 up 启动时从远端拉到的是旧配置,缺失新路由
v0.4.2 改了两点:
- add 命令 ingress 推送失败现在会直接报错中断,不再静默吞掉
- up 命令启动前会自动同步本地路由到远端,兜底保证一致性
所以现在先 add 再 up(文档原顺序)是没问题的。你观察到的"先 up 再 add 就好了",是因为 cloudflared 运行中会实时监听远端配置变更,add 推送成功后立刻生效。
运行 cftunnel update 即可升级到 v0.4.2
image1306×194 16 KB
--【贰】--:
感谢大佬,用上了
--【叁】--:
感谢佬友分享
--【肆】--:
[!tip]感谢分享
--【伍】--:
感谢大佬 !好用
--【陆】--:
不错,懒人必备
--【柒】--:
好用!!!
--【捌】--:
用上了 好用 感谢
--【玖】--:
大佬太强了
--【拾】--:
感谢分享!
--【拾壹】--:
谢谢老板
--【拾贰】--:
- 要是整理成skill应该就更完美了
- 是不是不支持自定义协议 比如http ssh之类的?
--【拾叁】--:
感谢大佬 !
--【拾肆】--:
感谢佬友分享,用上了。
但是我在配置过程中,感觉文档中的操作顺序好像有点偏差,不知道是我环境问题还是怎么样
win10环境,下面这两个步骤,感觉要调换一下,需要先cftunnel up,下图的状态才能处于正常状态,这个时候执行cftunnel add才会生效,不然的话会缺失localhost指向tunnel的路径。(另外一段域名指向tunnel的是正常的)
4. 添加路由
将 app.example.com 指向本地 3000 端口 cftunnel add myapp 3000 --domain app.example.com
5. 启动隧道
cftunnel up
image623×697 33.6 KB
另外补充下,cftunnel up后,实测添加路由和删除路由都是实时生效的,不需要重启服务。
--【拾伍】--:
好用!!
--【拾陆】--:
[!tip]+感谢分享
--【拾柒】--:
感谢教程
--【拾捌】--:
非常不错,晚点试下
--【拾玖】--:
感谢大佬分享
各位佬友好,之前发过 ClawApp 和 OpenClaw汉化版 的帖子,感谢大家的反馈和支持,现在为大家带来了一款新的实用工具cftunnel,仓库内附带skills,安装提示词等,可以快速接入你的生产力工具,提高生产力以及可玩性,便捷性等,出门后,碰到急事,直接远程指挥openclaw来办公,预览调试,超级方便!出门还要干活,这谁顶得住
项目地址:GitHub - qingchencloud/cftunnel: 本地开发/AI 产出无法远程预览?一条命令让 localhost 秒变公网域名 | Cloudflare Tunnel CLI Manager
介绍单页:cftunnel — Cloudflare Tunnel 一键管理 CLI | 内网穿透工具
起因
最近 OpenClaw 太火了,佬友们应该都在玩,用它写代码、生成页面、搭 API 确实爽
但有个问题一直困扰我:AI 生成的东西跑在本地,没法给别人看,也没法远程用
不管你是谁,只要用 AI 在本地跑东西,迟早会遇到这些场景:
- 想分享预览:让 OpenClaw 生成了个网页/文档/作品集,跑在 localhost:3000,想发给朋友或客户看一眼——没公网 IP,打不开
- 远程调试:用 Claude Code 写了个后端 API,远程同事要联调——连不上
- 项目维护:本地跑着个管理后台或监控面板,出差在外想看一眼——访问不了
- 接回调:本地服务要接 GitHub Webhook、支付回调——收不到
之前的方案要么花钱(自己搭 frp 还得有台服务器),要么折腾(ngrok 免费版各种限制、域名随机变),要么就是 Cloudflare Tunnel 原生方案——免费是免费,但配置流程属实劝退:
装 cloudflared → 登录认证 → 创建隧道 → 手写 YAML 配置 → 去 Dashboard 建 DNS 记录 → 写 systemd 服务文件 → …
所以用 Go 写了个 CLI 把这些全封装了,叫 cftunnel
长什么样
免域名模式(零配置,装好就能用):
cftunnel quick 3000
# ✔ 隧道已启动: https://xxx-yyy-zzz.trycloudflare.com
一条命令,不需要 Cloudflare 账户、不需要 API Token、不需要域名。生成一个 *.trycloudflare.com 的随机公网地址,Ctrl+C 退出就没了,适合临时分享
自有域名模式(固定域名,稳定持久):
cftunnel init # 填 API Token 和账户 ID(一次性)
cftunnel create my-tunnel # 创建隧道(一次性)
cftunnel add app 3000 --domain app.example.com # 添加路由
cftunnel up # 启动
然后 app.example.com 就能访问你本地的 3000 端口了,DNS CNAME 记录是自动创建的,不用手动去 Dashboard 操作
免费、安全、无需公网 IP,走的是 Cloudflare 全球网络
和直接用 cloudflared 比
| 操作 | 原生 cloudflared | cftunnel |
|---|---|---|
| 免域名穿透 | cloudflared tunnel --url 手动操作 |
cftunnel quick <端口> 一条命令 |
| 创建隧道 | 浏览器登录 + 手动配 | 一条命令 |
| DNS 记录 | 手动去 Dashboard 建 CNAME | 自动创建 |
| 多个域名 | 手动改 YAML 配置文件 | add / remove / list |
| 开机自启 | 自己写 systemd/launchd | cftunnel install |
| 不用了清理 | 手动删隧道 + 删 DNS + 删配置 | cftunnel destroy 一键搞定 |
| 自更新 | 无 | cftunnel update |
安装
macOS / Linux 一行命令:
curl -fsSL https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.sh | bash
Windows(PowerShell):
irm https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.ps1 | iex
支持 6 个平台:macOS Intel / Apple Silicon、Linux amd64 / arm64、Windows amd64 / arm64
也可以去 Releases 手动下载,或者 git clone 下来 make build
方式一:免域名模式(零配置)
无需账户、Token、域名,装好就能用:
cftunnel quick 3000
# ✔ 隧道已启动: https://xxx-yyy-zzz.trycloudflare.com
适合临时分享和调试,Ctrl+C 退出后域名自动失效。需要固定域名请用方式二。
方式二:自有域名模式(前置条件)
6707dda2cb928589bd13bdf7f4a73c511380×560 39.4 KB
c4c17ce9ff68c03ecc40c3b14698acdf1380×674 142 KB
需要一个 Cloudflare 账户 + 一个域名,然后创建一个 API Token
Token 创建步骤(这里有个坑,我自己踩过好几次):
- 打开 https://dash.cloudflare.com/profile/api-tokens
- 点「创建令牌」→「创建自定义令牌」→「开始使用」
- 令牌名称随便填,比如
cftunnel - 添加 3 条权限(点「+ 添加更多」逐条加):
- 帐户 | Cloudflare Tunnel | 编辑
- 区域 | DNS | 编辑
- 区域 | 区域设置 | 读取
- 区域资源 → 包括 → 特定区域 → 选你的域名
- 创建后立即复制令牌,只显示一次
踩坑提醒:第 2、3 行要把左边的下拉框从「帐户」切换成「区域」,而且 DNS 权限要选「DNS」不是「DNS 设置」,这俩在 CF 中文界面里长得很像但不是一个东西,选错了调 API 会报权限不足
账户 ID 获取:Cloudflare 首页点域名,右下角「API」区域就能看到。或者首页账户名称旁边点「⋯」也能复制
配合 OpenClaw / Claude Code 的典型用法
场景 1:AI 生成的内容给别人预览(普通人最常用)
OpenClaw 生成了个网页、作品集、文档站,想发给朋友或客户看看效果:
cftunnel add preview 3000 --domain preview.example.com
cftunnel up
# 把 preview.example.com 发给对方就行,不用了 cftunnel remove preview 自动清掉
场景 2:远程调试 / 联调 API(开发者刚需)
本地跑着后端服务,远程同事要对接,或者自己在外面要调试家里的项目:
cftunnel add api 8080 --domain api.example.com
cftunnel up
# 同事直接调 api.example.com,跟线上环境一样
场景 3:远程访问本地项目(出差 / 移动办公)
家里或公司跑着管理后台、监控面板、数据库 UI,出门在外想看一眼:
cftunnel add admin 8888 --domain admin.example.com
cftunnel install # 注册系统服务,开机自启,7×24 在线
场景 4:接 Webhook 回调
GitHub Actions、支付平台的 Webhook 需要公网地址:
cftunnel add webhook 9801 --domain webhook.example.com
cftunnel up
场景 5:同时暴露多个服务
一个隧道可以挂多条路由,不用建多个隧道:
cftunnel add api 8080 --domain api.example.com
cftunnel add web 3000 --domain web.example.com
cftunnel add grafana 3001 --domain monitor.example.com
cftunnel list # 看看都挂了哪些
全部命令
quick <端口> 免域名内网穿透(零配置,终端挂起)
init 配置 API Token + 账户 ID
create <名称> 创建隧道
add <名称> <端口> 添加路由(--domain 指定域名)
remove <名称> 删除路由(自动清理 DNS)
list 列出所有路由
up / down 启停隧道
status 查看状态
logs [-f] 查看日志(-f 实时跟踪)
install / uninstall 系统服务(macOS launchd / Linux systemd / Windows Service)
destroy [--force] 删除隧道 + 所有 DNS 记录
reset [--force] 完全重置(删隧道 + 清本地配置)
version [--check] 版本信息 / 检查更新
update 自动更新到最新版
一些技术细节
技术栈:Go + cobra(CLI 框架)+ cloudflare-go/v6(CF API SDK)+ huh(交互式 TUI)
架构:单二进制文件,零运行时依赖,配置存在 ~/.cftunnel/config.yml,cloudflared 二进制自动下载到 ~/.cftunnel/bin/
跨平台:用 Go 的 build tags 做平台适配,macOS 用 launchd plist,Linux 用 systemd unit,Windows 用 sc.exe 注册系统服务,cftunnel install 一条命令搞定
CI/CD:goreleaser + GitHub Actions,推 tag 自动构建 6 个平台的二进制发到 Releases
踩过的坑:
- CF 中文界面的「DNS 设置」和「DNS」是两个不同的权限项,前者不包含 DNS Records API 的访问权限,选错了
CreateDNSRecord会报 403 - macOS 上检测进程是否存活,
proc.Signal(nil)对非子进程不可靠,最后改用kill -0判断 - goreleaser 跨平台构建时,只在 darwin 下定义了
service.New()函数(launchd),linux 构建直接报undefined,后来加了//go:build linux的 systemd 实现才过
项目信息
- GitHub:GitHub - qingchencloud/cftunnel: 本地开发/AI 产出无法远程预览?一条命令让 localhost 秒变公网域名 | Cloudflare Tunnel CLI Manager
- 产品主页:https://cftunnel.qt.cool
- 协议:MIT
- 语言:Go
欢迎 Star、Fork、提 Issue,有问题也可以在评论区聊
纯开源项目,MIT 协议,没有任何商业目的,配合 ClawApp 和 OpenClaw 使用体验更佳,希望对佬友们有帮助
支持免域名模式,可以使用下面终端命令来使用!
cftunnel quick <端口>
# ✔ 隧道已启动: https://xxx-yyy-zzz.trycloudflare.com
小技巧:将下面提示词,直接发给你的 OpenClaw 助手,让他帮你安装,超方便!
适合发送给 AI 的提示词,点击查看
你是一个熟悉 cftunnel 的运维助手。cftunnel 是 Cloudflare Tunnel 的 CLI 管理工具,用于内网穿透。
## 安装
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.ps1 | iex
## 两种模式
### 模式一:免域名(零配置,临时用)
cftunnel quick <端口>
# 自动生成 *.trycloudflare.com 随机域名,Ctrl+C 退出即失效
# 无需账户、Token、域名
### 模式二:自有域名(稳定持久)
需要引导用户准备两个参数:
1. API Token(API 令牌):
- 打开 https://dash.cloudflare.com/profile/api-tokens
- 点击「创建令牌」→「创建自定义令牌」→「开始使用」
- 添加 3 条权限(点「+ 添加更多」逐条添加):
帐户 | Cloudflare Tunnel | 编辑
区域 | DNS | 编辑(注意: 选「DNS」不是「DNS 设置」)
区域 | 区域设置 | 读取
- 第 2、3 行需先将左侧下拉框从「帐户」切换为「区域」
- 区域资源 → 包括 → 特定区域 → 选择域名
- 创建后立即复制令牌(只显示一次)
2. Account ID(账户 ID):
- 方式 A: https://dash.cloudflare.com → 点击域名 → 右下角「API」区域 → 账户 ID
- 方式 B: 首页 → 账户名称旁「⋯」→ 复制账户 ID
使用流程:
# 第 1 步: 配置认证(需要上面两个参数)
cftunnel init --token <API_TOKEN> --account <ACCOUNT_ID>
# 第 2 步: 创建隧道
cftunnel create <隧道名称>
# 第 3 步: 添加路由(自动创建 DNS CNAME 记录)
cftunnel add <路由名称> <本地端口> --domain <完整域名>
# 第 4 步: 启动
cftunnel up
## 其他命令
- cftunnel quick <端口> # 免域名模式(零配置)
- cftunnel down # 停止隧道
- cftunnel status # 查看状态
- cftunnel list # 列出所有路由
- cftunnel remove <名称> # 删除路由(自动清理 DNS)
- cftunnel destroy # 删除隧道 + 所有 DNS 记录
- cftunnel install # 注册系统服务(开机自启)
- cftunnel logs -f # 实时查看日志
- cftunnel update # 自动更新 cftunnel
## 注意事项
- 临时分享优先推荐 `cftunnel quick`,零配置最快
- 自有域名模式需先完成 `init` 和 `create`
- 添加路由时会自动创建 DNS CNAME 记录,删除时自动清理
- 一个隧道可以挂载多条路由(多个域名指向不同本地端口)
- 域名必须是用户 Cloudflare 账户中已有的域名的子域名
--【壹】--:
感谢反馈!这个问题已经在 v0.4.2 修复了。
根因是 add 命令推送 ingress 配置到 Cloudflare 远端时,如果失败了只打了个警告,没有中断,导致后续 up 启动时从远端拉到的是旧配置,缺失新路由
v0.4.2 改了两点:
- add 命令 ingress 推送失败现在会直接报错中断,不再静默吞掉
- up 命令启动前会自动同步本地路由到远端,兜底保证一致性
所以现在先 add 再 up(文档原顺序)是没问题的。你观察到的"先 up 再 add 就好了",是因为 cloudflared 运行中会实时监听远端配置变更,add 推送成功后立刻生效。
运行 cftunnel update 即可升级到 v0.4.2
image1306×194 16 KB
--【贰】--:
感谢大佬,用上了
--【叁】--:
感谢佬友分享
--【肆】--:
[!tip]感谢分享
--【伍】--:
感谢大佬 !好用
--【陆】--:
不错,懒人必备
--【柒】--:
好用!!!
--【捌】--:
用上了 好用 感谢
--【玖】--:
大佬太强了
--【拾】--:
感谢分享!
--【拾壹】--:
谢谢老板
--【拾贰】--:
- 要是整理成skill应该就更完美了
- 是不是不支持自定义协议 比如http ssh之类的?
--【拾叁】--:
感谢大佬 !
--【拾肆】--:
感谢佬友分享,用上了。
但是我在配置过程中,感觉文档中的操作顺序好像有点偏差,不知道是我环境问题还是怎么样
win10环境,下面这两个步骤,感觉要调换一下,需要先cftunnel up,下图的状态才能处于正常状态,这个时候执行cftunnel add才会生效,不然的话会缺失localhost指向tunnel的路径。(另外一段域名指向tunnel的是正常的)
4. 添加路由
将 app.example.com 指向本地 3000 端口 cftunnel add myapp 3000 --domain app.example.com
5. 启动隧道
cftunnel up
image623×697 33.6 KB
另外补充下,cftunnel up后,实测添加路由和删除路由都是实时生效的,不需要重启服务。
--【拾伍】--:
好用!!
--【拾陆】--:
[!tip]+感谢分享
--【拾柒】--:
感谢教程
--【拾捌】--:
非常不错,晚点试下
--【拾玖】--:
感谢大佬分享

