N NaSpace

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

系统会自动打开浏览器:

  1. 登录 Cloudflare
  2. 选择域名
  3. 授权 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 TunnelFRP
是否需要公网 IP❌ 不需要✔ 需要
安全性高(Cloudflare 加密)
配置难度简单中等
HTTPS自动支持手动配置
CDN 加速✔ 支持❌ 不支持

十五、常见问题(FAQ)

Q1:访问失败怎么办?

检查:

  • tunnel 是否运行
  • DNS 是否绑定成功
  • config.yml 是否正确

Q2:Cloudflare Tunnel 免费吗?

✔ 免费版可用
⚠ 高级功能需付费(Access 企业功能)


Q3:可以替代 Nginx 吗?

不能完全替代,但可以:

  • 替代公网入口
  • 配合 Nginx 使用

十六、总结(SEO收尾)

Cloudflare Tunnel 是目前最简单、安全、稳定的内网穿透方案之一,特别适合:

  • 没有公网 IP 的用户
  • NAS 用户
  • Docker 玩家
  • 自建服务开发者

它可以让你:

无需端口映射,即可安全访问任何本地服务。

Comments

评论

暂无评论,欢迎留下第一条想法。