Cloudflare Tunnel
概述
Cloudflare Tunnel(原 Argo Tunnel)是一种反向隧道服务,可让无公网 IP 的服务器安全地暴露服务到公网。
核心价值: 让服务器"隐身"于 Cloudflare 保护之下,同时可被全球访问。
核心原理:反向连接
关键在于改变连接方向——不是外网连进来,而是内网主动连出去。
传统方式 vs Cloudflare Tunnel
text
❌ 传统方式(被动等待):
用户 ──→ 公网IP:端口 ──→ 服务器
问题:无公网IP / 端口被封 = 无法访问
✅ Cloudflare Tunnel(主动出击):
服务器 ──主动连接──→ Cloudflare 边缘节点
↑
用户 ──访问域名──→ Cloudflare ──通过隧道──→ 服务器
工作流程
1. 服务器运行 cloudflared,主动向外连接 Cloudflare
2. 建立长期加密隧道(出站连接,防火墙通常放行)
3. 用户访问域名 → Cloudflare 接收请求
4. Cloudflare 通过隧道将请求"塞回"服务器
5. 服务器响应,原路返回
💡 本质: 内网主动连接 Cloudflare,Cloudflare 顺着这条路传递流量
核心优势
| 特性 | 说明 |
|---|---|
| 无需公网 IP | 内网 IP(10.x.x.x)、运营商大内网(100.64.x.x)均可用 |
| 无视端口限制 | 无需开放 80/443,只需出站网络通畅 |
| 隐藏真实 IP | 服务器在互联网上"隐形",无法被扫描攻击 |
| 极致安全 | 可设置防火墙"拒绝所有入站",仅保留出站 |
| 自带 HTTPS | Cloudflare 自动提供 SSL 证书 |
适用场景
NAT VPS 绝配:
- 端口受限(无 80/443)
- 无独立公网 IP
- 需要对外提供 Web 服务
两种用法
用法 A:暴露特定服务(最常用)
将内部服务映射到公网域名:
# 配置示例
tunnel: my-tunnel
ingress:
- hostname: bt.example.com
service: http://localhost:8888 # 宝塔面板
- hostname: www.example.com
service: http://localhost:80 # 网站
- service: http_status:404 # 兜底规则
效果: 用户访问域名直达服务,无需输入端口号
用法 B:暴露整个私有网络
通过 WARP 客户端接入内网网段:
配置:cloudflared 宣告私有网段(如 10.1.1.0/24)
客户端:安装 Cloudflare WARP
效果:手机/笔记本可直接访问该网段所有设备
| 对比 | 用法 A | 用法 B |
|---|---|---|
| 目标 | 暴露特定服务 | 暴露整个网段 |
| 客户端要求 | 无(浏览器即可) | 需安装 WARP |
| 适用场景 | 网站、API | 远程办公、运维 |
快速部署
# 1. 安装 cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
# 2. 登录认证
./cloudflared tunnel login
# 3. 创建隧道
./cloudflared tunnel create my-tunnel
# 4. 配置 DNS(将域名指向隧道)
./cloudflared tunnel route dns my-tunnel www.example.com
# 5. 运行隧道
./cloudflared tunnel run my-tunnel
工具组合方案
针对 NAT VPS 的完整解决方案:
┌─────────────────────────────────────────────────────┐
│ NAT VPS │
├─────────────────────────────────────────────────────┤
│ EasyTier → 私密组网(自己管理/SSH/传文件)│
│ Cloudflare Tunnel → 公网暴露(网站/应用对外服务) │
└─────────────────────────────────────────────────────┘
| 工具 | 职责 | 解决的问题 |
|---|---|---|
| EasyTier | 私密互联 | 设备间直连、内部管理 |
| Cloudflare Tunnel | 公网暴露 | 无公网 IP、端口受限 |
✅ 两者结合,完全克服 NAT VPS「无独立公网 IP + 端口稀缺」的限制
注意事项
| 事项 | 说明 |
|---|---|
| 依赖 Cloudflare | 服务可用性取决于 CF,国内访问速度可能受限 |
| 免费套餐限制 | 部分高级功能需付费(基础隧道功能免费) |
| 调试复杂度 | 出问题时排查链路较长 |
总结
| 传统方案 | Cloudflare Tunnel |
|---|---|
| 需要公网 IP | ❌ 不需要 |
| 需要开放端口 | ❌ 不需要 |
| 服务器暴露在公网 | ✅ 完全隐藏 |
| 需要自己配置 HTTPS | ✅ 自动提供 |
| 防 DDoS | ❌ 自己扛 |
🎯 一句话: 让没有公网 IP 的服务器,安全地拥有全球可达的域名访问能力。
💬 评论