这两天技术圈里讨论最火的一个话题,不是哪个大模型又刷榜了,而是一个基础设施层面的东西——Cloudflare Tunnel。
如果你还没听说过这个东西,老实说,你可能已经落后了。如果你听说过但一直没动手,那这篇文章就是为你准备的。
先讲一个真实的故事。
上个月我一个朋友买了台香港VPS,在上面搭了一个个人博客和一个文件分享服务。配置挺不错的,2核4G,带宽也够用。结果第三天,他的SSH日志里出现了三千多次暴力破解尝试。第四天,他的Nginx日志里被人扫到了phpMyAdmin的路径——尽管他根本没装phpMyAdmin。第五天,他的VPS被打了,带宽跑满,服务全部宕机。
他问我说:"我是不是不该把端口暴露到公网上?"
我说:"你不该暴露的,不是端口,是你整台机器的IP。"
这就是Cloudflare Tunnel要做的事。
大型数据中心里一排排服务器——Cloudflare Tunnel 让你的服务器隐身在 Cloudflare 的全球网络背后
目录
一、传统暴露方式的三个死穴
先说清楚一个问题:我们为什么需要暴露服务到公网?
很简单,你买了个VPS,在上面搭了博客、API、文件同步、或者AI服务。这些服务总得让人访问吧。让被人访问,就得把端口打开,让流量进来。
传统的做法是什么?大概三种:
- 直接暴露端口 — 80端口挂Nginx,22端口开SSH,再开几个服务端口。你的VPS IP在公网上就像黑夜里的萤火虫,三分钟之内就会被扫描器盯上。
- 端口转发 — 家里NAS或者内网服务器,通过路由器的端口映射暴露出去。前提是你有个公网IP,而且得自己扛DDoS。
- Ngrok / FRP — 用第三方隧道工具。Ngrok免费版限制多、速度慢、域名还经常变。FRP倒是开源好用,但你得自己维护一个中转服务器。
这三个方案都有一个共同的问题:你的源站IP是暴露的。
这意味着什么?意味着只要有人想搞你,直接打你的IP就行。不管你用了什么WAF、什么防火墙,IP一暴露,DDoS就打过来了。
你信不信,现在一个1Gbps的DDoS攻击包月只要几百块钱?某些"攻击测试平台"上,甚至还有免费试用。
所以我说,把服务器IP直接暴露在公网上,本质上就是在赌没人来打你。
这种做法,放在2026年的今天,已经完全不香了。
二、Cloudflare Tunnel 到底是什么?
Cloudflare Tunnel(以前叫Argo Tunnel)是Cloudflare提供的一个服务。它的核心思想很简单:让服务器主动连Cloudflare,而不是让用户直接连服务器。
传统模型是这样的:
用户 → Cloudflare CDN → 你的VPS (IP暴露)
Cloudflare Tunnel 模型是这样的:
用户 → Cloudflare CDN → Cloudflare边缘节点 → 加密隧道 → 你的VPS(没有开放入站端口)
看到区别了吗?
在Tunnel模式下,你的VPS不监听任何公网端口。它主动发起一个出站连接到Cloudflare的边缘节点,建立一条加密隧道。所有外部流量先到Cloudflare,经过安全过滤(WAF、DDoS防护、速率限制),再通过这条隧道转发到你的服务上。
换句话說——你的VPS对公网来说,是隐身的。
这对服务器导购这个领域意味着什么?我直接说结论:
Cloudflare Tunnel = 免费DDoS防护 + 免费WAF + 免费CDN + 源站IP隐藏
这套组合拳,如果自己去买安全服务,少说一个月要几百上千。而Cloudflare的免费套餐,完全够个人站长和小团队用。
三、手把手搭建:十分钟让你的VPS隐身
下面我把整个搭建过程拆解一遍。你跟着做,十分钟之内就能让VPS"隐身"。
前提条件
- 一台VPS(Linux系统,Ubuntu 20.04+ 或 Debian 11+)
- 一个域名(在Cloudflare上托管)
- 基本的SSH操作能力
第一步:安装 cloudflared
在你的VPS上执行:
# 下载并安装 cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
# 验证安装
cloudflared --version
就这么简单,一个二进制文件搞定。连依赖都不需要装。
第二步:登录授权
cloudflared tunnel login
执行后会生成一个链接,复制到浏览器打开,选择你的域名完成授权。VPS上会生成一个证书文件 ~/.cloudflared/cert.pem。
第三步:创建隧道
# 创建隧道,会生成一个 Tunnel ID
cloudflared tunnel create my-first-tunnel
执行完你会看到一个UUID格式的Tunnel ID,记下它。同时 ~/.cloudflared/ 目录下会多一个JSON凭证文件。
第四步:配置DNS
假设你在VPS上跑了一个Nginx服务,监听在本地8080端口:
# 将你的域名指向这条隧道
cloudflared tunnel route dns my-first-tunnel yourdomain.com
这一步会在Cloudflare的DNS面板上自动创建一个CNAME记录,指向你的隧道。
第五步:创建配置文件
创建 ~/.cloudflared/config.yml:
tunnel: my-first-tunnel
credentials-file: /root/.cloudflared/<你的Tunnel-ID>.json
ingress:
- hostname: yourdomain.com
service: http://localhost:8080
- hostname: sub.yourdomain.com
service: http://localhost:3000
- service: http_status:404
这个配置的意思是:yourdomain.com 的请求转发到本地的8080端口,sub.yourdomain.com 转发到3000端口,其他请求返回404。
第六步:启动隧道
# 前台启动测试
cloudflared tunnel run my-first-tunnel
# 如果一切正常,Ctrl+C停掉,改用systemd服务
cloudflared --config ~/.cloudflared/config.yml service install
systemctl start cloudflared
systemctl enable cloudflared
到这里,你的VPS就已经"隐身"了。
你可以验证一下:在本地nmap扫一下你VPS的IP,你会发现一个开放的端口都扫不到。但你的网站却能正常访问。是不是很神奇?
网络安全可视化——Cloudflare Tunnel 相当于给你的 VPS 穿上一件隐形斗篷
高级技巧:负载均衡和多区域部署
如果你有多个VPS,可以在不同地区都安装cloudflared并配置同一个Tunnel,Cloudflare会自动做负载均衡和故障切换。这对于追求高可用的人来说,简直是神器。
四、买了VPS应该怎么配?硬件建议
好,到这里技术层面讲完了。接下来聊聊你们最关心的问题——作为服务器导购,买什么样的VPS最适合跑Cloudflare Tunnel?
我直接给结论:
| 用途 | 推荐配置 | 月预算参考 |
|---|---|---|
| 个人博客 / 静态站点 | 1核1G | ¥30-50 |
| 动态站点 / WordPress | 2核2G | ¥50-100 |
| 多个服务 / 团队工具 | 2核4G | ¥100-200 |
| AI推理 / 高负载应用 | 4核8G+ | ¥200-500 |
关键点:Cloudflare Tunnel本身几乎不消耗资源。
我实测过,cloudflared进程的内存占用通常在 20-50MB 左右,CPU占用在绝大部分时间低于1%。所以你不必为了跑Tunnel去买高配机器。
但有一个东西你需要注意——带宽。
Cloudflare免费套餐的带宽没有硬性限制,但如果你跑视频流、大文件下载,Cloudflare可能会限制你。对于正常的网站和API服务,完全够用。
另外,出站带宽才是你的瓶颈。因为Tunnel模式是让VPS主动连Cloudflare,所以VPS的出站带宽决定了你的服务质量。如果你面向国内用户,建议选择CN2 GIA或BGP线路的VPS,延迟低、丢包少。
这里推荐几个适合搭配Cloudflare Tunnel的方案:
- 香港CN2 VPS — 面向国内用户的首选,延迟30-50ms,配合Cloudflare全球加速,国内国外访问都不慢
- 美国西岸VPS — 面向全球用户,性价比高,$5-10/月就能拿到不错的配置
- 日本软银/BGP VPS — 介于两者之间,延迟低、稳定性好
有经验的VPS玩家应该看出来了——有了Cloudflare Tunnel,你甚至不需要VPS本身有多好的带宽。因为静态资源(图片、CSS、JS)都可以让Cloudflare CDN缓存,真正回源的流量只有动态请求。你的VPS只需要出站带宽够大就行,入站带宽几乎可以忽略。
这不比开一堆端口、装一堆安全软件来得香?
五、几个实战场景
场景一:个人博客隐身部署
你在VPS上用Hexo/Hugo搭了一个博客,用Cloudflare Tunnel暴露。即使有人想DDoS你的博客,打的也是Cloudflare的边缘节点——和你VPS没有半毛钱关系。
场景二:内网穿透替代方案
你公司或家里有台NAS或者开发服务器,没有公网IP。在任意一台有出网权限的机器上跑cloudflared,就能把内网服务暴露出去。不需要路由器端口映射、不需要动态DNS、不需要公网IP。
场景三:API服务的安全网关
你的后端API不想让恶意用户直接访问,但又需要开放给前端调用。用Cloudflare Tunnel + Cloudflare Access(身份认证),可以做一层前置鉴权——用户先登录Cloudflare,才能访问你的API。这比你自己在代码里写认证逻辑要安全得多。
场景四:多VPS统一入口
你有三台VPS,分别跑不同的服务——一台跑数据库、一台跑应用、一台跑AI推理。你可以让它们都连到同一个Cloudflare Tunnel,按域名路由分发。对外统一入口,对内各司其职。
六、写在最后
这篇文章写下来,我发现了一个很有意思的现象。
很多人花大价钱买高防VPS、买CDN、买WAF,本质上都是在解决一个问题——"我的服务器暴露在公网上"。而Cloudflare Tunnel用一种极简的方式,从根本上避免了这个问题。
你不必去加固一扇永远不需要打开的门。
Cloudflare Tunnel对服务器导购这个行业来说,有一个更深层的意义:它拉平了不同VPS之间的安全差距。 以前便宜VPS被人诟病最多的问题就是"不安全"、"容易被攻击"。现在有了Cloudflare Tunnel,哪怕你买的是几十块钱一个月的廉价VPS,配上Tunnel之后的安全级别,比那些裸奔的高防VPS还要高。
所以我的建议是:不管你的VPS用来干什么,第一件事不是装宝塔、不是配Nginx、不是跑Docker——而是先把Cloudflare Tunnel搭起来。
十分钟的配置,换来的是从此安心的运维体验。
希望对你有用。
(全文完)
评论 (0)