Cloudflare隧道
功能介绍
Cloudflare隧道(Cloudflared)是 Lucky 内置的 Cloudflare 隧道客户端,支持 Tunnel 隧道和 Access 访问两种模式,无需公网 IP 即可将内网服务暴露到互联网。
主要功能
- Tunnel 模式:使用 Cloudflare Tunnel 创建安全隧道,将内网服务穿透到公网
- Access 模式:本地代理访问受 Cloudflare Access 保护的应用
- 自动路由管理:支持通过 Cloudflare API 自动管理隧道路由规则
- 多协议支持:支持 HTTP2、QUIC 等连接协议
- 高可用连接:支持配置多条 HA 连接提高稳定性
基础使用说明
两种模式怎么选
| 模式 | 适用场景 | 一句话说明 |
|---|---|---|
| Tunnel | 把家里/公司的内网服务暴露到公网 | 我在内网有个网站,想让外面的人访问 |
| Access | 访问被 Cloudflare Access 保护的应用 | 我需要访问公司的内部系统,但要先过身份验证 |
Tunnel 模式(内网穿透)
什么是 Tunnel?
想象你在内网有一台服务器(比如家里的 NAS),外面的人无法直接访问。Cloudflare Tunnel 就像挖了一条从你家到 Cloudflare 的秘密隧道,外面的人访问 Cloudflare 的地址,流量通过这条隧道转发到你的内网服务器。
使用流程
[互联网用户] → [Cloudflare CDN] → [隧道] → [Lucky] → [你的内网服务]
第一步:在 Cloudflare 创建隧道
- 登录 Cloudflare Zero Trust
- 左侧菜单 Networks → Tunnels
- 点击 Create a tunnel
- 选择 Cloudflared,给隧道起个名字
- 复制页面显示的 Token(一串很长的字符)
第二步:在 Lucky 添加隧道
菜单===>Cloudflare隧道===>实例列表===>添加实例===>选择 Tunnel
- 填写 Token:把刚才复制的 Token 粘贴进来
- 实例备注:随便起个名字(如"家里的NAS")
- 其他选项保持默认即可
- 保存并启用
第三步:添加路由规则(把域名指向内网服务)
在 Lucky 的隧道实例中点击 路由规则:
- 公网域名:你已经在 Cloudflare 添加的域名(如
nas.yourdomain.com) - 内网地址:你的内网服务地址(如
192.168.1.100:5000或localhost:8080) - 保存后,访问
nas.yourdomain.com就会转到你的内网服务
或者在 Cloudflare 控制台手动添加:
- 回到 Cloudflare Zero Trust 的 Tunnels 页面
- 找到你的隧道,点击 Configure
- 在 Public Hostname 标签页添加域名和内网地址映射
Access 模式(访问受保护的应用)
什么是 Access?
你的公司可能有一些内部系统(如代码仓库、管理后台),通过 Cloudflare Access 保护,访问时需要登录(如邮箱验证、SSO 等)。
Access 模式在你的电脑上开启一个本地代理,帮你自动完成身份验证,让你像访问普通网站一样访问这些受保护的系统。
使用流程
[你的浏览器] → [本地代理:8080] → [Cloudflare Access 认证] → [内部系统]
场景 A:人工登录(适合偶尔使用)
菜单===>Cloudflare隧道===>实例列表===>添加实例===>选择 Access
- Access URL:填写被保护的应用地址(如
https://git.company.com) - 监听端口:本地端口(如
8080) - 保存后,浏览器访问
http://127.0.0.1:8080 - 第一次会跳转到 Cloudflare 登录页,登录成功后即可访问
场景 B:免登录访问(适合脚本/API 调用)
如果你需要写脚本调用受保护的 API,或者不想每次手动登录:
第一步:创建 Service Token
- 登录 Cloudflare Zero Trust
- 左侧 Access → Service Auth → Service Tokens
- 点击 Create Service Token,复制 Client ID 和 Client Secret
- 在 Access 应用的策略中添加规则:Selector 选
Service Token,值选刚创建的 Token
第二步:在 Lucky 配置
- 添加 Access 实例,填写 Access URL 和监听端口
- Token ID:粘贴 Client ID
- Token Secret:粘贴 Client Secret
- 保存后访问本地端口即可免登录访问
使用注意
使用注意
-
Tunnel 模式
- 需要一个已在 Cloudflare 注册的域名
- 免费版账户最多 1 个隧道,商业版可更多
- 内网服务不要只监听
127.0.0.1,否则 Tunnel 无法访问(建议0.0.0.0或局域网 IP) - 使用 QUIC 协议时确保防火墙放行 UDP 流量
-
Access 模式
- 只用于访问受 Cloudflare Access 保护的应用,不是内网穿透工具
- 如要免登录访问,务必在 Access 应用策略中添加 Service Token 的允许规则
- 本地监听端口不要与其他程序冲突
-
通用
- 建议配合 Lucky 的 IP 过滤功能,限制 Web 管理端的访问来源
- Token 泄露可能导致安全风险,请妥善保管
常见问题
Tunnel 显示连接成功,但域名无法访问
- 确认域名已添加到 Cloudflare DNS 解析(可以是任意 IP,如
192.0.2.1) - 检查路由规则中的公网域名是否填写正确
- 检查内网地址是否正确,内网服务是否允许外部访问(不要只监听
127.0.0.1) - 在 Cloudflare Zero Trust 控制台查看隧道状态是否为 Healthy
Tunnel 连接失败
- 检查 Token 是否完整复制(不要遗漏任何字符)
- 确认网络可以访问 Cloudflare(尝试 ping
cloudflare.com) - 如果使用了 IPv6,尝试切换为 IPv4 或自动模式
- 查看 Lucky 日志获取详细错误信息
Access 配置 Service Token 后仍提示登录
- 确认在 Access 应用的 Policies 中添加了允许该 Service Token 的规则
- 检查 Token ID 和 Secret 是否复制完整
- 规则类型要选择 Service Token 而不是其他身份验证方式
Access 模式本地端口访问无响应
- 检查本地端口是否被其他程序占用
- 确认 Access URL 包含
https://前缀 - 检查 Lucky 日志是否有连接错误
- 尝试更换其他本地端口(如
8081、3000等)