抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

“——Cloudflare Tunnel 为您提供了一种将资源连接到 Cloudflare 的安全方法,无需公共可路由 IP 地址。”

Cloudflare Zero Trust服务
0_Qsa3nxGd06fNzWDm

01 什么是Cloudflare Tunnel?

简单地说,想要远程访问一个服务器需要服务器的IP地址,这从原理上就注定是不安全的。Cloudflare提供的一项服务把服务器与互联网直接隔绝开,通过建立数条不暴露IP地址的隧道提供服务来确保安全性。
然而,这项功能对于防火墙内的NAS/个人服务器机主而言是意外的惊喜——这可以说是一种内网穿透,为被层层NAT隔绝的家用服务器提供了开辟一条通道的手段。
Cloudflare Tunnel的特点:

  • 免费而稳定,这项服务由老牌网络服务商Cloudflare提供,代表了服务的高可靠性。
  • 速度慢、延迟高,因为通过隧道访问网络需要途径境外的节点。
  • 部署需要拥有自己的域名和服务器。

使用Cloudflare Tunnel创建隧道可以将 HTTP Web 服务器、SSH 服务器、远程桌面和其他协议安全地连接到 Cloudflare,也就是部署到外网。

handshake_hufad68abf6107ffc2ef859ebe1b42b6e2_299675_1768x1102_resize_q75_box-Bn-llS_B

02 部署

创建隧道

进入Cloudflare的控制板,在Zero Trust服务中找到Tunnels(隧道),然后创建一条新的隧道。

  1. 点击创建新隧道
  2. 选择隧道类型:Connector(连接器)选择Cloudflared
  3. 命名隧道

部署隧道连接器

在服务器上部署连接器。考虑到连接器需要稳定、长久地运行,建议使用Docker来部署。
点击Docker部署后,在Install and run a connector项可以看到CF给出的部署命令:

1
2
3
docker run cloudflare/cloudflared:latest \
tunnel --no-autoupdate \
run --token <token>

或者,建议使用docker-compose来便利地快速部署:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '3'
services:
cloudflare:
command:
- tunnel
- run
container_name: cloudflare
deploy:
resources:
limits:
memory: 512M
environment:
- TUNNEL_TOKEN=<token>
hostname: cloudflare
image: cloudflare/cloudflared:latest
network_mode: bridge
privileged: false


最后使用docker compose up -d来启动部署。

创建主机连接

现在回到Cloudflare的控制台上。
假设我们已经由一个Nginx提供的HTTP页面服务,运行在80端口上;
那么我们现在,点击Public Hostname来创建一个公开连接:
格式:

1
2
<subdomain>.<domain>/<path>
<type>://<url>:<port>

示例:

1
2
web.magicnue.top
http://172.17.0.1:80

现在保存,然后访问这个网站;我们会惊喜地发现这个网站能够访问、并且CF为我们自动配置好了SSL证书,我们可以直接通过https协议来访问这个网站了。

03 另外……

  1. 保存好docker-compose.yml文件,以在未来具备快速部署的能力;另外还要记得及时更新镜像版本。
  2. CF除了ZeroTrust的隧道服务外,还提供了加密访问、CDN、主动攻击防护等强大的功能,不愧是赛博仙人。

评论