Cloudflare Tunnel 简易入门:零公网 IP 实现内网穿透
什么是 Cloudflare Tunnel?
Cloudflare Tunnel 可以把你本地的服务接到 Cloudflare 网络上。你只需要在本机跑一个 cloudflared,它会主动连出去,和 Cloudflare 建一条长期连接。外部请求先到 Cloudflare,再转回你本地的服务。
它最适合下面这种场景:
- 没有公网 IP,但想把本地服务发到公网
- 不想折腾路由器端口转发
- 想直接用 HTTPS
- 不想把源站 IP 直接暴露出去
使用前提
- Cloudflare 账号:先注册一个账号。
- 域名:你需要一个已经接入 Cloudflare 的域名。
- 本地环境:需要能在本机安装并运行
cloudflared。 - 账单信息:有些账号在开通相关服务时会提示补充支付方式或账单信息,按控制台提示处理就行。
第一步:创建 Tunnel
- 登录 Cloudflare 控制台
- 进入 Zero Trust,找到 Tunnels 页面。不同账号的导航名称可能略有区别,但入口都不难找。
- 点击 Create a tunnel 按钮开始创建。
- 选择 Cloudflared。这是最常见的做法,适合把本地服务挂出去。
- 给 Tunnel 起个名字,然后保存。
第二步:安装连接器
- 选择你的操作系统。Cloudflare 会提供对应的安装指南。
- 以 macOS 为例,复制页面上的命令到终端执行。跑完以后,
cloudflared会装好,并作为后台服务启动。 - 安装成功后,控制台里的状态会变成绿色,说明连接器已经在线。
第三步:配置 Public Hostname
- 先确认本地服务已经跑起来。比如我这里的服务在
4173端口。 - 在 Public Hostname 里填二级域名、协议类型,以及本地服务的地址和端口。
- 保存后等一会儿,状态变绿就说明这条规则已经生效了。有时候会慢几分钟。
第四步:验证结果
- 用浏览器打开你刚才配置的域名。能看到本地服务页面,就说明已经通了。
进阶:一个 Tunnel 挂多个服务
很多人刚开始会给每个服务单独建一个 Tunnel,其实大多数时候没这个必要。
一个 Tunnel 下面可以配多条 Public Hostname 规则。你只要跑着一个 cloudflared,就能把不同的二级域名指到不同的本地服务上,比如:
nas.yourdomain.com->http://localhost:5000blog.yourdomain.com->http://localhost:8080
这样管理起来更省事,后面新增服务也方便。
总结
如果你只是想把家里的 NAS、开发中的前端项目,或者某个管理后台临时挂到公网,Cloudflare Tunnel 确实很省事。
它最大的好处很直接:不用开路由器端口,不用自己折腾证书,而且一个 Tunnel 就能挂多个服务。需要注意的也很明确:你得先把域名接到 Cloudflare,另外首次开通时有些账号会要求补充账单信息。
对个人用户来说,这套方案的上手门槛不高,日常使用也够稳。