CloudFlare Tunnel本地管理
起因是觉得在批量配置的时候,需要一直在WEB页面上操作,比较繁琐。在翻阅文档的时候,看见了Locally-managed tunnels,可以将隧道配置存储在本地,然后启动隧道就行了。
生成隧道证书
cloudflared认证文件分为两种,一种是帐户证书可以操作所有隧道(cert.pem),一种是隧道证书只能操作指定隧道(<Tunnel-UUID>.json)。帐户证书的有效期是十年,隧道证书的有效期是永久的。
这里以隧道证书为例:
首先在一个已经安装好了cloudflared
的环境下执行:
|
|
命令会提示你打开一个链接,然后登录CloudFlare账号,登录成功后会在默认 cloudflared
目录(Windows下为:%USERPROFILE%\.cloudflared
,也就是用户家目录下的.cloudflared
文件夹)中生成帐户证书cert.pem
。
然后执行:
|
|
将会在默认 cloudflared
目录下生成一个<Tunnel-UUID>.json
文件。
创建配置文件
配置文件的格式如下:
|
|
tunnel
填写上面生成的<Tunnel-UUID>
,credentials-file
填写<Tunnel-UUID>.json
的路径。
ingress
下填写的是流量代理规则,hostname
填写自己的域名,service
填写对应服务的地址,originRequest
用于指定一些回源的参数,如:host、超时时间等。
(注意:最后必须要有一个匹配所有流量的规则,也就是service: http_status:404
,否则运行时会报错。)
更多的回源参数可以参考:Origin configuration parameters · Cloudflare Zero Trust docs
启动隧道
在配置文件所在目录执行:
|
|
最后域名添加dns解析到<UUID>.cfargotunnel.com
,然后就可以访问了。为了方便,可以直接将通配符解析到<UUID>.cfargotunnel.com
。
参考:
Useful terms · Cloudflare Zero Trust docs
Configuration file · Cloudflare Zero Trust docs
Origin configuration parameters · Cloudflare Zero Trust docs