安装Cloudflare Tunnel

一、简介

Cloudflare Tunnel 是一款隧道软件,提供免费的内网穿透服务。旨在为应用程序和基础设施提供快速、安全的加密流量传输,同时隐藏 Web 服务器的 IP 地址,防止直接攻击。它特别适用于没有公网 IP 的场景,帮助用户从公网安全访问内网服务。

Cloudflare Tunnel 通过在源服务器与 Cloudflare 数据中心之间创建加密隧道,无需开放任何公共入站端口,从而保护服务器免受 DDoS 攻击和数据泄露。它支持多种协议(如 HTTP、TCP、SSH),并与 Cloudflare 的 DDoS 防护和 Web 应用防火墙(WAF)协同工作,进一步提升安全性。

此外,Cloudflare Tunnel 可与 Zero Trust 环境结合使用,通过身份验证(如 Gsuite 或 Okta)限制访问权限,无需依赖传统 VPN。

二、前期准备

注册域名并托管到Cloudflare,参考:Cloudflare 托管域名详解

  • 登录 Cloudflare 控制台
  • 点击 Add a Site,输入你的域名,选择 Free(免费)计划。
  • 将你注册域名的平台上将 DNS 解析服务器(Nameservers)修改为 Cloudflare 指定的地址

三、使用Docker在内网设备上部署 Tunnel

部署命令

1
2
3
docker run -d \
--restart=always \
cloudflare/cloudflared:latest tunnel --no-autoupdate run --token your-token

获取Token

通过 Cloudflare 仪表板获取Token,这是最直接、最常用的方法。

  1. 登录仪表板:访问 Cloudflare 仪表板并登录。
  2. 进入 Tunnel 页面:在左侧菜单中,路径为是 Zero Trust > Networks > Connectors > Cloudflare Tunnels
  3. 选择或创建隧道
    • 如果已有隧道:在列表中找到并点击你的隧道。
    • 如果创建新隧道:点击 Create a tunnel,为隧道命名,然后点击 Create tunnel
    • image-20260713151118773
  4. 获取 Token
    • 对于已有隧道:进入隧道详情页后,点击 Add a replica(添加连接器)
    • 对于新隧道:创建完成后,页面会直接显示安装命令。
  5. 复制命令:页面会生成一条类似 cloudflared tunnel run --token <your-token> 的安装命令。将它复制到文本编辑器,其中 eyJ... 开头的长字符串就是你的 Tunnel Token

四、Cloudflare后台绑定内网服务端口

当连接器状态显示为绿色的正常,就证明内网服务器已经成功连接到 Cloudflare ,这时需要将公网子域名局域网本地端口进行绑定

  • 点击已发布应用程序路由 -> 添加已发布应用程序路由

image-20260713152144658.png

  • 绑定子域名和内网服务

    • 子域名:填入自定义名称,作为二级域名访问
    • 域名:已经托管的域名
    • 路径:正则表达式路径匹配,按需填写
    • 服务类型:本地服务协议(通常为 HTTP
    • 服务URL:局域网内的本地 IP 和端口(例如 192.168.1.100:8080,如果容器和 CF 隧道在同一台机,直接输入 localhost:8080 即可

    image-20260713153123070

  • 浏览器输入公网域名,无需端口号,就能通过 HTTPS 访问到你部署在本地的服务了