Cloudflare Tunnel 教程|无需公网 IP 内网穿透方案|cloudflared 安装与配置完整指南
作者:admin · 更新于 2026-07-06 17:54:52
一、什么是 Cloudflare Tunnel?
Cloudflare 提供的 Cloudflare Tunnel(原名 Argo Tunnel) 是一种安全的内网穿透方案,可以让你无需公网 IP、无需端口映射,就能将本地服务安全暴露到互联网。
它通过在本地运行 cloudflared 客户端,与 Cloudflare 边缘节点建立出站加密隧道,实现公网访问本地服务。
Cloudflare Tunnel 核心优势:
- 🚀 无需公网 IP
- 🔒 自动 HTTPS 加密
- 🛡 内置 DDoS 防护
- 🚫 无需开放防火墙端口
- 🌍 全球 CDN 加速访问
- 🔁 自动重连,稳定可靠
二、Cloudflare Tunnel 工作原理(内网穿透架构)
Cloudflare Tunnel 的访问流程如下:
用户访问域名
↓
Cloudflare 边缘节点
↓
加密 Tunnel 隧道
↓
cloudflared 客户端(本地)
↓
内网服务(Nginx / Web / API)
关键词理解:
- cloudflared:本地隧道客户端
- Tunnel:安全加密通道
- Ingress:流量转发规则
三、Cloudflare Tunnel 适用场景(非常重要)
Cloudflare Tunnel 广泛用于以下场景:
1. 内网服务远程访问
- NAS 系统
- 家庭服务器
- 管理后台
2. 网站部署
- WordPress
- 静态博客
- API 服务
3. Docker 服务暴露
- 面板服务
- AI 接口
- 开发环境
4. 替代传统内网穿透工具
- FRP
- NPS
- Ngrok
四、Cloudflare Tunnel 安装前准备
在开始部署前,你需要准备:
1. Cloudflare 账号
登录:
https://dash.cloudflare.com
2. 已托管域名
例如:
- example.com
- yourdomain.com
3. Linux 服务器 / VPS / NAS
五、安装 cloudflared(核心步骤)
方式一:Debian / Ubuntu 安装
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
方式二:CentOS 安装
sudo yum install -y cloudflared
验证安装是否成功
cloudflared --version
六、登录 Cloudflare 账号(授权域名)
运行以下命令:
cloudflared tunnel login
系统会自动打开浏览器:
- 登录 Cloudflare
- 选择域名
- 授权 Tunnel 权限
完成后生成证书:
~/.cloudflared/cert.pem
七、创建 Cloudflare Tunnel
创建一个隧道:
cloudflared tunnel create my-tunnel
输出示例:
Created tunnel my-tunnel with id: xxxx-xxxx-xxxx
👉 记录 Tunnel ID(非常重要)
八、配置 Cloudflare Tunnel(核心配置)
创建配置目录:
sudo mkdir -p /etc/cloudflared
sudo nano /etc/cloudflared/config.yml
示例配置文件(推荐模板)
tunnel: YOUR_TUNNEL_ID
credentials-file: /root/.cloudflared/YOUR_TUNNEL_ID.json
ingress:
- hostname: app.example.com
service: http://localhost:8080
- hostname: api.example.com
service: http://localhost:3000
- service: http_status:404
配置说明:
| 参数 | 说明 |
|---|---|
| hostname | 外部访问域名 |
| service | 本地服务地址 |
| ingress | 路由规则 |
九、绑定域名(DNS 自动配置)
执行命令:
cloudflared tunnel route dns my-tunnel app.example.com
Cloudflare 会自动创建:
- CNAME 记录
- 指向 Tunnel
十、启动 Cloudflare Tunnel
手动启动:
cloudflared tunnel run my-tunnel
十一、设置开机自启(生产必备)
安装系统服务:
sudo cloudflared service install
启用服务:
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
查看状态:
systemctl status cloudflared
十二、Docker 部署 Cloudflare Tunnel(推荐方式)
Docker 运行命令:
docker run -d \
--name cloudflared \
--restart always \
-v /root/.cloudflared:/etc/cloudflared \
cloudflare/cloudflared:latest tunnel run my-tunnel
Docker 优点:
- 更易维护
- 可迁移
- 适合 NAS / 面板环境
十三、Cloudflare Tunnel 高级用法
1. 多服务映射(多个子域名)
ingress:
- hostname: blog.example.com
service: http://localhost:4000
- hostname: panel.example.com
service: http://localhost:9000
2. SSH 远程访问
ingress:
- hostname: ssh.example.com
service: ssh://localhost:22
3. 安全访问(Cloudflare Access)
可增加:
- 登录验证
- 邮箱白名单
- Google 登录
- 二步验证
十四、Cloudflare Tunnel vs FRP 对比
| 功能 | Cloudflare Tunnel | FRP |
|---|---|---|
| 是否需要公网 IP | ❌ 不需要 | ✔ 需要 |
| 安全性 | 高(Cloudflare 加密) | 中 |
| 配置难度 | 简单 | 中等 |
| HTTPS | 自动支持 | 手动配置 |
| CDN 加速 | ✔ 支持 | ❌ 不支持 |
十五、常见问题(FAQ)
Q1:访问失败怎么办?
检查:
- tunnel 是否运行
- DNS 是否绑定成功
- config.yml 是否正确
Q2:Cloudflare Tunnel 免费吗?
✔ 免费版可用
⚠ 高级功能需付费(Access 企业功能)
Q3:可以替代 Nginx 吗?
不能完全替代,但可以:
- 替代公网入口
- 配合 Nginx 使用
十六、总结(SEO收尾)
Cloudflare Tunnel 是目前最简单、安全、稳定的内网穿透方案之一,特别适合:
- 没有公网 IP 的用户
- NAS 用户
- Docker 玩家
- 自建服务开发者
它可以让你:
无需端口映射,即可安全访问任何本地服务。
非特殊说明,本文版权归 admin 所有,转载请注明出处。
本文标题:Cloudflare Tunnel 教程|无需公网 IP 内网穿透方案|cloudflared 安装与配置完整指南
Comments
评论