跳到主要内容

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 创建隧道
  1. 登录 Cloudflare Zero Trust
  2. 左侧菜单 NetworksTunnels
  3. 点击 Create a tunnel
  4. 选择 Cloudflared,给隧道起个名字
  5. 复制页面显示的 Token(一串很长的字符)
第二步:在 Lucky 添加隧道

菜单===>Cloudflare隧道===>实例列表===>添加实例===>选择 Tunnel

  1. 填写 Token:把刚才复制的 Token 粘贴进来
  2. 实例备注:随便起个名字(如"家里的NAS")
  3. 其他选项保持默认即可
  4. 保存并启用
第三步:添加路由规则(把域名指向内网服务)

在 Lucky 的隧道实例中点击 路由规则

  1. 公网域名:你已经在 Cloudflare 添加的域名(如 nas.yourdomain.com
  2. 内网地址:你的内网服务地址(如 192.168.1.100:5000localhost:8080
  3. 保存后,访问 nas.yourdomain.com 就会转到你的内网服务

或者在 Cloudflare 控制台手动添加:

  1. 回到 Cloudflare Zero Trust 的 Tunnels 页面
  2. 找到你的隧道,点击 Configure
  3. Public Hostname 标签页添加域名和内网地址映射

Access 模式(访问受保护的应用)

什么是 Access?

你的公司可能有一些内部系统(如代码仓库、管理后台),通过 Cloudflare Access 保护,访问时需要登录(如邮箱验证、SSO 等)。

Access 模式在你的电脑上开启一个本地代理,帮你自动完成身份验证,让你像访问普通网站一样访问这些受保护的系统。

使用流程

[你的浏览器] → [本地代理:8080] → [Cloudflare Access 认证] → [内部系统]
场景 A:人工登录(适合偶尔使用)

菜单===>Cloudflare隧道===>实例列表===>添加实例===>选择 Access

  1. Access URL:填写被保护的应用地址(如 https://git.company.com
  2. 监听端口:本地端口(如 8080
  3. 保存后,浏览器访问 http://127.0.0.1:8080
  4. 第一次会跳转到 Cloudflare 登录页,登录成功后即可访问
场景 B:免登录访问(适合脚本/API 调用)

如果你需要写脚本调用受保护的 API,或者不想每次手动登录:

第一步:创建 Service Token

  1. 登录 Cloudflare Zero Trust
  2. 左侧 AccessService AuthService Tokens
  3. 点击 Create Service Token,复制 Client IDClient Secret
  4. 在 Access 应用的策略中添加规则:Selector 选 Service Token,值选刚创建的 Token

第二步:在 Lucky 配置

  1. 添加 Access 实例,填写 Access URL 和监听端口
  2. Token ID:粘贴 Client ID
  3. Token Secret:粘贴 Client Secret
  4. 保存后访问本地端口即可免登录访问

使用注意

使用注意
  1. Tunnel 模式

    • 需要一个已在 Cloudflare 注册的域名
    • 免费版账户最多 1 个隧道,商业版可更多
    • 内网服务不要只监听 127.0.0.1,否则 Tunnel 无法访问(建议 0.0.0.0 或局域网 IP)
    • 使用 QUIC 协议时确保防火墙放行 UDP 流量
  2. Access 模式

    • 只用于访问受 Cloudflare Access 保护的应用,不是内网穿透工具
    • 如要免登录访问,务必在 Access 应用策略中添加 Service Token 的允许规则
    • 本地监听端口不要与其他程序冲突
  3. 通用

    • 建议配合 Lucky 的 IP 过滤功能,限制 Web 管理端的访问来源
    • Token 泄露可能导致安全风险,请妥善保管

常见问题

Tunnel 显示连接成功,但域名无法访问
  1. 确认域名已添加到 Cloudflare DNS 解析(可以是任意 IP,如 192.0.2.1
  2. 检查路由规则中的公网域名是否填写正确
  3. 检查内网地址是否正确,内网服务是否允许外部访问(不要只监听 127.0.0.1
  4. 在 Cloudflare Zero Trust 控制台查看隧道状态是否为 Healthy
Tunnel 连接失败
  1. 检查 Token 是否完整复制(不要遗漏任何字符)
  2. 确认网络可以访问 Cloudflare(尝试 ping cloudflare.com
  3. 如果使用了 IPv6,尝试切换为 IPv4 或自动模式
  4. 查看 Lucky 日志获取详细错误信息
Access 配置 Service Token 后仍提示登录
  1. 确认在 Access 应用的 Policies 中添加了允许该 Service Token 的规则
  2. 检查 Token ID 和 Secret 是否复制完整
  3. 规则类型要选择 Service Token 而不是其他身份验证方式
Access 模式本地端口访问无响应
  1. 检查本地端口是否被其他程序占用
  2. 确认 Access URL 包含 https:// 前缀
  3. 检查 Lucky 日志是否有连接错误
  4. 尝试更换其他本地端口(如 80813000 等)