“——Cloudflare Tunnel 为您提供了一种将资源连接到 Cloudflare 的安全方法,无需公共可路由 IP 地址。”
Cloudflare Zero Trust服务 |
---|
01 什么是Cloudflare Tunnel?
简单地说,想要远程访问一个服务器需要服务器的IP地址,这从原理上就注定是不安全的。Cloudflare提供的一项服务把服务器与互联网直接隔绝开,通过建立数条不暴露IP地址的隧道提供服务来确保安全性。
然而,这项功能对于防火墙内的NAS/个人服务器机主而言是意外的惊喜——这可以说是一种内网穿透,为被层层NAT隔绝的家用服务器提供了开辟一条通道的手段。
Cloudflare Tunnel的特点:
- 免费而稳定,这项服务由老牌网络服务商Cloudflare提供,代表了服务的高可靠性。
- 速度慢、延迟高,因为通过隧道访问网络需要途径境外的节点。
- 部署需要拥有自己的域名和服务器。
使用Cloudflare Tunnel创建隧道可以将 HTTP Web 服务器、SSH 服务器、远程桌面和其他协议安全地连接到 Cloudflare,也就是部署到外网。
02 部署
创建隧道
进入Cloudflare的控制板,在Zero Trust
服务中找到Tunnels(隧道)
,然后创建一条新的隧道。
- 点击创建新隧道
- 选择隧道类型:Connector(连接器)选择Cloudflared
- 命名隧道
部署隧道连接器
在服务器上部署连接器。考虑到连接器需要稳定、长久地运行,建议使用Docker来部署。
点击Docker
部署后,在Install and run a connector
项可以看到CF给出的部署命令:
1 | docker run cloudflare/cloudflared:latest \ |
或者,建议使用docker-compose来便利地快速部署:
1 | version: '3' |
最后使用docker compose up -d
来启动部署。
创建主机连接
现在回到Cloudflare的控制台上。
假设我们已经由一个Nginx提供的HTTP页面服务,运行在80端口上;
那么我们现在,点击Public Hostname来创建一个公开连接:
格式:
1 | <subdomain>.<domain>/<path> |
示例:
1 | web.magicnue.top |
现在保存,然后访问这个网站;我们会惊喜地发现这个网站能够访问、并且CF为我们自动配置好了SSL证书,我们可以直接通过https协议来访问这个网站了。
03 另外……
- 保存好
docker-compose.yml
文件,以在未来具备快速部署的能力;另外还要记得及时更新镜像版本。 - CF除了ZeroTrust的隧道服务外,还提供了加密访问、CDN、主动攻击防护等强大的功能,不愧是赛博仙人。