项目架构
本项目作为系统编程练手,把 License、Master、Client 拆成多节点结构,支持单机部署也支持分布式拓扑。
Web Browser
PC / Tablet / Mobile
↓ WebSocket
License Server
ECDSA / HMAC
Root auth / Offline
MFC Master (C++)
Windows · All features
Built-in Web server
Go Master
Win / Linux / macOS
Desktop + Terminal
↓ ↓
◄──────────────────────────────► ↘ HMAC / sub-client auth ↙
↓
Client(受控端)
Windows / Linux / macOS / Android
可选:多节点授权拓扑 — 根节点 License Server 通过 HTTPS 向下游 Go Master (RemoteSigner) 签发 JWT (RS256);下游节点永远拿不到主 HMAC 密钥;24h 本地缓存兜底网络抖动。
两种主控形态
v1.3.4 起,主控端补齐 Linux/macOS 形态,作为 MFC 主控的补充而非替代。两种主控共用同一套客户端,可混搭部署。
| 形态 | 平台 | 功能覆盖 | 适用场景 |
|---|---|---|---|
MFC 主控 (YAMA.exe) | Windows | ✅ 全部功能(含文件管理 / 媒体采集 / 注册表 / 品牌定制) | 日常运维、主推方案 |
| Go 主控(v1.3.4 新增) | Win / Linux / macOS | 远程桌面 + 远程终端 + 多用户分级 | 零 Windows 依赖的纯 Linux/macOS 主控部署 |
三种校验模式
| 模式 | 校验方式 | 鉴权版本 | 技术特点 |
|---|---|---|---|
| 默认配置(开源版) | 在线校验 | V1 | 20 连接 / 2 年;可作为开箱即用的本地测试配置 |
| HMAC 模式 | HMAC + 在线校验 | V1 | 启动时一次性校验;适合自部署、独立 Master 节点 |
| ECDSA 模式 | ECDSA P-256 离线签名 | V2 | 完全离线校验;支持多 Master 拓扑,作为分布式部署的技术尝试 |
技术看点
- 双校验模式:HMAC 适合在线场景;ECDSA 把校验逻辑下放到客户端,减少对 License Server 的依赖;
- 节点隔离:不同 Master 节点的数据、客户端互相不可见,便于做家庭实验或多用户环境隔离;
- 水平扩展:单 Master 节点可承载较大数量的客户端长连接;架构上可堆叠多节点;
- 离线友好:ECDSA 模式下 Master 与 License Server 可长期断网运行;
- 全平台闭环(v1.3.4):Go 主控补齐 Linux/macOS 服务端形态,与 MFC 主控共享同一套客户端,可同时挂在同一批设备群之上;
- 密钥隔离的多节点拓扑(v1.3.4):Go 主控
RemoteSigner模式下,每次新设备登录通过 HTTPS 向根节点的 License Server 拉签名,下游节点内存里永远不出现主 HMAC 密钥——作为分布式授权机制的技术尝试; - Android 受控端(v1.3.7):MediaProjection + MediaCodec H.264 推流,AccessibilityService 触控 / 按键注入;与 Windows / Linux / macOS 客户端共享同一套服务端协议,无需改动主控即可纳管安卓设备;APK 通过 BuildDlg binary patch 生成,不依赖 Android 构建环境。
- SYSTEM 权限客户端(v1.3.8):客户端以 SYSTEM 最高权限运行,突破桌面交互隔离(跨会话 DLL 注入),锁屏界面 / 无用户会话场景全覆盖;双模式(SYSTEM / 用户态)自动适配,主控端「权限」列一眼识别受控端权限上下文。
- MCP 服务端集成(v1.3.9):主控内置 MCP(Model Context Protocol)服务端(JSON-RPC 2.0 / Bearer Token,本地 127.0.0.1:6544),把远程管理能力封装成 23 个工具喂给本地大模型;复用现有 V2 文件传输与屏幕操控协议链路,形成「观测 → 执行 → 控制 → 传输」闭环。
- 实验功能与远程交互增强(v1.4.0):将 SimplePlugins 的文件管理 / 隐私屏幕 / 远程画板原生迁入客户端(「实验功能」子菜单),补齐远程交谈、TCP/UDP 连接管理与主机管理;MCP 服务端扩展出设备管理控制工具,并带来德语支持与语言切换。
- Web 运维控制台与传输安全(v1.4.1):MFC 与 Go 主控支持多设备屏幕墙(watch 集合 + 关键帧缓存回放)、安全审计日志与查询页、离线设备历史;设备端口在同一端口嗅探 TLS ClientHello,客户端以 Schannel + 严格信任锚接入;并加入每 IP 限流、入站缓冲上限、子连接源 IP 绑定与 ConnAuth HMAC 校验。
- MCP 工具集扩展(v1.4.2):MCP 服务端由 27 个扩展到 60 个工具——新增连接管理与主机管理(进程 / 窗口 / 网络状态 / 软件 / 浏览记录 / 收藏夹 / 服务 / 计划任务 / HOSTS 及其写操作)、远程交谈、键盘记录、文件搜索、服务端状态、文件系统写入(delete_path / move_path / create_folder,独立开关 + 系统目录保护 + 执行后复核)、主机间直传(源主机自己发、目标主机自己收,服务端只中继不落盘)、键鼠锁定与会话排障(列出并取消在飞调用);为全部工具补上「只读 / 破坏性 / 幂等 / 开放世界」注解,并加入 initialize 说明、能力上报、取消与进度、dry-run 预演。查询侧加入离线主机记录、50 台批量读取、分页与过滤。失败不再一律超时:客户端新增 4 个结构化失败 token,把「目标不存在 / 权限不足」转成
-32009/-32010亚秒返回;工具放弃后迟到的首包由服务端吸收,调用 MCP 不再在主控弹出对话框。端点自身开始内置 HTTPS(同端口首字节嗅探、RSA / ECDSA、fail-closed),并加了请求体上限、Bearer 失败限流与审计落盘。 - WebSocket 传输与远程协议切换(v1.4.2):新增
PROTO_WS(5) /PROTO_WSS(6),客户端把应用字节流套进 WS 帧,服务端在设备端口明文 / TLS 之外增加第三个嗅探分支,于是只有 80 / 443 被放行的网络也能上线;在线列表右键可按入口下发COMMAND_SET_PROTO,让已在线客户端在直连 TCP / WS / WSS 之间切换(WSS 随包下发反代信任锚,5 分钟未成功登录自动回退)。反代后的每 IP 限流改为按升级时解析的真实设备 IP 计数。 - 抓屏健壮性与 Web 渲染(v1.4.2):旋转显示器按真实纹理描述分配并直立图像;DXGI 在不推送复制通知的驱动、无头显示与 Session 0 上取不到首帧时整段会话回退 GDI;工作站锁定与断开会话在建采集器前就选 GDI,避免初始化卡死。Web 端画布改为固定铺满容器、每帧用
ctx.setTransform绘制(消除 iOS 的幽灵竖线),光标覆盖层与画布共用包含块并按画布局部坐标定位(修正竖屏输入法打开时的指针错位)。
本页是作者个人开源项目的技术说明,不构成商业产品的功能承诺,也不附带任何 SLA。