NAS 上通常不只跑一个服务。你可能有 fnOS 面板、Home Assistant、个人网站、AI 控制台,甚至还有几个临时开发服务。如果每个服务都单独折腾一套远程访问方案,很快就会乱——多个端口要记、多个 DDNS 要配、多个证书要管。
Cloudflare Tunnel 的 Ingress 规则,就是为"一个 Tunnel 转发多个服务"准备的。
解决方案概览
Ingress 规则可以理解为一张映射表:
- 访问
nas.example.com,转发到内网 NAS 面板(http://127.0.0.1:5666)。
- 访问
ha.example.com,转发到 Home Assistant(http://192.168.1.20:8123)。
- 访问
ai.example.com,转发到 AI 控制台(http://127.0.0.1:3000)。
所有服务共享同一个 Tunnel 通道,无需为每个服务单独配置。
什么是 Ingress 规则
Ingress 规则用于把公网 域名映射到内网服务地址。它通常包含两个核心信息:
- 域名(Hostname):外部访问时使用的域名,例如
nas.example.com。
- 服务地址(Service):内网服务的实际地址,例如
http://127.0.0.1:5666。
当 Cloudflare 边缘节点收到发往 nas.example.com 的请求后,它会检查 Tunnel 关联的 Ingress 规则,找到匹配的域名,然后将请求转发到对应的内网服务地址。
域名和服务地址怎么填
域名填写
使用清晰的子域名,示例:
nas.example.com → NAS 管理面板
ha.example.com → Home Assistant 智能家居
ai.example.com → AI 控制台(如 Open WebUI)
blog.example.com → 个人博客
dev.example.com → 开发环境
注意事项:
- 不要把多个服务混在同一个域名下(例如通过不同路径区分)。每个服务使用独立的子域名,这样更清晰、更易管理。
- 子域名使用小写字母和连字符,不要使用下划线。
服务地址填写
服务地址要写 NAS 能访问到的内网地址:
- 本机服务:
http://127.0.0.1:端口 或 http://localhost:端口。例如 fnOS 面板通常是 http://127.0.0.1:5666。
- 局域网其他设备:
http://192.168.1.x:端口。例如 Home Assistant 在局域网另一台设备上,IP 为 192.168.1.20,端口为 8123。
- Docker 容器:如果服务运行在 Docker 中,最好将端口映射到主机上,例如
http://127.0.0.1:3000,而不是 http://container-name:3000。
验证内网服务可达性:
在 NAS 上执行以下命令,确认服务地址可访问:
curl -I http://127.0.0.1:5666
如果返回 HTTP 状态码(如 200),说明服务地址正确。
配置 Ingress 规则的详细步骤
步骤 1:进入 Tunnel 详情页
- 打开 Cloudflare Tunnel fnOS 应用。
- 进入「Tunnel 列表」页面。
- 确保要配置的 Tunnel 处于「健康」连接状态。
步骤 2:添加 Ingress 规则
-
在找到指定的 Tunnel 后,点击「路由」按钮。

-
在右侧抽屉中,点击右下角的「添加路由」按钮。

-
在弹窗中填写以下信息:
-
域名:输入你要使用的子域名,例如 nas.example.com
-
服务地址:输入内网服务的完整 URL,例如 http://192.168.10.100:5666
-
不验证内网 HTTPS 证书:如果服务地址是 HTTPS 协议,请勾选此选项。

-
点击「添加」。

步骤 3:配置 DNS 自动创建
-
添加规则后,应用会自动尝试创建 CNAME DNS 记录,将子域名指向 Tunnel。
-
CNAME 记录的目标是 [tunnel-id].cfargotunnel.com。
-
如果自动创建成功,你会在Cloudflare 控制台中看到 DNS 记录已经创建成功。

步骤 4:验证规则是否生效
-
确认 Tunnel 状态为「健康」。
-
打开浏览器,访问你配置的域名(例如 https://nas.example.com)。

-
如果页面正常加载,说明规则配置成功。
-
如果返回 404 或其他错误,参考下面的排查步骤。
多条规则示例
以下是一个典型的多服务配置:
| 域名 |
内网服务地址 |
用途 |
nas.example.com |
http://127.0.0.1:5666 |
NAS 面板 |
ha.example.com |
http://192.168.1.20:8123 |
Home Assistant |
ai.example.com |
http://127.0.0.1:3000 |
AI 控制台 |
blog.example.com |
http://127.0.0.1:8081 |
个人博客 |
DNS CNAME 记录如何处理
Cloudflare Tunnel fnOS 应用可以根据规则自动创建 CNAME DNS 记录。
自动创建的前提条件:
- 域名已经接入 Cloudflare(DNS 托管在 Cloudflare)。
- API Token 具备 DNS Zone 读取+编辑权限。
- 域名归属和 Account ID 对应同一个账号。
自动创建失败时怎么办:
- 检查域名是否托管到 Cloudflare:在 Cloudflare 控制台中,确认域名的 DNS 记录页面可以正常显示。
- 检查 API Token 权限:确认 Token 包含 DNS Zone 的「读取」和「编辑」权限。
- 检查子域名是否属于该 Zone:确认你填写的子域名(如
nas.example.com)确实属于 example.com 这个 Zone。
- 查看运行日志:在应用的「运行日志」页面中,查找 DNS 相关的错误信息。
- 手动添加 CNAME 记录:如果自动创建始终失败,可以到 Cloudflare 控制台手动添加:
如何验证规则是否生效
按以下顺序逐层验证:
-
看 Tunnel 是否已连接:在「Tunnel 列表」页面确认状态为「健康」。
-
看 DNS 是否生效:在终端执行 dig nas.example.com 或 nslookup nas.example.com,确认解析结果指向 Cloudflare 的边缘 IP。
-
看内网服务是否可达:在 NAS 上执行 curl -I http://127.0.0.1:5666,确认返回正常状态码。
-
看运行日志:在应用的「运行日志」页面中,查看是否有转发失败或服务不可达的记录。

常见问题
1. 一个 Tunnel 可以配置多个域名吗?
可以。Ingress 规则就是用来把多个域名映射到多个内网服务的。一个 Tunnel 可以配置多条规则。
2. 域名能不能直接写根域名?
新手更推荐使用子域名,避免影响主站。根域名(如 example.com)通常已有其他用途,使用子域名更安全、更灵活。
3. 服务地址可以写公网地址吗?
不可以。服务地址必须是内网地址,不要写公网地址。Tunnel 的作用是把公网流量转发到内网,写公网地址没有意义,反而可能导致请求绕路或失败。
4. `127.0.0.1` 和 `localhost` 有什么坑?
如果你的多台内网设备都连接到了同一个 Tunnel,尽量避免使用 127.0.0.1 和 localhost 作为服务地址。因为它们指向的是本机——如果 Tunnel 运行在 NAS 上,127.0.0.1:8123 去的是 NAS 的 8123 端口,但 Home Assistant 可能跑在另一台设备上,根本访问不到。
正确做法:服务在哪台设备上,就用那台设备的局域网 IP(如 192.168.1.x)。
5. 服务地址可以写 HTTPS 吗?
不推荐。内网服务使用 HTTPS 可能会因为证书问题(自签名证书、证书不匹配等)导致 Tunnel 无法正常工作。如果内网服务确实只提供 HTTPS,请在添加路由规则时勾选「不验证内网 HTTPS 证书」。
绝大多数内网服务使用 HTTP 即可,因为内网环境相对安全,Cloudflare 会在边缘节点自动为你的域名提供 HTTPS 加密。
6. Docker 容器服务地址怎么写?
如果服务运行在 Docker 中,建议将容器端口映射到主机上,然后使用 http://宿主机局域网IP:端口号 的形式。同时确保容器处于运行状态且已绑定到正确的端口上。
7. 为什么配置后返回 404?
常见原因包括:访问域名和 Ingress 规则中的域名不一致、DNS 记录还没生效(通常需要 1-5 分钟)、内网服务本身返回 404、服务地址写成了 127.0.0.1 但服务不在本机上。
8. 删除规则会自动删除 DNS 吗?
是否自动清理以应用页面实际行为为准。建议在删除规则后,到 Cloudflare 控制台确认 DNS 记录是否还需要保留。
总结
Ingress 是 Cloudflare Tunnel 的核心能力之一。它让你可以用一个 Tunnel 承载多个内网 Web 服务,用不同子域名访问不同应用。配置时注意:域名写清晰、服务地址写正确、DNS 自动创建失败时手动补上、逐层验证是否生效。
下一期预告
下一篇:Cloudflare API Token 最小权限配置指南 — 了解为什么不用全局 Key,如何创建专用 Token,让 Tunnel 配置更安全。