Cloudflare Tunnel 是什么

一句话总结

Cloudflare Tunnel 是一种加密反向隧道,让内网服务器通过 cloudflared 客户端主动连接 CF 边缘,而不是让用户直接连接服务器——不需要开任何入站端口


🤔 为什么会有它 / 解决了什么问题

传统暴露内网服务需要开防火墙端口、配公网 IP、面对 DDoS 和端口扫描攻击。Tunnel 把连接方向反过来——服务器主动”打电话”给 CF,所有入站流量由 CF 边缘过滤后再通过隧道转发。


🔍 具体原理 / 运作逻辑

在内网机器上运行 cloudflared 守护进程,它向最近的 CF 边缘节点发起加密连接(基于 QUIC 或 HTTP/2)。用户域名 DNS 指向 CF,CF 收到请求后通过已有隧道转发给内网服务,响应原路返回。


🧭 什么情况下会用到 / 什么场景会遇到它

  • Growth App 的 Press 控制面板(press.getgrowth.app 通过 Tunnel 穿透 DO VPS 防火墙)
  • 开发环境暴露到公网调试 Webhook(不需要 ngrok)
  • DePIN 节点编排(容器启动后主动打隧道到 CF,无需固定公网 IP)

🛠️ 怎么上手 / 在哪操作

在服务器安装 cloudflared,运行 cloudflared tunnel create <名称> 创建隧道,配置 DNS 指向,启动隧道即可。所有配置在 Cloudflare Dashboard → Zero Trust → Networks → Tunnels 管理。


⚖️ 副作用 / 代价 / 取舍

  • 对延迟敏感的场景,Tunnel 引入额外的封装开销(比直连多几毫秒)
  • cloudflared 是 Go 写的,内存占用约 10-30MB,在低配机器上需注意
  • 依赖 CF 服务可用性——CF 挂了 Tunnel 也断了(虽然 CF 的 SLA 比大多数单服务器高得多)

🕰️ 来历

  • 谁提出/创造的:Cloudflare(原 Argo Tunnel,后更名为 Cloudflare Tunnel)
  • 什么时候出现的:2018 年作为 Argo Tunnel 发布,2020 年并入 Cloudflare for Teams,2021 年更名为 Cloudflare Tunnel

🔗 关联 / 经常一起出现的概念

  • cloudflared:Tunnel 的客户端守护进程,安装在被代理的服务器上
  • Cloudflare Zero Trust:Tunnel 是 Zero Trust 网络架构的一个组件,配合 Access 策略做身份验证
  • DDoS 防护:Tunnel 天然隐藏源站 IP,CF 在边缘层完成 DDoS 清洗后再转发

⚠️ 注意事项 / 常见误区

“有了 Tunnel 就不需要防火墙了”——Tunnel 只保护入站流量,服务器仍需防火墙隔离内网横向移动。同时注意 cloudflared 进程本身要保持高可用,单点故障建议配多个 Tunnel 做 Fallback。


📎 记忆锚点

“不用开端口,你的服务器打给 CF,CF 转接给用户——就像内线电话让总机转接。”


📝 更新日志

日期改动原因
2026-07-13首次创建-