Cloudflare tunnel Linux 本地设置隧道指南
2024-06-11
本指南详细介绍了如何在Linux系统上设置Cloudflare隧道,包括安装cloudflared、验证账户、创建隧道、配置文件、路由流量以及运行和检查隧道的步骤。
先决条件
在开始之前,请确保您:
- 向 Cloudflare 添加网站。
- 将域名服务器更改为 Cloudflare。
1. 下载并安装 cloudflared
Debian 和 Ubuntu APT:
- 添加 Cloudflare 的软件包签名密钥:
sudo mkdir -p --mode=0755 /usr/share/keyrings curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
- 将 Cloudflare 的 apt 仓库添加到您的 apt 仓库中:
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
- 更新软件源并安装 cloudflared:
sudo apt-get update && sudo apt-get install cloudflared
RHEL RPM:
- 添加 Cloudflare 的存储库:
curl -fsSL https://pkg.cloudflare.com/cloudflared-ascii.repo | sudo tee /etc/yum.repos.d/cloudflared.repo
- 更新软件源并安装 cloudflared:
sudo yum update && sudo yum install cloudflared
Arch Linux:
- 使用 pacman 安装 cloudflared:
pacman -Syu cloudflared
其他:
- 访问 Cloudflare Downloads 页面,找到适合你操作系统的软件包并下载。
2. 验证 cloudflared
cloudflared tunnel login
运行此命令将:
- 打开浏览器窗口并提示您登录 Cloudflare 账户。登录账户后,选择您的主机名。
- 在默认的 cloudflared 目录中生成账户证书,即
cert.pem
文件。
3. 创建隧道并为其命名
cloudflared tunnel create <NAME>
运行此命令将:
- 通过在您提供的名称和隧道的 UUID 之间建立持久关系来创建隧道。
- 在默认 cloudflared 目录中生成隧道凭据文件。
- 创建
.cfargotunnel.com
的子域。
确认隧道已成功创建:
cloudflared tunnel list
4. 创建配置文件
在 .cloudflared
目录中,使用任何文本编辑器创建 config.yml
文件。
如果您正在连接应用程序:
url: http://localhost:8000 tunnel: <Tunnel-UUID> credentials-file: /root/.cloudflared/<Tunnel-UUID>.json
如果连接的是专用网络:
tunnel: <Tunnel-UUID> credentials-file: /root/.cloudflared/<Tunnel-UUID>.json warp-routing: enabled: true
确认配置文件已成功创建:
cat config.yml
5. 开始路由流量
现在分配一个 CNAME 记录,将流量指向您的隧道子域:
如果要连接应用程序:
cloudflared tunnel route dns <UUID or NAME> <hostname>
如果要连接专用网络:
cloudflared tunnel route ip add <IP/CIDR> <UUID or NAME>
确认路由已成功建立:
cloudflared tunnel route ip show
6. 运行隧道
运行隧道,将从隧道传入的流量代理到本地运行的服务:
cloudflared tunnel run <UUID or NAME>
如果配置文件有自定义名称或不在 .cloudflared
目录中,请添加 --config
标记并指定路径:
cloudflared tunnel --config /path/your-config-file.yml run <UUID or NAME>
7. 检查隧道
隧道配置完成!要获得刚刚创建的隧道的信息,可以运行:
cloudflared tunnel info <UUID or NAME>
现在,您可以使用 Cloudflare DNS 将流量路由到您的隧道,或使用 Cloudflare Access 确定谁可以访问您的隧道。