零信任内网穿透架构:基于Cloudflare Tunnel的无公网IP安全发布
1. 背景与企业痛点
传统的企业应用发布往往依赖专线或直接在光猫/路由器上配置端口映射(NAT/Port Forwarding)。这种做法存在致命痛点:
1. 极度缺乏安全性:将内网 ERP、OA 系统暴露在公网,一旦应用存在漏洞(如 Log4j、反序列化漏洞),黑客几分钟内就能拿下企业内网所有控制权。
2. 公网 IP 枯竭与动态解析问题:中小企业通常申请不到固定的公网 IPv4,使用 DDNS(动态域名解析)经常存在缓存延迟导致访问中断。
3. 暴露真实服务器 IP:极易遭受 DDoS 和 CC 攻击。
本文将演示如何基于 Cloudflare Tunnel (原 Argo Tunnel),在没有公网 IP、不开放任何内网端口的前提下,将企业内网服务安全、极速地对外发布,并利用 Cloudflare Access 实现强鉴权的“零信任”访问。
2. 架构原理
传统的端口映射是“从外向内”主动建连(互联网 -> 路由器 -> 内网机器)。
Cloudflare Tunnel 彻底颠覆了这一点:它要求你在内网机器上跑一个小进程 (cloudflared),由这个进程从内向外主动与 Cloudflare 全球边缘节点建立持久的长连接隧道。
互联网用户的访问请求,先到达 Cloudflare 节点(进行 DDoS 清洗、WAF 防护和身份验证),再通过这条隧道“反推”回内网,实现服务发布。
3. 部署 cloudflared 内网守护进程
假设我们有一台内网服务器 192.168.10.100 运行着企业 ERP 系统(端口 8080)。
3.1 获取 Tunnel Token
- 登录 Cloudflare Zero Trust 仪表盘(需绑定免费的域名)。
- 导航到
Access->Tunnels->Create a tunnel。 - 命名为
ERP-Tunnel,系统会提供一条带有超长 Token 的安装命令。
3.2 在内网机器上安装与启动
# 下载 cloudflared 二进制文件
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared.deb
# 运行注册命令 (替换为你在面板获取的真实 Token)
cloudflared service install eyJhIjoiOTNjYzEw...<省略>...
# 启动服务
systemctl enable cloudflared
systemctl start cloudflared
systemctl status cloudflared
一旦服务变为 active (running),Cloudflare 面板中的 Tunnel 状态就会变为 Healthy。
4. 配置公共主机名 (Public Hostname)
在 Cloudflare 仪表盘中,进入配置好的 ERP-Tunnel:
1. 切换到 Public Hostname 选项卡,点击 Add a public hostname。
2. Subdomain (子域名) 填入 erp,Domain 选择你托管在 CF 的域名(例如 whyyhl.com)。
3. Service (服务类型) 选择 HTTP,URL 填入内网真实地址:192.168.10.100:8080。
保存后,你可以尝试用手机使用移动网络访问 https://erp.whyyhl.com。你将惊讶地发现,ERP 系统立刻呈现,而且自带受信任的 HTTPS 证书,无需配置任何 Nginx。
5. 进阶:配置零信任验证 (Zero Trust Access)
把内网暴露出去后,即使有了 HTTPS 和 WAF,任何人只要知道域名也能尝试爆破密码。我们可以在这层隧道外面再裹上一层“防弹衣”——强鉴权。
- 进入 Cloudflare Zero Trust 面板 ->
Access->Applications->Add an Application。 - 选择
Self-hosted,填入erp.whyyhl.com。 - 创建一条策略 (Policy):
- Action:
Allow - Include: 选择
Emails ending in,填入@whyyhl.com。 - 这意味着只有拥有企业邮箱后缀的人,才能看到 ERP 的登录界面。
- 认证方式可以选择一次性邮箱验证码(OTP),也可对接企业微信或飞书扫码。
现在,任何人访问 https://erp.whyyhl.com,首先会被拦截并跳转到 Cloudflare 的认证页面。只有通过企业邮箱验证码/扫码认证后,请求才会被放行,经由隧道穿透回你的内网。黑客连你的登录页都看不到。
6. 总结
借助 Cloudflare Tunnel,企业无需申请公网 IP、无需配置反向代理、无需申请 SSL 证书、甚至无需去防火墙上开孔打洞。短短 5 分钟,内网系统就能被发布至全球并带有武装到牙齿的零信任防护。这就是云原生时代赋予企业 IT 的全新边界安全范式。