Cloudflare 反向代理
1. 概述
Cloudflare Tunnel 可通过域名发布 PicoKVM 或兼容 PLC 的本地 Web 管理界面,不需要在本地路由器上开放入站端口。PicoKVM 和 PLC 内置 cloudflared;填入 Tunnel Token 后,设备上的服务会主动连接 Cloudflare 并建立隧道。
本文使用以下占位符:
| 项目 | 示例 |
|---|---|
| 域名 | <DOMAIN> |
| 公网访问域名 | device.<DOMAIN> |
| 设备本地服务地址 | http://127.0.0.1:80 |
仅使用本文方法发布本人或已获授权管理的设备界面,并在共享公网访问域名前配置访问控制。不要将该方法用于未授权访问、绕过网络管理、代理第三方公开服务或其他违法违规用途。
2. 准备域名
Cloudflare Tunnel 只要求域名由当前 Cloudflare 账号管理,对域名的注册平台没有额外限制。可以使用支持自定义 NS 服务器的免费域名,也可以在 Cloudflare Registrar、NameSilo 或其他域名注册商购买域名。
使用免费域名时,需要确认自己拥有该域名的 DNS 管理权限,并且可以修改 NS 服务器。仅提供子域名但不允许修改 NS 服务器的免费服务,通常无法按本文方式添加到 Cloudflare。
如果域名不是在 Cloudflare 注册,按以下步骤将其托管到 Cloudflare DNS:
-
登录 Cloudflare 控制台。

-
点击 "Add a domain",输入
<DOMAIN>。
-
按向导添加域名和 DNS 记录。


-
回到域名提供商的控制台,将域名的 NS 服务器修改为 Cloudflare 分配的服务器。



-
等待 Cloudflare 中的域名状态变为可用。


3. 创建 Cloudflare Tunnel
-
打开 Cloudflare 控制台,进入 "Networking" > "Tunnels"。

-
点击 "Create a tunnel",输入隧道名称,例如
remote-device。
-
在连接器设置页面选择 Debian 选项,使页面显示连接器命令。设备已经内置
cloudflared,不需要手动执行该命令。
-
复制命令中
--token后面的字符串,将其粘贴到 PicoKVM 或 PLC 的 Cloudflare Tunnel Token 配置项中,然后启动设备内置的cloudflared服务。

-
连接器启动后,Cloudflare 控制台中应显示隧道已连接。


4. 添加公网域名
-
打开刚创建的 Tunnel,进入 "Routes"。

-
点击 "Add route",选择 "Published application"。

-
按下表填写:
字段 值 Subdomain deviceDomain <DOMAIN>Type HTTPURL 127.0.0.1:80
-
保存配置。
保存后,Cloudflare 会自动创建对应的代理 DNS 记录。外部访问地址为:
https://device.<DOMAIN>
5. 验证远程访问
-
在目标设备局域网外的设备上打开:
https://device.<DOMAIN> -
登录目标设备的 Web 管理界面。

如果无法打开页面,按以下项目检查:
- PicoKVM 或 PLC 内置的
cloudflared服务是否已经启动,以及 Tunnel Token 是否正确。 - Cloudflare Tunnel 连接器是否在线。
- Published application route 是否使用
HTTP,并指向127.0.0.1:80。 - 设备本地的 Web 管理服务是否正在监听
80端口。 - Cloudflare 中域名状态是否已生效。