没有公网IP又怎样?Cloudflare Tunnel 实战:免费把家里的服务安全发到全网

想在外面访问家里的 NAS、电脑或者自己搭的小服务,第一道坎往往不是技术,而是公网 IP。三大运营商早就把公网 IPv4 收紧了,多数家庭宽带拿到的是运营商内网地址(CGNAT),路由器上做端口映射根本没用。就算有公网 IP,把 80、443 端口直接开到全网,等于把家门钥匙挂在门口——全网的扫描器每天都在挨家挨户试门锁。

Cloudflare Tunnel 换了一个思路:不在墙上开洞,而是从家里往外打一条加密隧道。

它是怎么工作的

Tunnel 的核心是一个叫 cloudflared 的小工具,装在你家里的设备上。它主动向 Cloudflare 的边缘网络发起出站连接,访客的请求先到 Cloudflare,再顺着这条已建立的隧道回到你家里的服务。整个过程,你的路由器不需要开放任何入站端口,真实 IP 不暴露,HTTPS 证书由 Cloudflare 自动签发,顺带还白送一层 DDoS 防护和 CDN。最重要的是:完全免费,流量不限。

实战五步

第一步,准备一个域名并托管到 Cloudflare,没有这一步后面免谈。

第二步,在家里的设备上安装 cloudflared。以 Debian/Ubuntu 为例,到 cloudflared 的官方发布页下载对应架构的 deb 包,dpkg 安装即可,Windows 和 macOS 也有现成的安装包。

第三步,运行 cloudflared tunnel login,它会打开浏览器让你授权,选好要用的域名,凭证会自动保存到本机。

第四步,创建隧道并写配置:cloudflared tunnel create 起个名字,然后在 ~/.cloudflared/config.yml 里写 ingress 规则,把子域名指向本地服务,比如 app.你的域名 对应 http://localhost:3000,最后用一行 http_status:404 兜底。本地有几个服务就写几行,一个隧道可以带多个子域名。

第五步,cloudflared tunnel route dns 把子域名解析绑到隧道上,再 cloudflared tunnel run 启动。确认能访问后,把它装成系统服务(cloudflared service install)让它开机自启、断线重连,这一步别省。

两个容易踩的坑

第一,隧道解决了“能不能访问”,不等于“谁都可以访问”。把 NAS 管理后台、路由器后台这类敏感服务发出去之前,务必在前面加一层 Cloudflare Access,设置成只有你自己的邮箱通过验证才能进。裸奔的管理后台,隧道藏得再好也是裸奔。

第二,测速别在卧室角落拿手机下结论。服务跑在家用设备上、走的又是家庭上行带宽,先用网线直连测一遍再怀疑工具,这是基本功。

写在最后

从当年的花生壳,到 frp 自建中转,再到今天运营商级的免费隧道,内网穿透这件事的门槛已经被打到了地板上。真正值钱的从来不是某个工具,而是你脑子里“遇到限制先想换条路”的思路。工具会一直变,思路不会过时。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注