使用Cloudflare Zero Trust进行内网穿透
介绍
Zero Trust是Cloudflare公司推出的一项企业级虚拟网关服务,官方对其介绍如下:
Cloudflare Zero Trust
Cloudflare Zero Trust是一个安全框架,旨在通过验证和保护所有的网络访问(无论用户或地点)来保护组织免受网络威胁。该框架基于 “不信任任何人 “的原则,这意味着所有访问请求在被批准之前必须经过验证和授权。
Zero Trust “旨在提供一种全面的安全方法,涵盖一个组织的网络和基础设施的所有方面。这包括用户认证、设备安全、网络分段和应用安全。
Zero Trust的主要好处之一是它能够提供细化的访问控制,使企业能够根据用户角色和权限限制对敏感资源的访问。这可以通过最小化攻击面和限制任何潜在漏洞的影响来帮助防止数据泄露和其他安全事件。
Cloudflare Zero Trust是一项基于云的服务,可以很容易地与组织的现有安全基础设施集成。它的设计具有可扩展性和灵活性,允许企业定制框架,以满足其特定需求和要求。
(通过DeepL翻译)
本文我们将使用其中的Tunnel
功能,从外网访问家中内网的服务。对于其WARP代理功能,本文不做讨论。
你需要
启用Zero Trust
- 访问https://one.dash.cloudflare.com
- 选择Free计划
- 绑定付款方式并填写账单信息
- 一切正常的话,你将会看到Zero Trust的控制面板

配置内网穿透
创建隧道
点击Access -> Tunnels
,点击Create a tunnel
创建一个隧道

输入名称后继续,提示安装connector

这里以Debian 64-bit和Windows为例
安装connector(Debian)
键入以下命令:
1 | curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb |
若访问github.com
过慢可在https://
前面添加https://ghproxy.com/
而后:
1 | sudo cloudflared service install [你的Token] |
若运行此命令时出错

则执行:
1 | sudo cloudflared service uninstall |
而后重新执行cloudflared service install
一行即可
安装connector(Windows)
下载https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi并安装
在以管理员权限运行的cmd / Powershell中键入:
1 | cloudflare service install [你的Token] |
进行内网穿透
按照如图所示进行配置即可

配置完成后,通过https://[你的子域名].[你的域名]/[你的访问路径(如果有的话)]
即可访问内网服务
附:关于对内网HTTPS服务的特殊配置
由于内网https服务证书一般为未受信任证书,若直接绑定到域名,访问时会提示Bad Gateway
,因此需要对穿透的HTTPS做一些配置
打开Tunnels
,点击隧道旁的Configure
进入配置界面,选择Public Hostname

选择你要修改的域名,点击Edit

选择Additional application settings -> TLS
,将No TLS Verify
一项启用

保存后即可正常访问