使用 Cloudflare Tunnel 绑定域名实现内网穿透 OTA 升级
本文档用于将内网 Linux 主机上的 OTA 服务通过 Cloudflare Tunnel 暴露到互联网,例如将本地http://127.0.0.1:8080映射为公网 HTTPS 地址:
https://ota.example.com适用场景:
- 自己的应用、设备或客户端需要从公网访问 OTA 升级接口。
- Linux 主机没有公网 IP,或不希望开放入站端口。
- 希望使用 Cloudflare 提供的 HTTPS、DNS 代理和基础防护能力。
本文主线采用本地管理 Tunnel:在 Linux 上使用cloudflared tunnel create创建隧道,并通过/etc/cloudflared/config.yml和systemd管理服务。
0. 准备工作
你需要准备:
- 一个已注册域名,例如
example.com。 - 一个 Cloudflare 免费账号:https://dash.cloudflare.com
- 一台能联网的 Linux 主机,例如 CentOS、RHEL、Fedora。
- 一个本地 OTA 服务,例如监听在
127.0.0.1:8080。 - 计划使用的 OTA 子域名,例如
ota.example.com。
本文示例变量:
域名:example.com OTA 子域名:ota.example.com 本地 OTA 服务:http://127.0.0.1:8080 Tunnel 名称:ota-tunnel请在实际操作时替换成你自己的域名、子域名和端口。
1. 在域名注册商修改 NS 到 Cloudflare
以阿里云为例,其他域名服务商操作类似。
- 登录阿里云控制台。
- 进入“域名”。
- 找到你的域名,点击“管理”。
- 找到“DNS 服务器”或“修改 DNS”。
- 删除原来的默认 DNS。
- 填入 Cloudflare 分配给你的两个 Nameserver。
Cloudflare 添加站点时会显示两个专属 NS,例如:
lola.ns.cloudflare.com rodney.ns.cloudflare.com注意:上面只是示例,必须使用 Cloudflare 页面给你实际分配的两个 NS。
保存后等待生效。通常需要几分钟,最长可能需要 24 小时。
2. 在 Cloudflare 绑定域名
- 登录 https://dash.cloudflare.com。
- 点击
Add a site。 - 输入你的根域名,例如
example.com。 - 选择
Free免费套餐。 - Cloudflare 会扫描现有 DNS 记录,可以先继续,后续再单独添加 OTA 解析。
- 页面会显示两个 Nameserver。
- 确认你已经在域名注册商处改成这两个 Nameserver。
- 点击
Done, check nameservers。
等待 Cloudflare 中该域名状态变成Active。
3. 安装 cloudflared
以下命令适用于 x86_64 的 CentOS、RHEL、Fedora 等 RPM 系 Linux。
cd~wgethttps://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpmsudorpm-ivhcloudflared-linux-x86_64.rpm cloudflared--version如果能输出版本号,说明安装成功。
4. 登录 Cloudflare 账号
在 Linux 主机上执行:
cloudflared tunnel login命令会输出一个 URL。
- 复制 URL 到浏览器打开。
- 登录 Cloudflare。
- 选择你要绑定的域名。
- 授权
cloudflared。
授权成功后,服务器上会生成证书文件:
/root/.cloudflared/cert.pem如果你不是用 root 用户执行,请检查当前用户的~/.cloudflared/cert.pem。