Cloudflare 从入门到精通 10. Tunnel 内网穿透神器
📜 前言
如果你有网站或者应用部署在自己的家用电脑上,又想通过公网的访问的你的网站,要怎么办呢?
方式一:将应用搬到有公网 ip 的服务器上
这种方式需要你购买一台服务器,同时要会一些基础的项目部署技巧,但是如果你想在服务器跑一些用到 GPU 的应用,那么你需要租用非常昂贵的服务器,同时所有操作都必须使用命令行,有些朋友也未必熟悉 Linux,而家用电脑的独立显卡除了可以玩游戏还可以跑模型,部署现在大火的大模型比租用服务器便宜多了,租用云服务器并不是一个好选择
方式二:跟运营商申请公网 ip
找运营商获取公网 ip 很麻烦,会问你要公网 ip 做什么,还要备案等一系列手续,而且 ip4 的公网 ip 还不一定有等等问题。
此时你可以考虑使用 Cloudflare Tunnel 无需公网 ip 实现内网穿透。本文会教你快速上手 Cloudflare Tunnel、如何查看 Tunnel 日志、同时对其优缺点进行讲解。
🧾 教程
创建 Tunnel
登录 Zero Trust ↗ 选择 Networks > Tunnels. 点击 Create a tunnel 创建一个通道
我们选择 Select Cloudflared, 不要选择 WARP
给你的 tunnel 命个名,然后点击Save tunnel
接下来进入安装页面,cloudflared 支持多平台安装,甚至包括 Docker 的安装方式,我的 Macbook 已经安装过 cloudflared 了,所以选择右侧的安装命令。
本地安装成功后,在 tunnel 的后台可以看到 Connectors 下面已经联通的 tunnel,再点击右下角的 Next
这个页面是用于配置公网访问的域名和你本地服务的映射关系,注意!这个域名必须托管在 Cloudflare 上。这里我让所有访问 https://tunnel.debill.cc 的流量都转到本地的 4000 端口
启动本地服务
这里我以我的博客举例,在本地机器上启动服务。
在 Cloudflare tunnel 的后台可以看到 tunnel 的状态是 healthy,说明我们可以直接通过刚刚设置的域名访问本地服务。
PS:如果刚启动完本地服务访问不通可以再等等再试试,偶尔会遇到这样的情况
通过刚刚设置的域名可以正常访问本地应用
当我将本地应用停了,再次访问 https://tunnel.debill.cc/ 就变成 Error code 502
📝 日志查看
有两种方式可以查看 tunnel 的访问日志,一种是在 Cloudflare 的控制面板查看,另一种方式是启动的时候指定日志参数
在控制台查看日志
回到 Cloudflare tunnel 的后台,点击 Connector ID
再点击 Begin log stream 就可以获取当前访问服务的实时日志,还能将日志下载成 csv 格式的文件,当然这种方式只适合偶尔查看日志。
使用命令行输出日志
前面我们启动 cloudflared 的时候没有设置日志输出,其实可以在启动的时候执行以下命令,就能将后台日志打印到我们本地文件
1 | cloudflared tunnel --logfile mytunnel.log run <UUID> |
🌟 优点&缺点
优点
核心组件开源
tunnel 依赖的核心组件 cloudflared是用 go 语言编写的开源项目,相比其他内网穿透软件安全性有极大的保障,任何问题也可以通过社区去寻找答案。我了解不少号称免费的内网穿透软件都被爆出有安全问题。
跨平台支持
Cloudflare tunnel 可以做到全平台支持(Windows / MacOS / Linux), 其他的内网穿透软件只支持个别平台
缺点
访问不稳定
有不少朋友反馈,在境内使用 tunnel 会不稳定,有时候访问速度很慢,甚至有无法访问应用的情况
学习成本
Cloudflare 官方提供的安装方式很多都需要命令行,这对不懂代码的朋友有一定学习的成本,不像其他内网穿透的软件,一键安装就可以使用
📝 总结
使用 Cloudflare tunnel 实现内网穿透,前置条件是域名必须托管在 Cloudflare 上,如果你有一些自用的服务部署在了家用服务器,又难以获取公网 ip,可以尝试用 tunnel 内网穿透,唯一的缺点可能是境内访问不稳定,如果是对外提供的服务还是建议使用正常的部署方式,不要使用内网穿透。
本文只介绍了 http 协议的内网穿透方式,实际 cloudflared 还能支持 SSH/ gRPC 等协议,想深入了解的朋友可以自己多尝试尝试
- 标题: Cloudflare 从入门到精通 10. Tunnel 内网穿透神器
- 作者: DeBill
- 创建于 : 2024-12-31 20:54:00
- 更新于 : 2025-01-09 23:09:41
- 链接: https://debill.me//cloudflare-series/cloudflare-tunnel-10/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。