零成本搞定内网穿透:我的 Cloudflare Tunnel 实战踩坑指南
大家好,我是 33blog 的站长。今天想和大家分享一个最近折腾内网穿透时发现的神器——Cloudflare Tunnel。相比传统的 frp/ngrok 方案,这玩意儿不仅免费,还自带 HTTPS 和访问控制,特别适合我们这些既要安全又不想花钱的个人开发者。
为什么选择 Cloudflare Tunnel?
上个月我在调试家里的 NAS 服务时,被传统内网穿透方案折腾得够呛:要么要买 VPS,要么配置复杂得让人头大。直到偶然发现 Cloudflare 这个隐藏功能——不需要公网 IP,不用配置防火墙,甚至不用开端口!这简直是为我这种懒人量身定做的。
最让我心动的是:
- 完全免费(当然有速率限制)
- 自动 HTTPS 证书
- 内置访问控制(比如限制公司邮箱登录)
- 不需要记忆动态域名
实战安装过程
先说我踩的第一个坑:官方文档居然把最重要的安装步骤藏得特别深!这里给大家整理个精简版:
# 在 Linux 服务器上执行
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 tunnel login
cloudflared tunnel create my-tunnel
注意那个 my-tunnel
可以自己命名,我因为同时穿透多个服务,用了像 nas-tunnel
、homeassistant-tunnel
这样的命名方式。
配置文件的坑
这里有个大坑!官方示例给的配置文件是 YAML 格式的,但实际运行时我发现用命令行参数更可靠。比如我要把本地的 8080 端口映射出去:
cloudflared tunnel route dns my-tunnel my-service.example.com
cloudflared tunnel --url http://localhost:8080 run my-tunnel
记得先在 Cloudflare 面板把域名解析改成「仅 DNS」模式,不然会报奇怪的证书错误(别问我怎么知道的…)
访问控制实战
最让我惊喜的是访问控制功能。比如我的 HomeAssistant 后台,我只想让特定邮箱的人访问:
# config.yml
tunnel: my-tunnel
credentials-file: /path/to/credentials.json
ingress:
- hostname: home.example.com
service: http://localhost:8123
originRequest:
access:
required: true
teamName: my-team
然后在 Cloudflare Zero Trust 面板设置团队邮箱白名单,这样既不用记密码,又比暴露在公网上安全多了。
性能实测
说实话免费服务我本来没抱太大期望,但实测下来:
- 延迟:国内访问平均 200-300ms
- 带宽:稳定在 2-3MB/s(足够传文件了)
- 稳定性:连续运行 30 天没掉线
当然不能和专业的商业 VPN 比,但对于偶尔远程办公、调试智能家居完全够用。
总结
Cloudflare Tunnel 现在已经成为我的主力穿透工具,把之前用的 frp 服务都下线了。如果你也受够了传统方案的复杂性,强烈建议试试这个「懒人套餐」。
最后提醒下:虽然 Cloudflare 现在免费,但最好别用它跑大流量服务(比如视频站),毕竟人家也不是做慈善的嘛~
这个工具真是帮了大忙!之前用ngrok经常掉线,Cloudflare Tunnel稳定多了 👍
实测延迟确实还可以,就是国内速度有时候会抽风,不过免费的要什么自行车~
配置文件那里我也踩坑了!早知道看到这篇文章就好了,折腾了好久才发现YAML格式有问题
求问楼主,访问控制功能支持企业微信组织架构同步吗?想在团队内部试用下
收藏了!正愁家里的智能家居穿透问题,周末就按教程试一下 😊