前置条件
使用 Cloudflare 的 Tunnel 服务需要使用 cf 提供的域名解析。
如果没有域名,建议花钱注册,很便宜(不推荐找免费域名,Freenom 已停止用户申请,如果想碰碰运气,可以申请 nom.za 域名,参考:教程,我等了十多天还在显示 Pending)
另外,服务有免费的额度,但使用服务前需要绑定信用卡。
添加 Website
选择免费方案
获取到 NS
得到 Cloudflare nameservers 地址
grace.ns.cloudflare.com
todd.ns.cloudflare.com
在购买域名的地方配置上这个 NS 地址,等待一段时间后,面板上显示 “Active” 即配置完成
创建隧道(Tunnel)
Tunnel 功能的入口不太好找,点击侧边栏 Zero Trust,跳转后找到 “Networks” - “Tunnels”
首次使用需要填写 team name 和付款方式
Free,启动!
点击 “Create a tunnel” 创建隧道,选择 “Cloudflared” 类型
创建名为 “vpc-01” 的 Tunnel
安装 Connector,注意一个 Tunnel 搭配一个 Connector,这个 Connector 作为 Agent 运行在设备上,即 Cf 网络跟设备建立起了一个安全的隧道
根据面板的命令安装 cloudflared 类型的 Connector
执行安装
$ sudo cloudflared service install eyJhIjoiYj...
(可选)如果机器已安装过,需要重新安装服务,需要先卸载
$ sudo cloudflared service uninstall
服务启动后,Connectors 处可以看到已有机器连接
下一步,添加转发规则
如上配置即通过 https://abc.donx-done.xyz 访问内网服务器的 http://127.0.0.1:3000 端口提供的 HTTP 服务
这就是 Tunnel 的用法
为服务添加额外验证
可以使用 Application 功能为服务添加额外的安全验证。
还是在 Zero Trust 页面的左侧区域,点击 “Access” - “Applications”,选择 Self-hosted 类型
填写要保护的域名,跟 Tunnel 规则中的域名相同
添加访问策略
允许配置规则如验证邮箱后缀、IP 地址、国家地区等
其余配置暂保持默认,创建即可
刷新网站,可以看到 CF 的访问保护已开启
输入邮箱,点击发送,会收到一个验证码,填入后即可访问服务
补充
使用 CloudFlare Tunnel 有如下用途,摘自参考一