作为远程客户端
这是 Android 版的第二种用法:手机只做控制台。游戏仍跑在家里的电脑或服务器上,手机通过配对凭据连接那个实例。
远程模式不会:
- 下载或启动本机 Runtime
- 要求 Shizuku / Root
- 修改本机的部署设置、自启动或权限引导
与本地运行的区别
| 项 | 本地运行 | 远程客户端 |
|---|---|---|
| Runtime | 必需 | 不需要 |
| 游戏进程 | 手机上 | 目标机器上 |
| 权限激活 | 必需 | 不需要 |
| 配置来源 | 本机 Runtime | 目标实例 |
| 断网影响 | 本机任务继续 | 控制中断,远端任务继续 |
远端任务不会因为手机断线而停止
手机只是客户端。关掉 App、断网、甚至卸载,远端实例仍按自己的调度运行。
准备工作
在目标机器上:
- 打开 WebUI → 设置 → 远程访问。
- 选择
cloudflare模式,设置 WebUI 密码,开启远程访问并重启。 - 等待状态变为就绪(Tunnel 已注册)。
- 点击「配对」,生成六位码与二维码。
没有密码不能开 Tunnel
程序会拒绝在没有有效 WebUI 密码时启动 Quick Tunnel。先设密码。
配对
01
在手机端进入绑定
可以从欢迎页、主页或本机部署页点击「连接远程 AP」。不需要先安装 Runtime。
01
扫码或输码
- 扫码:识别
azurpilot://pair?secret=<secret>二维码。 - 手动:输入六位验证码(保留前导零)。
两种方式共享同一次「领取」:一种成功后另一种不能重放。
01
保存凭据
客户端用 Android Keystore AES-GCM 保存固定入口与独立凭据。凭据不写入日志。
01
连接
客户端解析固定入口,以 WSS 调用 auth.login。认证完成后才对原生页面发布就绪状态。
配对码有效期五分钟,过期后重新生成。重新生成会替换服务器上该设备尚未领取的码。
使用
连接成功后,原生控制台复用同一套仓库与主题订阅:
- 实例选择
- 总览与当前任务
- 配置编辑(写入远端实例)
- 日志与统计
界面与本地模式一致,区别只在数据来源。切换来源时会先等待编辑保存,关闭旧连接并清理缓存;返回本机模式会恢复本机监听地址。
撤销与移除
| 操作 | 位置 | 效果 |
|---|---|---|
| 撤销某个客户端 | 目标机器 → 远程访问 → 已授权的配对 | 该客户端下一次请求(含 15 秒心跳)即失效 |
| 移除本机入口 | 手机端「移除」 | 只删除本地保存的入口,不撤销服务器授权 |
只在手机上「移除」不等于解绑
服务器仍保留该客户端的授权。要真正断开,必须在目标机器上撤销。否则拿到旧凭据的人仍能连接。
撤销单个客户端不会修改 WebUI 主密码,也不影响其他已配对设备。
断线与重连
| 现象 | 原因 | 处理 |
|---|---|---|
固定入口 302 到 /error | 设备离线、租约过期或 Tunnel 失效 | 目标机器检查远程访问状态 |
| 一直转圈 | WebSocket 被网络阻断 | 换网络,确认 7844 端口可达 |
UNAUTHORIZED | 配对被撤销 | 重新配对 |
| 连接后很快断开 | 心跳超时 | 检查目标机器负载与网络 |
| 手机切后台后断开 | 系统限制后台网络 | 允许后台运行,或回到前台重连 |
Quick Tunnel 每 60 秒续约,异常退出后服务端租约 180 秒失效。目标机器重新上线后会获得新的 *.trycloudflare.com 地址,但固定入口 <registry>/d/<device_id>/ 不变。
本机与远程来回切换
- 切到远程:不停止本机 Runtime,但控制面指向远端。
- 切回本机:恢复原监听地址,本机实例状态重新订阅。
- 本机的 PRoot、悬浮窗与设备控制链不随远程网关改址。
- 远程部署设置不会同步到本机偏好。
安全建议
- 目标机器的 WebUI 密码要强,且不要与游戏账号相同。
- 不用的配对及时撤销。
- 二维码等同于一次性凭据,不要截图外发。
- Quick Tunnel 适合临时使用,长期暴露请评估风险。
- 手机丢失时,在目标机器撤销该客户端即可,不必改主密码。