CF Tunnel 内网隧道穿透
传统的方案往往伴随着诸多痛点:
- DDNS + 端口映射:需要宽带拥有动态公网 IPv4,且随时面临运营商封禁 80/443 端口的风险。
- FRP / Ngrok 等内网穿透:需要自己额外购买并维护一台带公网 IP 的中转云服务器,且带宽受限,配置繁琐。
Tunnel(原 Argo Tunnel)不仅完全免费,还能让你在没有公网 IP、不开放任何路由器端口的情况下,极其安全、优雅地将后端服务器接入互联网
🌟 为什么选择 CF Tunnel?
严谨地说,Cloudflare Tunnel 采用了反向代理隧道技术。你的服务器主动向 Cloudflare 的边缘节点建立长连接(Outbound),而不需要在你的防火墙上开任何“洞”(Inbound)。
这种架构带来了无可比拟的优势:
- 极致安全,隐匿无踪:服务器无需开放任何入站端口(Inbound Ports)。黑客无法通过扫描 IP 端口来攻击你的服务器,因为你的真实 IP 被彻底隐藏。
- 免公网 IP,无视 NAT:不管你是校园网、大内网还是移动宽带,只要服务器能上网(能 ping 通外网),就能穿透。
- 自带企业级防护:流量天然经过 Cloudflare 全球网络,自动享受 DDoS 防护、WAF(Web 应用防火墙)和免费的 SSL/TLS 证书加密。
- 全图形化管理(Zero Trust):告别繁琐的
.yaml配置文件,新增域名、修改端口全部通过网页端控制台一键下发,实时生效。
🛠️ 准备工作
在开始之前,请确保你满足以下条件:
- 一个已托管在 Cloudflare 的域名。
- 一台后端服务器(Linux/Windows/macOS 均可,内网虚拟机、树莓派也可以)。
- Cloudflare 账号已绑定支付方式(开通 Zero Trust 免费版需要验证身份,支持双币信用卡或 PayPal,不会扣费)。
🚀 实操步骤
第一步:创建 Tunnel
- 登录 Cloudflare 控制台,在左侧导航栏找到并点击 [Zero Trust]。
- 首次进入会要求选择套餐,选择 Free(免费版) 并完成支付信息的验证。
- 进入 Zero Trust 仪表盘后,依次点击左侧菜单的 [Networks] -> [概述]。
- 点击右上角的 [创建新 cloudflared 隧道](添加隧道)。
- 隧道类型选择 [Cloudflared](默认项),点击 Next。
- 为你的隧道起个名字(例如:
Home-Server或Node1),点击 Save tunnel。
第二步:安装守护程序

场景 A:Linux 物理机 / 虚拟机(推荐)
- 在页面中选择你的系统架构(如
Linux->64-bit或者arm64)。 - 复制右侧文本框中那段长长的包含了
token的安装命令。 - 登录你的后端服务器,粘贴并执行该命令。
(示例命令通常长这样:curl -L --output cloudflared.deb https://... && sudo dpkg -i cloudflared.deb && sudo cloudflared service install eyJh...) - 执行完毕后,控制台页面下方会实时亮起 绿色 的
Status: Connected,说明隧道已打通!点击 Next。
场景 B:使用 Docker 部署(极致纯净)
如果你不想污染宿主机环境,可以选择 Docker 方式:
- 在页面选择
Docker环境。 - 复制你的专属 Token(紧跟在
--token后面的那串极长的字符)。 - 在你的服务器上执行以下命令启动容器:
1 | docker run -d \ |
第三步:映射内部服务

在 连接器 页面:
- Public Hostname(公网访问地址):
Subdomain: 填入你想用的子域名,如nas。Domain: 从下拉列表中选择你托管在 CF 的主域名(如yourdomain.com)。- (最终外网访问地址即为:
nas.yourdomain.com)
- Service(内网服务目标):
Type: 通常选择HTTP或HTTPS。URL: 填入后端服务器的内网 IP 和端口(例如localhost:8080或localhost:5000)。
- 高级设置(Additional application settings)- 极其重要:
- 如果你的后端服务(如 Proxmox VE 面板、OpenWrt 路由器、自签证书的 NAS)使用的是 自签名 HTTPS,请务必展开
TLS选项卡,将No TLS Verify开启(启用跳过证书验证),否则会报错 502 Bad Gateway。
- 如果你的后端服务(如 Proxmox VE 面板、OpenWrt 路由器、自签证书的 NAS)使用的是 自签名 HTTPS,请务必展开
- 点击 [Save]。
⚠️ 避坑与安全规范
滥用警告
Cloudflare 的免费服务是有边界的。根据其服务条款(TOS Section 2.8),严禁使用免费版 Cloudflare 代理大量的非 HTML 媒体内容(如视频流媒体、超大文件下载)。
- ❌ 绝对不要:将 Jellyfin、Plex、Emby 等私人影院或网盘大文件下载通过 Tunnel 暴露并全天候高强度使用,这有极高概率导致你的 Cloudflare 账号被永久封禁。
- ✅ 适合场景:API 接口、博客后台、SSH 管理、Git 仓库、NAS 控制面板、智能家居控制中心。
真实 IP 的获取问题
由于流量经过了 CF Tunnel 的反向代理,你的后端服务(如 Nginx 日志、博客评论区)获取到的访客 IP 会全部变成本地回环地址(127.0.0.1)。
- 解决方案:Cloudflare 会将真实的访客 IP 放在 HTTP Request Header 的
CF-Connecting-IP和X-Forwarded-For字段中。你需要在后端的 Nginx/Apache 或应用代码中配置提取这两个头部字段,以恢复真实访客 IP。
SSH 与 RDP 穿透
CF Tunnel 不仅支持 HTTP/HTTPS,还支持 TCP 流量。你可以用它来安全地暴露 SSH (22) 或 Windows 远程桌面 RDP (3389)。
但由于普通的浏览器不支持直接解析未经封装的 TCP 隧道,使用 SSH/RDP 穿透时,客户端电脑上也必须安装 cloudflared 客户端来进行流量的本地解包。对于需要多端随时随地访问的场景,稍显繁琐,但安全性是极高。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 liujxu!






