在Linux上部署Cloudflare Tunnel需依次完成:一、APT安装cloudflared并验证;二、手动下载最新二进制包并校验架构;三、用Quick Tunnel快速启动临时隧道;四、配置命名隧道实现持久化;五、通过systemd服务后台常驻运行。

如果您希望在 Linux 系统上部署 Cloudflare Tunnel 以实现安全、免端口映射的内网服务暴露,则需完成 cloudflared 客户端安装、隧道创建与持久化配置。以下是具体操作步骤:
一、通过系统包管理器安装 cloudflared
适用于 Ubuntu/Debian 等基于 APT 的发行版,该方式安装快捷且便于后续更新维护。安装过程会自动处理依赖,并将二进制文件置入标准路径。
1、更新软件源索引并安装 cloudflared:
sudo apt update && sudo apt install cloudflared -y
2、验证安装是否成功:
cloudflared --version
3、若提示命令未找到,请检查 PATH 是否包含 /usr/bin 或执行 sudo ln -s /usr/bin/cloudflared /usr/local/bin/cloudflared 建立软链接。
二、手动下载并安装最新版 cloudflared
当系统默认源中版本过旧或缺失时,应采用 GitHub 官方发布页的预编译二进制包进行安装,确保获得完整协议支持(如 TCP/SSH/RDP)及最新安全补丁。
1、获取适用于 amd64 架构的最新 Linux 二进制文件:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
2、赋予可执行权限并移动至系统路径:
chmod +x cloudflared-linux-amd64 && sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared
3、验证架构兼容性:
file /usr/local/bin/cloudflared
输出中应包含 ELF 64-bit LSB pie executable, x86-64 字样,否则需根据 uname -m 结果选择 arm64 或其他对应版本。
三、使用 Quick Tunnel 快速启动临时隧道
适用于开发调试或临时演示场景,无需登录 Cloudflare 账户或绑定域名,由 cloudflared 自动注册匿名隧道并返回随机子域 URL。
1、确保本地服务已在指定端口运行,例如:
python3 -m http.server 8000
2、在新终端中执行隧道命令:
cloudflared tunnel --url http://127.0.0.1:8000
3、等待终端输出类似内容:
Your quick Tunnel has been created! Visit it at: https://abc123-def456-ghi789-jkl012.trycloudflare.com
4、将该 URL 提供给外部用户即可访问本地服务,连接断开后隧道自动销毁。
四、配置命名隧道(Named Tunnel)实现持久化部署
命名隧道需关联 Cloudflare Zero Trust 账户与已托管域名,支持自定义子域名、访问策略、日志审计及多服务路由,适用于生产环境。
1、登录 Cloudflare 账户并进入 Zero Trust 仪表板,点击 Access → Tunnels → Create a tunnel
2、输入隧道名称(如 home-web-server),点击“Create tunnel”生成唯一 UUID 与 credentials 文件
3、将 credentials 文件下载至本地,例如保存为 /etc/cloudflared/home-web-server.json
4、创建配置文件 /etc/cloudflared/config.yml,写入以下内容:
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
credentials-file: /etc/cloudflared/home-web-server.json
ingress:
- hostname: web.example.com
service: http://localhost:80
- service: http_status:404
五、设置 systemd 服务实现后台常驻运行
避免终端关闭导致隧道中断,通过 systemd 单元文件将 tunnel 进程作为系统服务管理,支持开机自启、异常重启与日志追踪。
1、创建服务定义文件:
sudo nano /etc/systemd/system/cloudflared.service
2、填入以下内容:
[Unit]
Description=Cloudflare Tunnel Agent
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/cloudflared --config /etc/cloudflared/config.yml tunnel run
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
3、启用并启动服务:
sudo systemctl daemon-reload && sudo systemctl enable cloudflared && sudo systemctl start cloudflared
4、查看运行状态:
sudo systemctl status cloudflared
输出中应显示 active (running) 且无报错日志。
















