文章

基于CF的内网穿透思路

常见 Cloudflare 穿透方案的详细总结:

1. 直接 Cloudflare Tunnel(Argo Tunnel)

原理

  • 本地或内网服务器安装 cloudflared 客户端,主动与 Cloudflare 建立加密隧道。

  • 域名直接托管在 Cloudflare,DNS 解析到 Tunnel。

  • 用户访问域名,流量经 Cloudflare 直接通过隧道到达内网服务器。

举例

你有一台家用服务器(无公网IP),运行 web 服务。

  • 在服务器上安装 cloudflared,连接 Cloudflare。

  • 在 Cloudflare 上将 yoursite.com 的 DNS 解析到 Tunnel。

  • 用户访问 yoursite.com → Cloudflare → Tunnel → 家用服务器。

适用场景

  • 个人网站、开发测试、单一服务。

  • 需要快速、安全地将内网服务暴露到公网。

2. Cloudflare SaaS 自定义主机名 + Tunnel(多租户/平台级)

原理

  • 为每个客户/服务分配自定义主机名(如 client1.yoursaas.com)。

  • Cloudflare 通过“源服务器域名”CNAME 到 Tunnel,实现多租户流量穿透。

  • 支持自动签发 SSL 证书和多域名管理。

举例

你运营一个 SaaS 平台,为每个客户分配独立域名。

  • 客户访问 client1.yoursaas.com。

  • Cloudflare 查找自定义主机名配置,回源到 client1-saas.yourserver.com(CNAME 到 Tunnel)。

  • 用户访问 client1.yoursaas.com → Cloudflare → client1-saas.yourserver.com(CNAME 到 Tunnel)→ Tunnel → 内网服务器。

适用场景

  • SaaS 平台、多租户、企业级应用。

  • 需要为不同客户分配独立入口和安全隔离。

3. 反向代理 + Cloudflare

原理

  • 公网服务器(如 VPS)作为“跳板”,配置反向代理(Nginx/Caddy/Apache)。

  • 用户访问域名,流量先到 VPS,再转发到内网服务器(通过 VPN、FRP、端口映射等)。

  • Cloudflare 负责 DNS 解析和基础防护。

举例

家用服务器无公网IP,租用 VPS 作为代理。

  • 域名 example.com 在 Cloudflare,DNS 解析到 VPS。

  • VPS 用 Nginx 反向代理,将流量转发到家用服务器。

  • 用户访问 example.com → Cloudflare → VPS(Nginx)→ 家用服务器。

适用场景

  • 需要自定义流量分发、缓存、鉴权。

  • 已有公网服务器资源,兼容性要求高。

4. Cloudflare Workers + Tunnel 组合

原理

  • Cloudflare Workers 在边缘节点运行自定义 JS 代码,处理流量(鉴权、缓存、重定向等)。

  • Workers 处理后,将请求转发到 Cloudflare Tunnel,最终到达内网服务器。

举例

API 服务在家用服务器,希望加边缘鉴权和缓存。

  • 配置 Workers 拦截 api.example.com 的请求,先校验 Token。

  • 合格请求由 Workers 转发到 Tunnel,最终到家用服务器。

  • 用户访问 api.example.com → Cloudflare → Workers(鉴权/处理)→ Tunnel → 家用服务器。

适用场景

  • 需要边缘计算、API 网关、定制化流量处理。

  • 希望在 Cloudflare 层做安全、缓存、数据处理等。

许可协议:  CC BY 4.0