Linux部署Cloudflared隧道教程
时间:2026-04-03 11:36:26 430浏览 收藏
本文详细介绍了在Linux系统上从零开始部署Cloudflare Tunnel的完整流程,涵盖APT一键安装与手动下载最新版cloudflared、利用Quick Tunnel快速验证本地服务、通过命名隧道实现绑定自定义域名与精细化访问控制、以及借助systemd配置持久化后台服务——无论你是开发者临时调试,还是运维人员搭建生产级内网服务暴露方案,都能获得安全、免端口映射、无需公网IP的高效解决方案。

如果您希望在 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) 且无报错日志。
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
138 收藏
-
252 收藏
-
356 收藏
-
135 收藏
-
217 收藏
-
280 收藏
-
256 收藏
-
242 收藏
-
332 收藏
-
407 收藏
-
459 收藏
-
409 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习