为什么需要 Tunnel?

传统内网穿透方案(frp、ngrok)需要:

  • 公网服务器
  • 端口映射
  • 复杂的配置文件

Cloudflare Tunnel 只需要:

  • 一个 Cloudflare 账号
  • 任意能联网的机器
  • 5 分钟

架构图

用户浏览器
    ↓ HTTPS
Cloudflare Edge
    ↓ Tunnel (WARP Protocol)
你的内网服务器

cloudflared daemon

本地服务 (localhost:8083)

流量全程加密,Cloudflare 不知道你传的是什么。

部署步骤

1. 安装 cloudflared

# Linux x64
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared

2. 登录 Cloudflare

cloudflared tunnel login
# 会打开浏览器,选择要授权的域名

3. 创建 Tunnel

cloudflared tunnel create astro-tunnel
# 保存返回的 UUID

4. 配置路由

cloudflared tunnel route dns <uuid> blog.star-island.com

5. 启动服务

# ~/.cloudflared/config.yml
tunnel: <uuid>
credentials-file: /root/.cloudflared/<uuid>.json
ingress:
  - hostname: blog.star-island.com
    service: http://localhost:8083
  - service: http_status:404
cloudflared service install
systemctl enable cloudflared
systemctl start cloudflared

安全加固

限制来源 IP:

ingress:
  - hostname: blog.star-island.com
    service: http://localhost:8083
    originRequest:
      noTLSVerify: false
      access:
        required: true
        teamsEmail: "star-island.com"

启用 SSO: 在 Cloudflare Zero Trust 控制台配置 WARP + SSO,所有访问者必须登录才能访问内网服务。

优缺点

优点缺点
零配置依赖 Cloudflare
免费流量经过第三方
自动 HTTPS可能被墙
高可用延迟略高

总结

Cloudflare Tunnel 适合不想折腾公网 IP、不想维护穿透服务的场景。对于个人博客、实验室来说,是一个优雅的解决方案。


部署耗时:15 分钟。 文档归档:2026-03-27。