前前言
这篇文章本来2月底就开始着手写,结果一直咕咕咕到现在,那就干脆写的清楚明了一些再发布吧。
让我自己也看看我到底能鸽多久 |´・ω・)ノ
前言
Cloudflare作为网络界的大善人,一直以来为公众用户提供了众多服务,例如开启小黄云免费使用CDN,以及开启CDN服务后附送的打不死的防御等等。今天我们要介绍的是隶属于CF ZeroTrust服务下的Tunnel隧道功能。
以下是CF官方对于Tunnel功能的介绍:
Cloudflare Tunnel provides you with a secure way to connect your resources to Cloudflare without a publicly routable IP address. With Tunnel, you do not send traffic to an external IP — instead, a lightweight daemon in your infrastructure (cloudflared) creates outbound-only connections to Cloudflare’s global network. Cloudflare Tunnel can connect HTTP web servers, SSH servers, remote desktops, and other protocols safely to Cloudflare. This way, your origins can serve traffic through Cloudflare without being vulnerable to attacks that bypass Cloudflare.

从CF官方提供的结构图来看,可以看到我们想要提供的服务通过Cloudflare Tunnel向外单向暴露,并通过Cloudflare边缘网络接入互联网。通过这种模式,你甚至可以使用家里的电脑搭建Web服务,通过Cloudflare tunnel和Edge network servers将你的应用分发至全球任意地点,这下真变成名副其实的家里云了(笑)
所以从实现和最终效果来看,如果你想在一台没有公网IP的NAT机器上建站,使用CF Tunnel的效果可能会更好(附送HTTPS标准端口);同时由于又接入了CF的CDN网络与防御,所以最终效果和开了小黄云+DNS的站没什么区别,可以说是NAT无痛建站方案了。
前置条件
一台可访问互联网的服务器,并满足安装 cloudflared 的所有条件
一个可用的 Cloudflare 账号
目前cloudflared可于macOS, Windows, Debian/RedHat下使用对应的包管理器进行安装,也可通过Docker启动,或从官方GitHub Repo内下载binary file。通过Cloudflare面板创建tunnel时,CF将会提供对应不同平台的安装方法。