1. Posts/

Cloudflare Tunnel 使用笔记

·阅读预计 1 分钟
Cloudflare cloudflared Tunnel 笔记
小北
作者
小北
目录

1. cloudflare安装 #

1.1 macOS #

macOS如果已有brew,建议用brew:
brew install cloudflare/cloudflare/cloudflared

亦可以 下载最新amd64 版本,解压输入cd Downloads进入该文件所在的下载目录,继续下述操作。

1.2 Linux #

.deb #

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && dpkg -i cloudflared-linux-amd64.deb

.rpm #

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm

1.3 windows #

32-bit 64-bit
Download Download

windows把文件下载下来后,把下载下来的可执行文件重命名成cloudflared.exe 扔进用户名目录,用cmd或powershell执行以下命令时,只需把cloudflared部分替换成cloudflared.exe即可食用。

2. Cloudflared使用 #

2.1 登陆cloudflare #

输入以下指令,会出来一个地址,浏览器会自动打开这个地址,登录Cloudflare进行认证,接下来选择用来穿透的域名,成功后,会生成一个文件名为cert.pem的证书,位于.cloudflared目录中。

cloudflared tunnel login

2.2 新建隧道 #

输入以下指令创建一个隧道,会生成一个文件名UUID.json,位于.cloudflared目录中。生成的UUID请注意,配置里需要用到。

cloudflared tunnel create <NAME>

请注意,本文中<NAME> <DOMAIN> <UUID> 请勿照搬命令,但请保持一致,<UUID>为自动生成。 例如cloudflared tunnel create abc abc即为<NAME>

2.3 解析隧道 #

cloudflared tunnel route dns <NAME> <DOMAIN>

例如cloudflared tunnel route dns abc abc.wufei.org 上述命令中,<DOMAIN> 可以为二级域名(wufei.org)或三级域名(abc.wufei.org),输入后会多出一条 CNAME记录 指向Tunnel. 这里其实可创建多个三级域名,用于不同的服务,在。

2.4 新建配置文件 #

vim ~/.cloudflared/config.yml

输入i 键进行键入,接着粘贴以下内容,按 esc 键停止键入,最后输入 :wq 保存并退出。

tunnel: <NAME>
credentials-file: ./.cloudflared/<UUID>.json
protocol: http2
originRequest:
  connectTimeout: 30s
  noTLSVerify: false
ingress:
  - hostname: <DOMAIN>
    service: http://localhost:<port>
#  - hostname: <DOMAIN2>
#    service: http://localhost:<port2> 
  - service: http_status:404

Windows直接在.cloudflared目录下手动新建config.yml即可,用notepad++等进行编辑保存。

<NAME>填新建隧道时的名字 <UUID>为生成的UUID,可以输入cloudflared tunnel list指令查询。 <DOMAIN>为解析隧道步骤时的域名,如果在添加了多个三级域名,可以去掉注释继续追加。 <port> 可以输入端口号,强国需要指定protocol.

noTLSVerify 禁用证书验证

除了 HTTP,cloudflared 还支持 SSH、RDP、TCP、sockets等协议。 详见 Origin configuration

2.5 运行cloudflare #

cloudflared tunnel run <UUID or NAME>