本文将手把手带你用 Cloudflare Tunnel 实现免费内网穿透。 首先介绍 Cloudflare Tunnel的基本原理,然后实操两种配置方式:网页端配置 和 本地配置,大家根据个人偏好自选即可~
1. Cloudflare Tunnel 简介
Cloudflare Tunnel,可以为云与设备之间打通一条加密通道,这样 Cloudflare 的 CDN 就可以通过这条加密通道访问到部署在内网的服务,包括Web、SSH等。 你有没有公网 IP 都无所谓! 重点是,免费!
基本原理:在内网运行一个 Cloudflare 守护程序,与 Cloudflare 云端通信,将云端请求数据转发到内网的 IP + 端口。
2. 网页端配置
- 基础配置5步走 网页端配置非常简单,需要下面步骤: 进入 Cloudflare 主页,左侧找到 Zero Trust,点进去,随便写个域名,后面可以修改。 创建 Cloudflare Zero Trust ,选择免费计划。需要绑定信用卡
- 绑卡完成后,在 Network-Tunnels 中,创建一个 Tunnel。
- 选择 Cloudflared 部署方式,因为Tunnel 需要通过 Cloudflared 来建立云端与本地网络的通道。
- 下面部署方式看自己机器型号对应方式一:命令行部署
首次使用,需要安装 Cloudflared,首次启动耗时较长。
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
sudo cloudflared service install xxx
1
2
3
上述指令会将 Cloudflared 注册为系统服务,Cloudflared 会被配置为随系统启动而自动运行。安装完成后,可以通过如下命令查看服务状态:
systemctl status cloudflared
1
状态是 Active,则说明服务正常!
————————————————方式二:docker 部署
点击复制 docker 指令,此外,还可以加上 --name cloudflared -d --restart unless-stop 为 Docker 容器增加名称、后台运行和自动重启。
docker run --name cloudflared -d --restart unless-stop cloudflare/cloudflared:latest tunnel --no-autoupdate run --token xxx
1
AI写代码
安装成功后,在 Tunnel 页面下方可以看到,已经连接成功!推荐一台服务器新建一个 Tunnel ,不同端口的服务都通过这个 Tunnel 映射!
映射域名 & URL
进入 Tunnel 页面,找到 Public hostname。一个服务配置一个子域名(Subdomain),域名(Domain)需要在 cloudflare 完成 DNS 解析。
URL 处填写内网服务的 IP 加端口号,如果是转发到 80 端口,可以不用端口号。
Type 建议使用 HTTP,因为 Cloudflare 会自动为你提供 HTTPS。