日常使用中,我们经常需要将本地电脑、局域网内的服务对外网开放访问,常见场景包括:
- 本地开发项目临时分享,提供给他人在线预览调试
- 家庭 NAS、智能家居、本地服务实现异地远程访问
- 内网工具、测试环境临时对外发布使用
传统内网穿透方式存在不少限制:家庭宽带大多无法获取独立公网 IP,端口映射无法实现;frp 等自建穿透工具需要额外一台云服务器作为中转;第三方商业穿透工具普遍存在限速、收费、功能受限等问题。
Cloudflare Tunnel 是 Cloudflare 推出的免费内网穿透工具,全程无需公网 IP、无需中转服务器,即可快速将内网服务暴露至公网,同时自带免费 CDN 加速与基础 DDoS 防护,自动配置 HTTPS,大幅简化外网发布流程。
演示环境:本地 Windows / Linux 设备,如需长期稳定部署服务,可搭配云服务器使用,主流可选雨云(新手上手简单)、阿里云 ECS、腾讯云轻量等机型。
一、准备工作
1.1 基础需求
- 已接入 Cloudflare 解析托管的域名
- 免费版 Cloudflare 账号
- 本地电脑、内网主机或云服务器设备
1.2 域名接入 Cloudflare
若无自有域名,可在正规域名厂商完成注册,雨云、阿里云、腾讯云均提供域名注册与解析服务,入门级域名成本低廉。
域名接入 Cloudflare 流程:
- 登录 Cloudflare 控制台,新增站点并填入自有域名
- 获取系统分配的两组 NS 解析服务器地址
- 前往域名注册商后台,修改域名 DNS 服务器为 Cloudflare 地址
- 等待 DNS 全局生效,一般数分钟至数小时即可完成
二、安装 cloudflared 客户端
2.1 Windows 系统安装
# 一键命令安装
winget install cloudflare.cloudflared
# 备用方案:手动下载二进制包
# https://github.com/cloudflare/cloudflared/releases
2.2 Linux 系统安装(Debian / Ubuntu)
# 官方源安装
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
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
sudo apt update
sudo apt install cloudflared -y
# 快速二进制部署(通用所有 Linux)
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x cloudflared-linux-amd64
sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared
2.3 macOS 系统安装
brew install cloudflared
三、创建并配置隧道
3.1 账号授权绑定
cloudflared tunnel login
执行命令后自动唤起浏览器,登录并授权当前设备,授权完成后自动生成本地证书,存放路径:~/.cloudflared/cert.pem。
3.2 新建专属隧道
# 自定义隧道名称
cloudflared tunnel create my-tunnel
创建成功会返回唯一 Tunnel ID,同时生成密钥配置文件,记录文件路径与 ID,后续配置需要使用。
3.3 域名路由绑定
# 将子域名绑定至当前隧道
cloudflared tunnel route dns my-tunnel app.yourdomain.com
命令执行后,Cloudflare 会自动添加 CNAME 解析记录,无需手动修改 DNS 配置。
3.4 编写统一配置文件
新建配置文件 ~/.cloudflared/config.yml,多服务统一管理:
tunnel: 你的Tunnel-ID
credentials-file: /home/youruser/.cloudflared/你的Tunnel-ID.json
ingress:
# 本地网页服务
- hostname: app.yourdomain.com
service: http://localhost:3000
# 内网SSH远程连接
- hostname: ssh.yourdomain.com
service: ssh://localhost:22
# 本地文件服务
- hostname: files.yourdomain.com
service: http://localhost:8080
# Windows 远程桌面
- hostname: rdp.yourdomain.com
service: rdp://localhost:3389
# 默认兜底规则(必填)
- service: http_status:404
3.5 启动隧道服务
cloudflared tunnel run my-tunnel
控制台输出 Connection registered 即代表穿透连接建立成功,内网服务可通过绑定域名外网访问。
3.6 后台常驻运行
Linux 系统(systemd 开机自启)
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared
Windows 系统(NSSM 托管为系统服务)
借助 NSSM 实现后台常驻,避免窗口关闭断开连接,稳定长期运行。
四、多场景实战配置
4.1 暴露本地 Web 项目
ingress:
- hostname: web.yourdomain.com
service: http://localhost:8080
- service: http_status:404
配置完成重启隧道,直接通过 HTTPS 域名访问本地项目。
4.2 网页端在线 SSH
无需客户端,浏览器直接操作内网服务器:
ingress:
- hostname: ssh.yourdomain.com
service: ssh://localhost:22
4.3 外网访问 Windows 远程桌面
ingress:
- hostname: rdp.yourdomain.com
service: rdp://localhost:3389
4.4 内网 NAS、本地存储服务发布
ingress:
- hostname: nas.yourdomain.com
service: http://192.168.1.100:5000
4.5 同时映射多个内网服务
ingress:
- hostname: app1.yourdomain.com
service: http://localhost:3000
- hostname: app2.yourdomain.com
service: http://localhost:4000
- hostname: api.yourdomain.com
service: http://localhost:8080
- service: http_status:404
4.6 穿透 Docker 容器服务
# 容器内网网关访问
ingress:
- hostname: docker-app.yourdomain.com
service: http://host.docker.internal:3000
五、高级优化配置
5.1 访问权限管控
依托 Cloudflare Zero Trust 配置访问策略,支持邮箱验证、账号登录、IP 白名单等方式,防止内网服务被恶意访问,提升安全性。
5.2 强制 HTTPS 访问
进入 Cloudflare 控制台,开启「始终使用 HTTPS」,自动将 HTTP 请求强制跳转加密链接,全站加密更安全。
5.3 静态资源缓存加速
通过页面规则配置静态文件缓存策略,利用 Cloudflare 全球节点分流,提升外部访问加载速度。
六、常见问题排查
# 检查进程运行状态
ps aux | grep cloudflared
# 调试模式查看详细日志
cloudflared tunnel run my-tunnel --loglevel debug
# 查看全部隧道列表
cloudflared tunnel list
# 删除废弃隧道
cloudflared tunnel delete my-tunnel
七、主流内网穿透方案对比
表格
| 方案 | 费用 | 带宽限制 | 需独立服务器 | 安全防护 |
|---|---|---|---|---|
| Cloudflare Tunnel | 永久免费 | 无限制 | 否 | 自带 DDoS+CDN |
| frp 自建穿透 | 免费开源 | 取决于中转机 | 是 | 无额外防护 |
| 花生壳商业版 | 按需收费 | 严格限速 | 否 | 基础防护 |
| ngrok 免费版 | 免费 | 限速限流 | 否 | 基础防护 |
Cloudflare Tunnel 核心优势:
- 完全免费开源,无隐性消费
- 不限流量不限速,满足日常使用
- 全局节点加速,自动 SSL 加密
- 轻量化部署,低资源占用
局限性:
- 域名必须托管 Cloudflare
- 国内部分地区访问延迟偏高,适合临时使用
八、总结
Cloudflare Tunnel 轻量化、零成本、易部署,是个人开发者临时项目预览、家庭设备远程访问、内网工具临时发布的最优方案。
该工具适合短期、轻量化使用;如果是企业业务、正式站点、长期稳定对外提供服务的场景,更建议使用云服务器独立部署,保证访问稳定性与响应速度。