v1.3.4
Go 主控(全平台闭环)& Web 远程桌面/终端 & 合规与反滥用
历时约 10 天,跨 34 次提交。核心交付一个轻量 Go 主控作为 MFC 主控的补充形态——为不便跑 Windows VPS 的用户提供原生 Linux/macOS 主控落点,至此客户端 + 服务端在 Windows / Linux / macOS 上全部打通。同时大幅强化 Web 远程桌面/终端体验,并把授权签名抽象成 Signer 接口,作为分布式多节点拓扑的技术尝试。
Go 主控(全平台闭环,新增)
定位是”功能简单、聚焦于远程桌面 + 远程终端 + 多用户”的轻量服务端,不替代 MFC 主控。两种主控共用同一套客户端,可混搭部署。
- 单二进制内嵌
server/web/资源,开箱即用 - 屏幕帧端到端转发:H.264 流通过 WebSocket 直发浏览器,WebCodecs 硬解;客户端 graceful BYE 关闭
- 鼠标 / 键盘输入 + 多用户体系:
users.json持久化、管理员/普通用户分级、按设备组授权 - Web 远程终端转发:xterm.js + PTY 模式 + graceful close
- 设备列表稳定排序;客户端下线主动通知浏览器(
device_offline),网页不再卡死 - 安全:登录限流(IP + 用户名双维度)+ WebSocket Origin 白名单 + REST Bearer 鉴权
Go 多节点授权拓扑(新增)
Signer接口 + Local/Remote/NoOp 三种实现,把签发逻辑从主 HMAC 密钥解耦- License Server HTTP:
/license/sign+/license/heartbeat,JWT RS256 签名,24 小时本地缓存兜底 - 下游节点跑
RemoteSigner永远不接触主 HMAC 密钥——作为家庭实验 / 跨实例分布式拓扑的技术尝试
主控 / Web UI
- 在线主机列表新增实时缩略图列;双击可弹出循环快照预览小窗
- Web 远程终端:xterm.js + 移动端 UX 打磨(iOS safe-area、图标化工具栏、登出确认)
- 触控模式视觉光标跟随远端
IDC_*状态;触控板光标对齐到 SVG 箭头尖 - 无 GUI 主机也可直接打开终端
- HTML 从 C++ 内嵌字符串抽离到
server/web/index.html,前端可独立开发调试
合规与反滥用
- 反代理 RTT 检测 + 分级使用策略 + 免责声明
- 检测点从授权流程迁到
KernelManager心跳路径,减小误判面
改进
- AVX2 运行时探测 + x264 可选编译:旧 CPU 不再启动即崩溃
scheduler.h补齐,覆盖全部任务类型- Web 管理员密码独立环境变量
YAMA_WEB_ADMIN_PASS,与主授权密码解耦
Bug 修复
- 客户端 TCP 心跳硬化对抗半死连接(对端崩了但本地 OS 还认为连接存活)
- Web 退出远程桌面全屏后设备列表点击无效
- Web 远程桌面 OEM 非 shifted 符号映射、IME 多字符 commit 丢字
- 缩略图列在焦点失去时选中背景不一致
.RC文件不使用绝对资源路径
升级提示
- MFC 主控(
YAMA.exe)仍是主推方案:日常运维(文件管理、媒体采集、注册表、品牌定制)继续使用它;Go 主控仅聚焦”远程桌面 + 终端 + 多用户”。 - Go 主控部署:参见 Go 服务端部署指南。
- 多节点授权部署:下游节点跑
RemoteSigner调用根节点 License Server,永远拿不到主 HMAC 密钥;详见server/go/licensing/。