Cloudflare Zero Trust
约 1537 字大约 5 分钟
2025-06-21
使用Cloudflare的Zero Trust实现公网访问内网
它的原理:
Cloudflared的Zero Trust实现公网访问内网的核心原理在于构建一个安全的、无需传统VPN的连接通道。传统上,为了从公网访问内网资源,企业通常会部署VPN,但VPN存在着暴露攻击面、管理复杂以及“信任过多”的问题。Cloudflared的Zero Trust模型彻底改变了这一范式。
其基本工作流程是,在内网中部署一个轻量级的代理软件——cloudflared
。这个cloudflared
程序会在内网和Cloudflare的全球网络之间建立一个出站连接,即一个安全的、持久的隧道(Tunnel)。这个隧道是主动从内网向外发起连接的,这意味着它不需要在防火墙上打开任何入站端口,从而大大减少了被攻击的风险。
当外部用户尝试访问内网资源时(例如一个内部Web应用),他们的请求首先会路由到Cloudflare的边缘网络。Cloudflare的Zero Trust平台(Access)会在这里对用户进行身份验证和授权。这包括验证用户的身份(例如通过SSO集成),并检查其是否符合预定义的策略(例如,用户必须来自特定IP段,或者设备必须符合安全要求)。
一旦用户通过了身份验证和授权,Cloudflare的边缘网络就会通过之前由cloudflared
建立的安全隧道,将用户的请求转发到内网中的cloudflared
实例。cloudflared
接收到请求后,会将其代理到内网中实际的目标服务(例如Web服务器、SSH服务器等)。服务响应后,数据会沿着相同的隧道返回到Cloudflare边缘,最终传递给外部用户。
整个过程中,内网资源从未直接暴露在公网上,所有流量都通过Cloudflare的全球网络和加密隧道进行传输。这种“永不信任,始终验证”的理念,结合cloudflared
的出站隧道机制,使得即使是公网访问内网,也能实现极高的安全性和便捷性,有效地降低了传统网络架构中的风险。
要开始配置Cloudflare Zero Trust隧道,首先您需要访问并登录您的Cloudflare账户,然后导航至其 Zero Trust
控制面板。进入后,请将您的目光投向左侧的导航菜单,在那里您会找到并选择 网络 (Network)
选项下的 Tunnels (隧道)
功能。
在隧道管理界面,您将看到一个创建新隧道的按钮,请点击它以启动创建流程。接下来,系统会提示您选择隧道的连接方式,在这里请务必点击 选择Cloudflared
选项,因为这是通过本地安装的 cloudflared
守护进程与Cloudflare网络建立连接的方式。随后,您需要为您的隧道输入一个自定义的、易于识别的名称,这个名称将帮助您日后管理多个隧道。输入名称后,系统会要求您选择隧道的运行平台,例如Linux、Windows、macOS或其他容器平台。根据您的实际运行环境选择对应的平台后,请严格按照屏幕上提供的指引步骤进行操作。这些步骤通常包括下载并安装 cloudflared
客户端、登录Cloudflare账户以及运行特定的命令来初始化隧道。
一旦所有指引步骤都完整操作并成功执行,您的隧道便已建立,此时您可以开始配置域名,以便将内部服务暴露到公网。例如,如果您希望在公网上访问您内网中运行在 http://localhost:3000
的Web服务,您首先需要填写一个自定义的子域名,比如 my-service
,然后从下拉菜单中选择一个已托管在Cloudflare的域名,例如 yourdomain.com
。接着,根据您内部服务的实际需求,选择相应的协议,对于Web服务通常是 HTTP
或 HTTPS
。最后,在目标地址栏中填写您内部服务的完整地址和端口,例如 localhost:3000
。完成这些配置后,当用户访问 my-service.yourdomain.com
时,请求将通过Cloudflare Zero Trust隧道安全地转发至您内网的 localhost:3000
服务。
尽管Cloudflare Zero Trust隧道提供了一种便捷的内网穿透方案,但该方案也存在一些不容忽视的弊端:
首先,网络速度不稳定。隧道的性能在很大程度上依赖于Cloudflare的全球网络基础设施以及您本地网络到Cloudflare边缘节点的连接质量。在高峰时段、网络拥堵或者地理位置偏远的情况下,用户可能会体验到访问速度的波动,甚至出现延迟增加或连接中断的情况,这会影响最终用户的体验。
其次,对于除了HTTP/HTTPS之外的其他协议需要额外配置。例如,如果您需要通过隧道访问SSH、RDP(远程桌面协议)或SMB(服务器消息块协议)等非Web协议,## 使用Cloudflare Cloudflare Zero Trust通过在内网部署cloudflared
建立出站安全隧道,将公网请求安全代理至内网资源,无需开放入站端口,实现“永不信任,始终验证”的安全访问。往往需要进行更为复杂的设置。这不仅仅是在Cloudflare Zero Trust仪表板上进行简单的端口转发或协议选择,还需要对客户端进行额外配置。这意味着客户端用户可能需要安装特定的软件、配置代理设置,或者使用cloudflared
客户端本身来建立SSH/RDP连接,而不是直接使用标准的客户端工具。这种额外的配置步骤增加了部署和使用的复杂性,对于不熟悉网络配置的用户来说,可能是一个较高的门槛。
IPv6 + DDNS ...
贡献者
更新日志
7eec2
-Document organization于9de0b
-全局优化于