1. Posts/

Cloudflare Tunnel 使用笔记

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

1. cloudflared 安装 #

1.1 macOS #

macOS 如果已有 brew,建议用 brew:
brew install 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 放进用户目录,用 cmdpowershell 执行以下命令时,只需把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> 可以输入端口号,建议指定。

noTLSVerify 禁用证书验证

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

2.5 运行cloudflare #

cloudflared tunnel run <UUID or NAME>