---
title: 作为远程客户端
description: 不部署本机 Runtime，用 Android 手机连接其他机器上的 AzurPilot 实例：配对、切换、撤销与断线处理。
updated: 2026-10-20
---

# 作为远程客户端

这是 Android 版的第二种用法：**手机只做控制台**。游戏仍跑在家里的电脑或服务器上，手机通过配对凭据连接那个实例。

远程模式不会：

- 下载或启动本机 Runtime
- 要求 Shizuku / Root
- 修改本机的部署设置、自启动或权限引导

## <DocIcon name="scale" /> 与本地运行的区别

| 项 | 本地运行 | 远程客户端 |
| --- | --- | --- |
| Runtime | 必需 | 不需要 |
| 游戏进程 | 手机上 | 目标机器上 |
| 权限激活 | 必需 | 不需要 |
| 配置来源 | 本机 Runtime | 目标实例 |
| 断网影响 | 本机任务继续 | 控制中断，远端任务继续 |

::: tip 远端任务不会因为手机断线而停止
手机只是客户端。关掉 App、断网、甚至卸载，远端实例仍按自己的调度运行。
:::

## <DocIcon name="clipboard" /> 准备工作

在目标机器上：

1. 打开 WebUI → 设置 → 远程访问。
2. 选择 `cloudflare` 模式，设置 WebUI 密码，开启远程访问并重启。
3. 等待状态变为就绪（Tunnel 已注册）。
4. 点击「配对」，生成六位码与二维码。

::: warning 没有密码不能开 Tunnel
程序会拒绝在没有有效 WebUI 密码时启动 Quick Tunnel。先设密码。
:::

## <DocIcon name="handshake" /> 配对

<Steps>
<Step title="在手机端进入绑定">

可以从欢迎页、主页或本机部署页点击「连接远程 AP」。不需要先安装 Runtime。

</Step>
<Step title="扫码或输码">

- 扫码：识别 `azurpilot://pair?secret=<secret>` 二维码。
- 手动：输入六位验证码（保留前导零）。

两种方式共享同一次「领取」：一种成功后另一种不能重放。

</Step>
<Step title="保存凭据">

客户端用 Android Keystore AES-GCM 保存固定入口与独立凭据。凭据不写入日志。

</Step>
<Step title="连接">

客户端解析固定入口，以 WSS 调用 `auth.login`。认证完成后才对原生页面发布就绪状态。

</Step>
</Steps>

配对码有效期五分钟，过期后重新生成。重新生成会替换服务器上该设备尚未领取的码。

## <DocIcon name="monitor" /> 使用

连接成功后，原生控制台复用同一套仓库与主题订阅：

- 实例选择
- 总览与当前任务
- 配置编辑（写入远端实例）
- 日志与统计

界面与本地模式一致，区别只在数据来源。切换来源时会先等待编辑保存，关闭旧连接并清理缓存；返回本机模式会恢复本机监听地址。

## <DocIcon name="ban" /> 撤销与移除

| 操作 | 位置 | 效果 |
| --- | --- | --- |
| 撤销某个客户端 | 目标机器 → 远程访问 → 已授权的配对 | 该客户端下一次请求（含 15 秒心跳）即失效 |
| 移除本机入口 | 手机端「移除」 | 只删除本地保存的入口，**不撤销服务器授权** |

::: danger 只在手机上「移除」不等于解绑
服务器仍保留该客户端的授权。要真正断开，必须在目标机器上撤销。否则拿到旧凭据的人仍能连接。
:::

撤销单个客户端不会修改 WebUI 主密码，也不影响其他已配对设备。

## <DocIcon name="refresh" /> 断线与重连

| 现象 | 原因 | 处理 |
| --- | --- | --- |
| 固定入口 302 到 `/error` | 设备离线、租约过期或 Tunnel 失效 | 目标机器检查远程访问状态 |
| 一直转圈 | WebSocket 被网络阻断 | 换网络，确认 7844 端口可达 |
| `UNAUTHORIZED` | 配对被撤销 | 重新配对 |
| 连接后很快断开 | 心跳超时 | 检查目标机器负载与网络 |
| 手机切后台后断开 | 系统限制后台网络 | 允许后台运行，或回到前台重连 |

Quick Tunnel 每 60 秒续约，异常退出后服务端租约 180 秒失效。目标机器重新上线后会获得新的 `*.trycloudflare.com` 地址，但固定入口 `<registry>/d/<device_id>/` 不变。

## <DocIcon name="refresh" /> 本机与远程来回切换

- 切到远程：不停止本机 Runtime，但控制面指向远端。
- 切回本机：恢复原监听地址，本机实例状态重新订阅。
- 本机的 PRoot、悬浮窗与设备控制链不随远程网关改址。
- 远程部署设置不会同步到本机偏好。

## <DocIcon name="shield" /> 安全建议

1. 目标机器的 WebUI 密码要强，且不要与游戏账号相同。
2. 不用的配对及时撤销。
3. 二维码等同于一次性凭据，不要截图外发。
4. Quick Tunnel 适合临时使用，长期暴露请评估风险。
5. 手机丢失时，在目标机器撤销该客户端即可，不必改主密码。
