[ PROMPT_NODE_24368 ]
Tunnel 说明文档
[ SKILL_DOCUMENTATION ]
# Cloudflare Tunnel
在基础设施与 Cloudflare 全球网络之间建立安全的仅出站连接。
## 概述
Cloudflare Tunnel(原 Argo Tunnel)支持:
- **仅出站连接** - 无需入站端口或防火墙变更
- **公共主机名路由** - 将本地服务暴露给互联网
- **私有网络访问** - 通过 WARP 连接内部网络
- **零信任集成** - 内置访问策略
**架构**:隧道 (Tunnel,持久对象) → 副本 (Replica,`cloudflared` 进程) → 源站服务
**术语:**
- **隧道 (Tunnel)**:带有 UUID 的命名持久对象
- **副本 (Replica)**:连接到隧道的单个 `cloudflared` 进程
- **配置源 (Config Source)**:入口规则的存储位置(本地文件 vs Cloudflare 控制面板)
- **连接器 (Connector)**:副本的旧称
## 快速入门
### 本地配置
bash
# 安装 cloudflared
brew install cloudflared # macOS
# 认证
cloudflared tunnel login
# 创建隧道
cloudflared tunnel create my-tunnel
# 路由 DNS
cloudflared tunnel route dns my-tunnel app.example.com
# 运行隧道
cloudflared tunnel run my-tunnel
### 控制面板配置(推荐)
1. **Zero Trust** > **Networks** > **Tunnels** > **Create**
2. 命名隧道,复制 Token
3. 在控制面板配置路由
4. 运行:`cloudflared tunnel --no-autoupdate run --token `
## 决策树
**选择配置源:**
需要集中式配置更新?
├─ 是 → 基于 Token(控制面板配置)
└─ 否 → 本地配置文件
多环境 (dev/staging/prod)?
├─ 是 → 本地配置(版本控制)
└─ 否 → 均可
需要防火墙审批?
└─ 先查看 networking.md
## 核心命令
bash
# 隧道生命周期
cloudflared tunnel create
cloudflared tunnel list
cloudflared tunnel info
cloudflared tunnel delete
# DNS 路由
cloudflared tunnel route dns
cloudflared tunnel route list
# 私有网络
cloudflared tunnel route ip add 10.0.0.0/8
# 运行隧道
cloudflared tunnel run
## 配置示例
yaml
# ~/.cloudflared/config.yml
tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
credentials-file: /root/.cloudflared/6ff42ae2-765d-4adf-8112-31c55c1551ef.json
ingress:
- hostname: app.example.com
service: http://localhost:8000
- hostname: api.example.com
service: https://localhost:8443
originRequest:
noTLSVerify: true
- service: http_status:404
## 阅读顺序
**Cloudflare Tunnel 新手:**
1. 本 README(概述、快速入门)