知道 Cloudflare Tunnel 能解决没有公网 IP 的问题之后,很多人卡在第一步:要装什么?Account ID 在哪里?API Token 权限怎么选?Tunnel 创建后怎么连接?
这篇文章不讲复杂原理,目标很明确:从安装到连上第一条 Tunnel,三步走完。
解决方案概览
Cloudflare Tunnel fnOS 应用内置 cloudflared,无需你额外下载或手动安装依赖。应用安装后,只需要准备两样东西:Cloudflare Account ID 和具备必要权限的 API Token。

第一步:在 fnOS 应用中心安装
打开 fnOS 应用中心,找到 Cloudflare Tunnel 应用并安装。应用内置了 cloudflared 客户端,无需额外安装任何依赖。
1.1 安装步骤
- 打开 fnOS Web 管理后台。
- 进入「应用中心」,搜索「Cloudflare Tunnel」或「Tunnel」。
- 点击「安装」按钮,系统会自动下载并安装应用。

- 在安装向导中,填写 Cloudflare 账号凭据(Account ID 和 API Token 获取方式见第二步)。
- 点击「下一步」,等待应用安装完成。

- 安装完成后,应用会出现在 fnOS 侧边栏中。点击即可进入 Tunnel 管理界面。
1.2 首次启动
安装后首次打开应用,你会看到首页仪表盘,显示 Tunnel 服务处于「已停止」状态。

此时需要先完成账号配置,才能开始使用 Tunnel 功能。点击「账户配置」按钮进入配置页面。
1.3 架构支持
应用会根据你的设备架构自动选择对应版本的 cloudflared:
| 架构 |
支持 |
| amd64(x86_64) |
支持 |
| arm64(aarch64) |
支持 |
| arm(armv7l) |
支持 |
| i386(i686) |
支持 |
1.4 更新与卸载
- 更新:当 fnOS 应用中心提示有新版本时,点击更新即可。更新不会丢失已有的配置和 Tunnel 信息。
- 卸载:在 fnOS 应用中心找到 Cloudflare Tunnel,点击卸载。卸载前建议先断开所有 Tunnel 连接,并在 Cloudflare 控制台清理不再使用的 Tunnel 和 DNS 记录。
第二步:配置 Account ID 与 API Token
安装完成后,打开 Cloudflare Tunnel 应用,进入「系统配置」页面。系统配置页面中的「Cloudflare 配置」包含两项信息:
| 配置项 |
说明 |
| 账号 ID(Account ID) |
Cloudflare 账号的唯一标识,用于定位你的账号 |
| API 令牌(API Token) |
授权凭证,控制应用能执行哪些操作 |

2.1 获取 Account ID
- 登录 Cloudflare 控制台后,找到搜索框,输入「id」。
- 在搜索结果中,你会看到「复制帐户 ID」按钮。
- 点击复制按钮即可复制 Account ID。

2.2 创建 API 令牌
推荐创建自定义令牌,只授予应用所需的最小权限。
- 登录 Cloudflare 控制台,点击右上角的头像,点击「配置文件」按钮进入账号配置页面。

- 点击右侧导航栏中的「API 令牌」按钮,进入 API 令牌页面,然后点击右上角的「创建令牌」按钮。

- 点击「创建自定义令牌」右侧的「开始使用」按钮进入自定义令牌创建页面。

2.3 最小权限设置
为了安全,建议只授予应用所需的最小权限。在创建自定义令牌的权限设置页面,添加以下两项权限:
- Cloudflare Tunnel:读取 + 编辑
- DNS:读取 + 编辑
资源选择默认的「所有帐户」和「所有区域」即可,这是最简单且最不容易出错的方式。

注意: Cloudflare 有两个与 DNS 相关的权限——「DNS」和「DNS 设置」。我们要选的是 DNS,不要选成「DNS 设置」。选错了会导致 Tunnel 无法自动创建 DNS 记录。
进阶提示: 如果你熟悉 Cloudflare 的使用规则,可以将「所有帐户」改为你的指定账户、将「所有区域」改为你的指定域名,进一步缩小权限范围。但新手建议直接用默认的「所有」,避免因资源选择错误导致配置失败。
2.4 完成创建
-
其他选项保持默认,直接点击「继续以显示摘要」,确认权限无误。
-
点击「创建令牌」。

-
令牌创建后只显示一次! 立即复制 Token 并保存到安全的地方。

注意: 如果点击「创建令牌」按钮后,提示「Please verify your email」,请先验证你的邮箱,然后重试创建令牌。如果你找不到那封邮件,可以在 Cloudflare 控制台的「配置文件」->「访问管理」->「身份验证」->「双因素身份验证」中重新发送验证邮件。

2.5 填写并测试配置
回到 fnOS 的 Cloudflare Tunnel 应用:
- 进入「系统配置」页面。
- 在「Cloudflare 配置」区域,粘贴 Account ID 和 API 令牌。
- 点击「测试配置」按钮,验证凭据是否有效。
- 验证通过后,点击「保存配置」。

测试失败的常见原因:
- Account ID 复制错误(检查是否多复制了空格或换行)。
- API 令牌已过期或被撤销。
- 令牌权限不包含 Cloudflare Tunnel 的「读取」和「编辑」。
- 令牌权限不包含 DNS Zone 的「读取」和「编辑」。
- 域名没有接入 Cloudflare(DNS 未托管到 Cloudflare)。
- 因为版本更新,应用需要重新配置 API 令牌。
2.6 安全建议
- 不要分享 API 令牌:不要截图发到群聊、工单或社区。
- 单独创建令牌:为 Tunnel 应用创建专用令牌,不要与其他服务共用。
- 最小权限原则:只授予必需的权限。
- 定期轮换:建议每隔一段时间重新创建令牌并更新。
- 泄露处理:如果怀疑令牌泄露,立即在 Cloudflare 撤销该令牌,然后在应用中更新配置。
第三步:创建并连接第一条 Tunnel
配置保存成功后,进入「Tunnel 列表」页面。这是核心操作页面,在这里管理你的所有 Tunnel。

Tunnel 列表显示你的 Cloudflare 账号下所有 Tunnel,包含以下信息:
| 列 |
说明 |
| 名称 |
Tunnel 的名称,创建时自定义 |
| 状态 |
当前 Tunnel 的健康状态(健康/警告/非活跃/错误) |
| 创建时间 |
Tunnel 的创建日期 |
| 操作 |
连接、路由、删除等操作按钮 |
3.1 创建 Tunnel
- 点击「新建 Tunnel」按钮。
- 在弹出的对话框中输入 Tunnel 名称。

- 点击确认创建。应用会调用 Cloudflare API,在你的账户下创建一条新的 Tunnel。
关于命名:
- Tunnel 名称只用于你自己识别,不会影响功能。
- 建议使用有意义的名称,如
home-nas、fnos-main、office-server。
- 名称可以包含字母、数字和连字符。
3.2 连接 Tunnel
创建 Tunnel 后,需要「连接」才能开始使用:
- 在列表中点击目标 Tunnel 的「连接」按钮。
- 等待连接建立,状态变为「健康」即表示成功。
连接规则:
- 同时只能连接一个 Tunnel:如果当前已有 Tunnel 在运行,点击另一个 Tunnel 的「连接」会弹出确认对话框。
- 切换连接:确认后,当前连接会被断开,然后自动连接新的 Tunnel。

3.3 连接过程中发生的事
- cloudflared 客户端使用你的 API Token 向 Cloudflare 认证。
- 认证通过后,cloudflared 与 Cloudflare 边缘节点建立 WebSocket 长连接。
- 连接建立后,Cloudflare 会将发往该 Tunnel 关联域名的流量,通过这个长连接转发到你的 NAS。
3.4 状态说明
| 状态 |
含义 |
| 健康(healthy) |
Tunnel 正常运行,连接正常 |
| 警告(degraded) |
Tunnel 存在性能问题,但仍在工作 |
| 非活跃(inactive) |
Tunnel 已创建但未连接,或连接已断开 |
| 错误(down) |
Tunnel 连接异常中断 |
3.5 连接失败的排查顺序
- 打开「运行日志」页面,查看最近的错误信息。
- 确认 NAS 能正常访问外网(可以尝试 ping
cloudflare.com)。
- 确认 Account ID 和 API Token 仍然有效。
- 确认 API Token 没有被撤销或过期。
- 确认没有防火墙或网络策略阻止 cloudflared 的连接。
3.6 断开与删除 Tunnel
断开 Tunnel: 点击当前连接的 Tunnel 的「断开」按钮即可断开连接。断开后所有域名转发规则将暂时失效,内网服务不再能通过域名访问,但 Tunnel 本身不会被删除,下次可以重新连接。
删除 Tunnel: 点击目标 Tunnel 的「删除」按钮,在确认对话框中确认删除。

删除前请确认:
- Tunnel 当前未在连接使用。
- 该 Tunnel 下的域名转发规则不再需要。
- 相关的 DNS 记录可能需要手动清理。
删除操作不可恢复,请谨慎操作。
常见问题
1. 没有域名可以用吗?
如果要通过自己的域名稳定访问内网服务,需要准备一个已经接入 Cloudflare 的域名。如果只是测试,可以使用 Cloudflare 提供的快速 Tunnel(TryCloudflare),但域名是临时的,不适合长期使用。
2. API Token 权限是不是越多越好?
不是。最小权限原则更安全。只给 Tunnel 和 DNS 的「读取」+「编辑」权限即可。
3. 为什么 Tunnel 连上了,域名还打不开?
Tunnel 连接只是第一步。还需要配置 路由(Ingress) 规则(将域名映射到内网服务地址),并确保 DNS 记录正确指向 Tunnel。
4. 日志只能看最近的吗?
应用运行日志最多保留最近 200 条在内存中。应用重启后日志会清空。如果需要持久化日志,建议通过 API 或 SDK 将日志导出。
5. 可以创建多个 Tunnel 吗?
可以创建和管理多个 Tunnel,但同时只能有一条 Tunnel 处于连接状态。
6. 凭据保存在哪里?
凭据保存在 fnOS 设备上:/var/apps/com.dustinky.tunnel/etc/config.json。应用会以加密方式存储,不会上传到其他服务器。
总结
快速上手 Cloudflare Tunnel fnOS 应用,可以拆成三步:
- 安装应用:在 fnOS 应用中心一键安装,内置 cloudflared,无需额外配置。
- 配置凭据:获取 Account ID 和创建专用 API Token,测试通过后保存。
- 创建并连接 Tunnel:创建 Tunnel,点击连接,验证状态为「健康」。
三步走完,Tunnel 通道就打通了。下一步是配置 路由(Ingress) 规则,让域名真正指向你的内网服务。
下一期预告
下一篇:一个 Tunnel 暴露多个服务 — 用 Ingress 规则把多个内网服务映射到不同子域名,一个 Tunnel 搞定所有。