Release v1.3.4
This commit is contained in:
773
ReadMe.md
773
ReadMe.md
@@ -12,9 +12,9 @@
|
||||
<a href="https://github.com/yuanyuanxiang/SimpleRemoter/releases">
|
||||
<img src="https://img.shields.io/github/v/release/yuanyuanxiang/SimpleRemoter?style=flat-square" alt="GitHub Release">
|
||||
</a>
|
||||
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-blue?style=flat-square" alt="Platform">
|
||||
<img src="https://img.shields.io/badge/language-C%2B%2B17-orange?style=flat-square&logo=cplusplus" alt="Language">
|
||||
<img src="https://img.shields.io/badge/IDE-VS2019%2B-purple?style=flat-square&logo=visualstudio" alt="IDE">
|
||||
<img src="https://img.shields.io/badge/client-Windows%20%7C%20Linux%20%7C%20macOS-blue?style=flat-square" alt="Client Platforms">
|
||||
<img src="https://img.shields.io/badge/server-Windows%20%7C%20Linux%20%7C%20macOS-success?style=flat-square" alt="Server Platforms">
|
||||
<img src="https://img.shields.io/badge/language-C%2B%2B17%20%2F%20Go-orange?style=flat-square&logo=cplusplus" alt="Language">
|
||||
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License">
|
||||
</p>
|
||||
|
||||
@@ -29,10 +29,7 @@
|
||||
> [!WARNING]
|
||||
> **重要法律声明**
|
||||
>
|
||||
> 本软件**仅供教育目的及授权使用场景**,包括:
|
||||
> - 在您的组织内进行远程 IT 管理
|
||||
> - 经授权的渗透测试和安全研究
|
||||
> - 个人设备管理和技术学习
|
||||
> 本软件**仅供教育目的及授权使用场景**:组织内远程 IT 管理、经授权的渗透测试与安全研究、个人设备管理与技术学习。
|
||||
>
|
||||
> **未经授权访问计算机系统属违法行为。** 使用者须对遵守所有适用法律承担全部责任。开发者对任何滥用行为概不负责。
|
||||
|
||||
@@ -41,13 +38,13 @@
|
||||
## 目录
|
||||
|
||||
- [项目简介](#项目简介)
|
||||
- [免责声明](#免责声明)
|
||||
- [本版本亮点:全平台闭环](#本版本亮点全平台闭环)
|
||||
- [合规与反滥用](#合规与反滥用)
|
||||
- [功能特性](#功能特性)
|
||||
- [技术亮点](#技术亮点)
|
||||
- [全平台支持](#全平台支持)
|
||||
- [系统架构](#系统架构)
|
||||
- [快速开始](#快速开始)
|
||||
- [用户文档](#用户文档)
|
||||
- [客户端支持](#客户端支持)
|
||||
- [更新日志](#更新日志)
|
||||
- [相关项目](#相关项目)
|
||||
- [联系方式](#联系方式)
|
||||
@@ -56,25 +53,9 @@
|
||||
|
||||
## 项目简介
|
||||
|
||||
**SimpleRemoter** 是一个功能完整的远程控制解决方案,基于经典的 Gh0st 框架重构,采用现代 C++17 开发。项目始于 2019 年,经过持续迭代已发展为支持 **Windows + Linux + macOS** 三平台的企业级远程管理工具。
|
||||
**SimpleRemoter** 是一个端到端跨平台的远程控制解决方案。
|
||||
|
||||
### 核心能力
|
||||
|
||||
| 类别 | 功能 |
|
||||
|------|------|
|
||||
| **远程桌面** | 实时屏幕控制、多显示器支持、H.264 编码、自适应质量 |
|
||||
| **文件管理** | 双向传输、断点续传、C2C 传输、SHA-256 校验 |
|
||||
| **终端管理** | 交互式 Shell、ConPTY/PTY 支持、现代 Web 终端 |
|
||||
| **系统管理** | 进程/服务/窗口管理、注册表浏览、会话控制 |
|
||||
| **媒体采集** | 摄像头监控、音频监听、键盘记录 |
|
||||
| **网络功能** | SOCKS 代理、FRP 穿透、端口映射 |
|
||||
|
||||
### 适用场景
|
||||
|
||||
- **企业 IT 运维**:批量管理内网设备,远程故障排查
|
||||
- **远程办公**:安全访问办公电脑,文件同步传输
|
||||
- **安全研究**:渗透测试、红队演练、安全审计
|
||||
- **技术学习**:网络编程、IOCP 模型、加密传输实践
|
||||
项目核心基于经典 **Gh0st 架构**,最早始于 2019 年 1 月。历经 7 年持续迭代——从 IOCP 通信内核重构、x264 视频级编码、V2 文件传输协议、多层授权体系,到 Linux 与 macOS 客户端的引入——本版本最终完成**客户端 + 服务端的全平台闭环**:三大桌面操作系统(Windows / Linux / macOS)在任一侧都可作为受控端或主控端。
|
||||
|
||||
**原始来源:** [zibility/Remote](https://github.com/zibility/Remote) | **起始日期:** 2019.1.1
|
||||
|
||||
@@ -82,36 +63,73 @@
|
||||
|
||||
---
|
||||
|
||||
## 免责声明
|
||||
## 本版本亮点:全平台闭环
|
||||
|
||||
**请在使用本软件前仔细阅读以下声明:**
|
||||
本项目长期以 **C++ MFC 主控**(`YAMA.exe`)为核心交付形态——经典 Gh0st 架构、IOCP 高性能内核、完整的远程桌面 / 文件 / 进程 / 媒体功能栈、多层授权体系、品牌定制——**至今仍是主要使用的主控**。MFC 主控内置了基于 WebSocket 的 Web 远程桌面服务,从 v1.3.1 起就已经支持**任意平台的浏览器**远控被管设备(手机/平板/Linux/macOS 桌面均可)。
|
||||
|
||||
1. **合法用途**:本项目仅供合法的技术研究、学习交流和授权的远程管理使用。严禁将本软件用于未经授权访问他人计算机系统、窃取数据、监控他人隐私等任何违法行为。
|
||||
本版本(v1.3.4)补上了最后一块拼图——**Go 主控**:一个**功能简单、聚焦于"远程桌面 + 远程终端 + 多用户分级"** 的轻量服务端,跨 Windows / Linux / macOS 编译运行。它的定位**不是替代 MFC**,而是为那些**不便于跑 Windows VPS** 的用户提供一个原生的 Linux/macOS 主控落点——例如纯 Linux 服务器、ARM Mac 长驻、嵌入式主控箱等场景。
|
||||
|
||||
2. **使用者责任**:使用者必须遵守所在国家/地区的法律法规。因使用本软件而产生的任何法律责任,由使用者自行承担。
|
||||
### 两种主控形态如何选择
|
||||
|
||||
3. **无担保声明**:本软件按"现状"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性的担保。
|
||||
| 形态 | GUI | 功能覆盖 | 平台 | 定位 |
|
||||
|---|---|---|---|---|
|
||||
| **C++ MFC 主控** (`YAMA.exe`) | 原生 Windows GUI + 内置 Web 服务 | ✅ **全部功能** | Windows | **主推方案**。日常运维、文件管理、媒体采集、多层授权、品牌定制等都用它 |
|
||||
| **Go 主控**(新) | Web UI(任何浏览器) | 远程桌面 + 远程终端 + 多用户 | Windows / Linux / macOS | **补充方案**。需要"零 Windows 依赖"的纯 Linux/macOS 主控部署 |
|
||||
|
||||
4. **免责条款**:开发者不对因使用、误用或无法使用本软件而造成的任何直接、间接、偶然、特殊或后果性损害承担责任。
|
||||
> [!TIP]
|
||||
> 两种主控**用的是同一套客户端**——可以混搭,例如一台 Windows MFC 主控 + 一台 Linux Go 主控并行管理同一批设备群。
|
||||
|
||||
5. **版权声明**:本项目采用 MIT 协议开源,允许自由使用、修改和分发,但必须保留原始版权声明。
|
||||
### Go 主控的核心能力(v1.3.4 新增)
|
||||
|
||||
**继续使用本软件即表示您已阅读、理解并同意上述所有条款。**
|
||||
- **远程桌面**:H.264 流通过 WebSocket 直发浏览器,WebCodecs 硬解,1080P @ 20fps 流畅
|
||||
- **远程终端**:xterm.js + ConPTY/PTY,支持调整尺寸、Tab 补全
|
||||
- **多用户体系**:管理员 / 普通用户分级、Challenge-Response 登录、不透明 token、按设备组授权
|
||||
- **生产部署**:Nginx 反代 + Let's Encrypt + Keyboard Lock + 全屏控制、防止 ESC / F11 误退出
|
||||
- **故意保持轻量**:不包含文件管理、媒体采集、注册表、服务管理等 MFC 主控专属功能——这些请走 MFC 主控
|
||||
|
||||
### 全平台支持矩阵
|
||||
|
||||
| | **客户端 (受控端)** | **主控端** |
|
||||
|---|---|---|
|
||||
| **Windows** | ✅ 完整功能 | ✅ MFC `YAMA.exe`(推荐)/ Go |
|
||||
| **Linux** (X11) | ✅ 屏幕 + 终端 + 文件 + 剪贴板 | ✅ Go |
|
||||
| **macOS** (Intel + Apple Silicon) | ✅ 屏幕 + 终端 + 文件 + 剪贴板 | ✅ Go |
|
||||
|
||||
---
|
||||
|
||||
## 合规与反滥用
|
||||
|
||||
本项目长期坚持「明确的合规姿态」立场。本版本进一步收紧反滥用边界。
|
||||
|
||||
### 内置技术措施
|
||||
|
||||
源代码层面构筑多道独立可验证的反滥用屏障,详见 [反滥用技术措施清单](./docs/Compliance_TechnicalMeasures.md):
|
||||
|
||||
- **入站连接 IP 段校验**:试用版若被部署到公网会触发可见告警 latch
|
||||
- **监听端口上限**:试用版限制 ≤ 2 个监听端口,防多租户中转改造
|
||||
- **应用层 RTT 反代理**:LAN 内 RTT 阈值检测,反向代理 / 隧道会被识别
|
||||
- **多层授权架构**:V2 ECDSA 离线 + V1 在线 + 试用版分级,每一层限制独立
|
||||
- **Web 主控认证**:强制 Challenge-Response 登录、登录限流、不透明 token、操作可审计
|
||||
|
||||
### 合规文档
|
||||
|
||||
| 文档 | 内容 |
|
||||
|---|---|
|
||||
| 📖 [反滥用与合规使用政策](./docs/Compliance_AntiAbuse.md) | 完整的发行方-使用方责任划分 |
|
||||
| 📖 [反滥用技术措施清单](./docs/Compliance_TechnicalMeasures.md) | 每一道屏障的源代码位置、设计动机、已知局限 |
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **网络连接与隐私声明**
|
||||
>
|
||||
> 主控程序(服务端)会根据授权状态与授权服务器进行网络通信:
|
||||
>
|
||||
> | 版本类型 | 连接行为 |
|
||||
> |---------|---------|
|
||||
> | 试用版本 | 维持与授权服务器的持续连接 |
|
||||
> | V1/V2 授权版本 | 启动时连接验证,通过后断开 |
|
||||
> | V2 离线授权版本 | 无需连接授权服务器 |
|
||||
>
|
||||
> 除获得离线授权外,主控程序会与授权服务器进行必要的数据交互(如检测破解行为、验证授权有效性)。
|
||||
>
|
||||
> **使用本软件即表示您接受主控程序与授权服务器之间的数据传输。如您不同意,请勿使用本软件。**
|
||||
> **使用本软件即视为您已阅读、理解并接受上述合规文档全部条款。** 如您不能或不愿接受任一条款,请立即停止使用并销毁本软件副本。
|
||||
|
||||
### 网络连接与隐私
|
||||
|
||||
| 版本类型 | 连接行为 |
|
||||
|---|---|
|
||||
| 试用版本 | 维持与授权服务器的持续连接 |
|
||||
| V1/V2 授权版本 | 启动时连接验证,通过后断开 |
|
||||
| V2 离线授权版本 | 无需连接授权服务器 |
|
||||
|
||||
除获得离线授权外,主控程序会与授权服务器进行必要的数据交互(如检测破解行为、验证授权有效性)。
|
||||
|
||||
---
|
||||
|
||||
@@ -121,240 +139,149 @@
|
||||
|
||||

|
||||
|
||||
- **多种截图方式**:GDI(兼容性强)、DXGI(高性能)、虚拟桌面(后台运行)
|
||||
- **智能压缩算法**:
|
||||
- DIFF 差分算法 - SSE2 优化,仅传输变化区域
|
||||
- RGB565 算法 - 节省 50% 带宽
|
||||
- H.264 编码 - 视频级压缩,适合高帧率场景
|
||||
- 灰度模式 - 极低带宽消耗
|
||||
- **自适应质量**:根据网络 RTT 自动调整帧率(5-30 FPS)、分辨率和压缩算法
|
||||
- **多显示器**:支持多屏切换和多屏上墙显示
|
||||
- **隐私屏幕**:被控端屏幕可隐藏,支持锁屏状态下控制
|
||||
- **文件拖拽**:Ctrl+C/V 跨设备复制粘贴文件
|
||||
- **Web 远程桌面**:通过浏览器访问远程桌面,支持手机/平板([配置指南](./docs/WebHTTPS.md))
|
||||
- **多种屏幕捕获**:GDI / DXGI / 虚拟桌面(Windows)、X11 + XShm(Linux)、CGDisplayStream(macOS)
|
||||
- **智能压缩**:DIFF 差分(SSE2 优化)/ RGB565(节省 50% 带宽)/ **H.264**(视频级压缩,x264 + VideoToolbox + WebCodecs)/ 灰度模式
|
||||
- **自适应质量**:根据 RTT 自动调节帧率(5-30 FPS)、分辨率、压缩算法
|
||||
- **多显示器**:多屏切换 + 多屏上墙
|
||||
- **跨设备文件拖拽**:Ctrl+C/V 跨设备复制粘贴文件
|
||||
- **Web 远程桌面**:浏览器直接访问,手机/平板可用([配置指南](./docs/WebHTTPS.md))
|
||||
|
||||

|
||||
|
||||
### 文件管理
|
||||
|
||||

|
||||
|
||||
- **V2 传输协议**:全新设计,支持大文件(>4GB)
|
||||
- **断点续传**:网络中断后自动恢复,状态持久化
|
||||
- **V2 传输协议**:支持 >4GB 大文件、断点续传、SHA-256 校验
|
||||
- **C2C 传输**:客户端之间直接传输,无需经过主控
|
||||
- **完整性校验**:SHA-256 哈希验证,确保文件完整
|
||||
- **批量操作**:支持文件搜索、压缩、批量传输
|
||||
- **批量操作**:搜索、压缩、批量传输
|
||||
|
||||
### 终端管理
|
||||
|
||||

|
||||

|
||||
|
||||
- **交互式 Shell**:完整的命令行体验,支持 Tab 补全
|
||||
- **ConPTY 技术**:Windows 10+ 原生伪终端支持
|
||||
- **现代 Web 终端**:基于 WebView2 + xterm.js(v1.2.7+)
|
||||
- **终端尺寸调整**:自适应窗口大小
|
||||
|
||||
### 进程与窗口管理
|
||||
|
||||
| 进程管理 | 窗口管理 |
|
||||
|---------|---------|
|
||||
|  |  |
|
||||
|
||||
- **进程管理**:查看进程列表、CPU/内存占用、启动/终止进程
|
||||
- **代码注入**:向目标进程注入 DLL(需管理员权限)
|
||||
- **窗口控制**:最大化/最小化/隐藏/关闭窗口
|
||||
|
||||
### 媒体功能
|
||||
|
||||
| 视频管理 | 语音管理 |
|
||||
|---------|---------|
|
||||
|  |  |
|
||||
|
||||
- **摄像头监控**:实时视频流,支持分辨率调整
|
||||
- **音频监听**:远程声音采集,支持双向语音
|
||||
- **键盘记录**:在线/离线记录模式
|
||||
- **交互式 Shell**:Tab 补全、ANSI 转义、调整尺寸
|
||||
- **现代终端**:Windows ConPTY、Linux/macOS PTY
|
||||
- **Web 终端**:xterm.js + WebSocket,跟原生体验一致
|
||||
|
||||
### 其他功能
|
||||
|
||||
- **服务管理**:查看和控制 Windows 服务
|
||||
- **注册表浏览**:只读方式浏览注册表内容
|
||||
- **会话控制**:远程注销/关机/重启
|
||||
- **SOCKS 代理**:通过客户端建立代理隧道
|
||||
- **FRP 穿透**:内置 FRP 支持,轻松穿透内网
|
||||
- **代码执行**:远程执行 DLL,支持热更新
|
||||
| 模块 | 能力 |
|
||||
|---|---|
|
||||
| **进程管理** | 进程列表、CPU/内存占用、终止、DLL 注入 |
|
||||
| **窗口管理** | 最大化/最小化/隐藏/关闭 |
|
||||
| **媒体采集** | 摄像头、双向语音、键盘记录 |
|
||||
| **系统控制** | 服务管理、注册表、会话注销/关机 |
|
||||
| **网络功能** | SOCKS 代理、FRP 穿透、端口映射 |
|
||||
| **代码执行** | 远程执行 DLL、内存加载、热更新 |
|
||||
|
||||
---
|
||||
|
||||
## 技术亮点
|
||||
## 全平台支持
|
||||
|
||||
### 高性能网络架构
|
||||
### Windows 客户端
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ IOCP 通信模型 │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ • I/O 完成端口:Windows 最高效的异步 I/O 模型 │
|
||||
│ • 单主控支持 10,000+ 并发连接 │
|
||||
│ • 支持 TCP / UDP / KCP 三种传输协议 │
|
||||
│ • 自动分块处理大数据包(最大 128KB 发送缓冲) │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
**系统要求**:Windows 7 SP1 及以上
|
||||
**功能完整性**:✅ 全部功能支持
|
||||
|
||||
### 自适应质量控制
|
||||
### Linux 客户端(v1.2.5+)
|
||||
|
||||
基于 RTT(Round-Trip Time)的智能质量调整系统:
|
||||
**系统要求**:
|
||||
- 显示服务器:X11/Xorg(暂不支持 Wayland)
|
||||
- 必需库:libX11;推荐库:libXtst(XTest 扩展)、libXss(空闲检测)
|
||||
|
||||
| RTT 延迟 | 质量等级 | 帧率 | 分辨率 | 压缩算法 | 适用场景 |
|
||||
|---------|---------|------|--------|---------|---------|
|
||||
| < 30ms | Ultra | 25 FPS | 原始 | DIFF | 局域网办公 |
|
||||
| 30-80ms | High | 20 FPS | 原始 | RGB565 | 一般办公 |
|
||||
| 80-150ms | Good | 20 FPS | ≤1080p | H.264 | 跨网/视频 |
|
||||
| 150-250ms | Medium | 15 FPS | ≤900p | H.264 | 跨网办公 |
|
||||
| 250-400ms | Low | 12 FPS | ≤720p | H.264 | 较差网络 |
|
||||
| > 400ms | Minimal | 8 FPS | ≤540p | H.264 | 极差网络 |
|
||||
| 功能 | 状态 | 实现 |
|
||||
|---|---|---|
|
||||
| 远程桌面 | ✅ | X11 屏幕捕获 + libx264 H.264 硬件编码 |
|
||||
| 远程终端 | ✅ | PTY 交互式 Shell |
|
||||
| 文件管理 | ✅ | V2 协议、双向传输、大文件 |
|
||||
| 进程管理 | ✅ | 列表 + 终止 |
|
||||
| 剪贴板同步 | ✅ | xclip / xsel 外部工具,支持文件 URI |
|
||||
| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
|
||||
| 守护进程 | ✅ | 双 fork 守护化 |
|
||||
|
||||
- **零额外开销**:复用心跳包计算 RTT
|
||||
- **快速降级**:2 次检测即触发,响应网络波动
|
||||
- **谨慎升级**:5 次稳定后才提升质量
|
||||
- **冷却机制**:防止频繁切换
|
||||
**编译**:`cd linux && cmake . && make`
|
||||
|
||||
### V2 文件传输协议
|
||||
### macOS 客户端(v1.3.2+)
|
||||
|
||||
```cpp
|
||||
// 77 字节协议头 + 文件名 + 数据载荷
|
||||
struct FileChunkPacketV2 {
|
||||
uint8_t cmd; // COMMAND_SEND_FILE_V2 = 85
|
||||
uint64_t transferID; // 传输会话 ID
|
||||
uint64_t srcClientID; // 源客户端 ID (0=主控端)
|
||||
uint64_t dstClientID; // 目标客户端 ID (0=主控端, C2C)
|
||||
uint32_t fileIndex; // 文件编号 (0-based)
|
||||
uint32_t totalFiles; // 总文件数
|
||||
uint64_t fileSize; // 文件大小(支持 >4GB)
|
||||
uint64_t offset; // 当前块偏移
|
||||
uint64_t dataLength; // 本块数据长度
|
||||
uint64_t nameLength; // 文件名长度
|
||||
uint16_t flags; // 标志位 (FFV2_LAST_CHUNK 等)
|
||||
uint16_t checksum; // CRC16 校验(可选)
|
||||
uint8_t reserved[8]; // 预留扩展
|
||||
// char filename[nameLength]; // UTF-8 相对路径
|
||||
// uint8_t data[dataLength]; // 文件数据
|
||||
};
|
||||
```
|
||||
**系统要求**:
|
||||
- macOS 10.15 (Catalina) 及以上
|
||||
- 架构:Intel (x64) 和 Apple Silicon (arm64) 通用二进制
|
||||
- 系统权限:屏幕录制、辅助功能、完全磁盘访问
|
||||
|
||||
**特性**:
|
||||
- 大文件支持(uint64_t 突破 4GB 限制)
|
||||
- 断点续传(状态持久化到 `%TEMP%\FileTransfer\`)
|
||||
- SHA-256 完整性校验
|
||||
- C2C 直传(客户端到客户端)
|
||||
- V1/V2 协议兼容
|
||||
| 功能 | 状态 | 实现 |
|
||||
|---|---|---|
|
||||
| 远程桌面 | ✅ | CGDisplayStream + VideoToolbox H.264 硬件编码 |
|
||||
| 键鼠控制 | ✅ | CGEvent,支持双击、拖拽 |
|
||||
| 远程终端 | ✅ | PTY 交互式 Shell(zsh/bash) |
|
||||
| 文件管理 | ✅ | V2 协议、大文件 |
|
||||
| 进程管理 | ✅ | proc_listpids + 终止 |
|
||||
| 剪贴板同步 | ✅ | NSPasteboard,支持文件 URL + NSFilenamesPboardType |
|
||||
| 守护模式 | ✅ | `-d` 后台运行、电源管理、空闲检测 |
|
||||
|
||||
### 屏幕传输优化
|
||||
**编译**:`cd macos && ./build.sh`
|
||||
|
||||
- **SSE2 指令集**:像素差分计算硬件加速
|
||||
- **多线程并行**:线程池分块处理屏幕数据
|
||||
- **滚动检测**:识别滚动场景,减少 50-80% 带宽
|
||||
- **H.264 编码**:基于 x264,GOP 控制,视频级压缩
|
||||
### Go 主控(v1.3.4+)
|
||||
|
||||
### 安全机制
|
||||
**系统要求**:Go 1.21+(仅编译时);二进制运行无依赖
|
||||
|
||||
| 层级 | 措施 |
|
||||
|------|------|
|
||||
| **传输加密** | AES-256 数据加密,可配置 IV |
|
||||
| **身份验证** | 签名验证 + HMAC 认证 |
|
||||
| **授权控制** | 序列号绑定(IP/域名),多级授权 |
|
||||
| **文件校验** | SHA-256 完整性验证 |
|
||||
| **会话隔离** | Session 0 独立处理 |
|
||||
| 能力 | 实现 |
|
||||
|---|---|
|
||||
| 远程桌面 | H.264 → WebSocket → WebCodecs,1080P @ 20fps |
|
||||
| 远程终端 | xterm.js + PTY/ConPTY 透明转发 |
|
||||
| 多用户 | Challenge-Response + 不透明 token + 按组授权 |
|
||||
| 部署 | Nginx 反代 / Let's Encrypt / systemd unit / `/etc/environment` |
|
||||
|
||||
### 依赖库
|
||||
|
||||
| 库 | 版本 | 用途 |
|
||||
|----|------|------|
|
||||
| zlib | 1.3.1 | 通用压缩 |
|
||||
| zstd | 1.5.7 | 高速压缩 |
|
||||
| x264 | 0.164 | H.264 编码 |
|
||||
| libyuv | 190 | YUV 转换 |
|
||||
| HPSocket | 6.0.3 | 网络 I/O |
|
||||
| jsoncpp | 1.9.6 | JSON 解析 |
|
||||
**编译**:`cd server/go && go build -o server_linux_amd64 ./cmd`
|
||||
|
||||
---
|
||||
|
||||
## 系统架构
|
||||
|
||||
### 全平台拓扑
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ 多层授权架构 (Multi-Layer Authorization) │
|
||||
├─────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────┐ │
|
||||
│ │ 超级管理员 │ │
|
||||
│ │ (授权服务器) │ │
|
||||
│ │ Super Admin │ │
|
||||
│ └─────────┬───────────┘ │
|
||||
│ │ │
|
||||
│ ┌──────────────┼──────────────┐ │
|
||||
│ │ V2 授权 │ V2 授权 │ V2 授权 │
|
||||
│ │ (ECDSA) │ (ECDSA) │ (ECDSA) │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
|
||||
│ │ 第一层 A │ │ 第一层 B │ │ 第一层 C │ ◄── 独立运营 │
|
||||
│ │ Layer-1 A │ │ Layer-1 B │ │ Layer-1 C │ 完全隔离 │
|
||||
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
|
||||
│ │ │ │ │
|
||||
│ ┌────────┴────────┐ │ ┌──────┴──────┐ │
|
||||
│ │ V1 授权 │ │ │ V1 授权 │ │
|
||||
│ ▼ ▼ ▼ ▼ ▼ │
|
||||
│ ┌──────────┐ ┌──────────┐ ... ┌──────────┐ ┌──────────┐ │
|
||||
│ │ 下级 A1 │ │ 下级 A2 │ │ 下级 C1 │ │ 下级 C2 │ │
|
||||
│ │ Master │ │ Master │ │ Master │ │ Master │ │
|
||||
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
|
||||
│ │ │ │ │ │
|
||||
│ ▼ ▼ ▼ ▼ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
│ │ 客户端 │ │ 客户端 │ │ 客户端 │ │ 客户端 │ │
|
||||
│ │ 10,000+ │ │ 10,000+ │ │ 10,000+ │ │ 10,000+ │ │
|
||||
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
||||
│ │
|
||||
├─────────────────────────────────────────────────────────────────────────────┤
|
||||
│ 授权类型 验证方式 特点 │
|
||||
│ ───────────────────────────────────────────────────────────────────────── │
|
||||
│ V2 授权 ECDSA P-256 签名 支持离线验证,下级连接数限制 │
|
||||
│ V1 授权 HMAC + 在线验证 连接上级服务器验证 │
|
||||
│ 试用版 在线验证 功能受限,需保持连接 │
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
┌────────────────────────────────────────────────────────┐
|
||||
│ 主控层 │
|
||||
│ │
|
||||
│ ┌──────────────────┐ ┌──────────────────┐ │
|
||||
│ │ C++ MFC 主控 │ │ Go 主控 │ │
|
||||
│ │ YAMA.exe │ │ (Win/Linux/Mac) │ │
|
||||
│ │ Windows only │ │ Web UI 全平台 │ │
|
||||
│ └────────┬─────────┘ └────────┬─────────┘ │
|
||||
└────────────┼──────────────────────────┼─────────────────┘
|
||||
│ │
|
||||
│ TCP (自定义二进制协议) │ TCP (设备) + WS (浏览器)
|
||||
└────────┬─────────────────┘
|
||||
│
|
||||
┌──────────────┼──────────────┐
|
||||
▼ ▼ ▼
|
||||
┌─────────┐ ┌─────────┐ ┌─────────┐
|
||||
│ Windows │ │ Linux │ │ macOS │
|
||||
│ 客户端 │ │ 客户端 │ │ 客户端 │
|
||||
│ (DXGI) │ │ (X11) │ │ (CG) │
|
||||
└─────────┘ └─────────┘ └─────────┘
|
||||
```
|
||||
|
||||
### 架构优势
|
||||
### 多层授权(简化视图)
|
||||
|
||||
| 特性 | 说明 |
|
||||
|------|------|
|
||||
| **层级控制** | 超级用户可管理任意主控程序,支持无限层级 |
|
||||
| **完全隔离** | 不同第一层用户的授权、数据、客户端完全隔离 |
|
||||
| **独立运营** | 第一层用户可独立定价、发放授权,打造专属品牌 |
|
||||
| **水平扩展** | 单 Master 支持 10,000+ 客户端,多层架构可达百万级 |
|
||||
| **离线支持** | V2 授权支持完全离线验证,无需依赖上游服务 |
|
||||
```
|
||||
超级管理员(授权服务器)
|
||||
│ V2 授权 (ECDSA P-256)
|
||||
▼
|
||||
第一层主控 ──┬── 第一层主控 ──┬── 第一层主控 ◄── 独立运营 / 完全隔离
|
||||
│ V1 │ V1 │ V1
|
||||
▼ ▼ ▼
|
||||
下级主控 → 客户端 (10,000+) → 设备群
|
||||
```
|
||||
|
||||
### 主控程序(Server)
|
||||
| 授权 | 验证 | 特点 |
|
||||
|---|---|---|
|
||||
| V2 授权 | ECDSA P-256 签名 | 离线验证,下级连接数限制 |
|
||||
| V1 授权 | HMAC + 在线验证 | 连接上级服务器验证 |
|
||||
| 试用版 | 在线验证 | 功能受限、连接限制(详见 [合规文档](./docs/Compliance_AntiAbuse.md)) |
|
||||
|
||||
主控程序 **YAMA.exe** 提供图形化管理界面:
|
||||
|
||||

|
||||
|
||||
- 基于 IOCP 的高性能服务端
|
||||
- 客户端分组管理
|
||||
- 实时状态监控(RTT、地理位置、活动窗口)
|
||||
- 一键生成客户端
|
||||
|
||||
### 受控程序(Client)
|
||||
|
||||

|
||||
|
||||
**运行形式**:
|
||||
|
||||
| 类型 | 说明 |
|
||||
|------|------|
|
||||
| `ghost.exe` | 独立可执行文件,无外部依赖 |
|
||||
| `TestRun.exe` + `ServerDll.dll` | 分离加载,支持内存加载 DLL |
|
||||
| Windows 服务 | 后台运行,支持锁屏控制 |
|
||||
| Linux 客户端 | 跨平台支持(v1.2.5+) |
|
||||
| macOS 客户端 | 跨平台支持(v1.3.2+) |
|
||||
完整说明:[多层授权方案](./docs/MultiLayerLicense.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -365,61 +292,33 @@ struct FileChunkPacketV2 {
|
||||
无需编译,下载即用:
|
||||
|
||||
1. **下载发布版** - 从 [Releases](https://github.com/yuanyuanxiang/SimpleRemoter/releases/latest) 下载最新版本
|
||||
2. **启动主控** - 运行 `YAMA.exe`,输入授权信息(见下方试用口令)
|
||||
3. **生成客户端** - 点击工具栏「生成」按钮,配置服务器 IP 和端口
|
||||
4. **部署客户端** - 将生成的客户端复制到目标机器并运行
|
||||
5. **开始控制** - 客户端上线后,双击即可打开远程桌面
|
||||
2. **启动主控** - 运行 `YAMA.exe`(或 Linux 上的 `server_linux_amd64`),输入授权信息
|
||||
3. **生成客户端** - 工具栏「生成」配置服务器 IP 和端口
|
||||
4. **部署客户端** - 复制到目标机器运行
|
||||
5. **开始控制** - 客户端上线后双击远程桌面
|
||||
|
||||
> [!TIP]
|
||||
> 首次测试建议在同一台机器上运行主控和客户端,使用 `127.0.0.1` 作为服务器地址。
|
||||
|
||||
### 编译要求
|
||||
### Go 主控部署(VPS)
|
||||
|
||||
- **操作系统**:Windows 10/11 或 Windows Server 2016+
|
||||
- **开发环境**:Visual Studio 2019 / 2022 / 2026
|
||||
- **SDK**:Windows 10 SDK (10.0.19041.0+)
|
||||
|
||||
### 编译步骤
|
||||
参见 [Web 远程桌面配置](./docs/WebHTTPS.md)。最小步骤:
|
||||
|
||||
```bash
|
||||
# 1. 克隆代码(必须使用 git clone,不要下载 zip)
|
||||
git clone https://github.com/yuanyuanxiang/SimpleRemoter.git
|
||||
# 1. 在 VPS 上跑 Go 主控
|
||||
nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
|
||||
|
||||
# 2. 打开解决方案
|
||||
# 使用 VS2019+ 打开 SimpleRemoter.sln
|
||||
# 2. nginx 反代 9001 到 HTTPS
|
||||
# 详见 docs/WebHTTPS.md
|
||||
|
||||
# 3. 选择配置
|
||||
# Release | x86 或 Release | x64
|
||||
|
||||
# 4. 编译
|
||||
# 生成 -> 生成解决方案
|
||||
# 3. 浏览器打开 https://yourdomain.com/,登录、添加客户端
|
||||
```
|
||||
|
||||
**常见问题**:
|
||||
- 依赖库冲突:[#269](https://github.com/yuanyuanxiang/SimpleRemoter/issues/269)
|
||||
- 非中文系统乱码:[#157](https://github.com/yuanyuanxiang/SimpleRemoter/issues/157)
|
||||
- 编译器兼容性:[#171](https://github.com/yuanyuanxiang/SimpleRemoter/issues/171)
|
||||
### 试用授权(v1.2.4+)
|
||||
|
||||
### 部署方式
|
||||
|
||||
#### 内网部署
|
||||
|
||||
主控与客户端在同一局域网,客户端直连主控 IP:Port。
|
||||
|
||||
#### 外网部署(FRP 穿透)
|
||||
提供 2 年有效期、20 并发连接、仅限内网的试用口令:
|
||||
|
||||
```
|
||||
客户端 ──> VPS (FRP Server) ──> 本地主控 (FRP Client)
|
||||
```
|
||||
|
||||
详细配置请参考:[反向代理部署说明](./反向代理.md)
|
||||
|
||||
### 授权说明
|
||||
|
||||
自 v1.2.4 起提供试用口令(2 年有效期,20 并发连接,仅限内网):
|
||||
|
||||
```
|
||||
授权方式:按计算机 IP 绑定
|
||||
主控 IP:127.0.0.1
|
||||
序列号:12ca-17b4-9af2-2894
|
||||
密码:20260201-20280201-0020-be94-120d-20f9-919a
|
||||
@@ -430,286 +329,100 @@ git clone https://github.com/yuanyuanxiang/SimpleRemoter.git
|
||||
> [!NOTE]
|
||||
> **多层授权方案**
|
||||
>
|
||||
> SimpleRemoter 采用企业级多层授权架构,支持代理商/开发者独立运营:
|
||||
> - **离线验证**:第一层用户获得授权后可完全离线使用
|
||||
> - **独立控制**:您的下级用户只连接到您的服务器,数据完全由您掌控
|
||||
> - **自由定制**:支持二次开发,打造您的专属版本
|
||||
>
|
||||
> 📖 **[查看完整授权方案说明](./docs/MultiLayerLicense.md)**
|
||||
> 支持代理商/开发者独立运营:第一层用户获得授权后可完全离线使用,下级用户只连接到您的服务器。完整说明:[多层授权方案](./docs/MultiLayerLicense.md)
|
||||
|
||||
### 编译
|
||||
|
||||
- **C++ 主控 & Windows 客户端**:VS 2019/2022/2026 打开 `SimpleRemoter.sln` → Release | x64
|
||||
- **Linux 客户端**:`cd linux && cmake . && make`
|
||||
- **macOS 客户端**:`cd macos && ./build.sh`
|
||||
- **Go 主控**:`cd server/go && go build ./cmd`
|
||||
|
||||
---
|
||||
|
||||
## 用户文档
|
||||
|
||||
针对不同用户角色提供完整的使用文档:
|
||||
|
||||
| 文档 | 适用对象 | 内容简介 |
|
||||
|------|---------|---------|
|
||||
| 📖 [快速部署指南](./docs/QuickStart.md) | 首次使用者 | 10 分钟完成首次部署,导入授权、配置网络、生成受管程序 |
|
||||
| 📖 [多级网络搭建指南](./docs/NetworkSetup.md) | 需要管理下级的用户 | 构建总控→二级→受管端的多级网络架构 |
|
||||
| 📖 [日常使用手册](./docs/UserManual.md) | 所有用户 | 远程桌面、文件管理、终端、进程管理等功能详解 |
|
||||
| 📖 [代理商运营手册](./docs/AgentManual.md) | 代理商/分销商 | 下级授权管理、FRP 代理服务配置 |
|
||||
| 📖 [定制化开发指南](./docs/CustomizationGuide.md) | 技术型客户 | 品牌定制、界面修改、二次开发 |
|
||||
| 📖 [Web 远程桌面配置](./docs/WebHTTPS.md) | 移动端用户 | 通过浏览器访问远程桌面,支持手机/平板 |
|
||||
|
||||
---
|
||||
|
||||
## 客户端支持
|
||||
|
||||
### Windows 客户端
|
||||
|
||||
**系统要求**:Windows 7 SP1 及以上
|
||||
|
||||
**功能完整性**:✅ 全部功能支持
|
||||
|
||||
### Linux 客户端(v1.2.5+)
|
||||
|
||||
**系统要求**:
|
||||
- 显示服务器:X11/Xorg(暂不支持 Wayland)
|
||||
- 必需库:libX11
|
||||
- 推荐库:libXtst(XTest 扩展)、libXss(空闲检测)
|
||||
|
||||
**功能支持**:
|
||||
|
||||
| 功能 | 状态 | 实现 |
|
||||
|------|------|------|
|
||||
| 远程桌面 | ✅ | X11 屏幕捕获,鼠标/键盘控制 |
|
||||
| 远程终端 | ✅ | PTY 交互式 Shell |
|
||||
| 文件管理 | ✅ | 双向传输,大文件支持 |
|
||||
| 进程管理 | ✅ | 进程列表、终止进程 |
|
||||
| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
|
||||
| 守护进程 | ✅ | 双 fork 守护化 |
|
||||
| 剪贴板 | ⏳ | 开发中 |
|
||||
| 会话管理 | ⏳ | 开发中 |
|
||||
|
||||
**编译方式**:
|
||||
|
||||
```bash
|
||||
cd linux
|
||||
cmake .
|
||||
make
|
||||
```
|
||||
|
||||
### macOS 客户端(v1.3.2+)
|
||||
|
||||
**系统要求**:
|
||||
- macOS 10.15 (Catalina) 及以上
|
||||
- 架构支持:Intel (x64) 和 Apple Silicon (arm64) 通用二进制
|
||||
- 需要授予系统权限:屏幕录制、辅助功能、完全磁盘访问
|
||||
|
||||
**功能支持**:
|
||||
|
||||
| 功能 | 状态 | 实现 |
|
||||
|------|------|------|
|
||||
| 远程桌面 | ✅ | CoreGraphics 屏幕捕获,VideoToolbox H.264 硬件编码 |
|
||||
| 鼠标控制 | ✅ | CGEvent 模拟,支持双击、拖拽 |
|
||||
| 键盘控制 | ✅ | CGEvent 模拟,完整键码映射 |
|
||||
| 光标同步 | ✅ | 实时同步远程光标样式 |
|
||||
| 远程终端 | ✅ | PTY 交互式 Shell(zsh/bash) |
|
||||
| 文件管理 | ✅ | 双向传输、V2 协议、大文件支持 |
|
||||
| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
|
||||
| 分组管理 | ✅ | 持久化配置文件 |
|
||||
| 进程管理 | ⏳ | 开发中 |
|
||||
| 剪贴板 | ⏳ | 开发中 |
|
||||
|
||||
**编译方式**:
|
||||
|
||||
```bash
|
||||
cd macos
|
||||
./build.sh
|
||||
# 或手动编译:
|
||||
# mkdir build && cd build && cmake .. && make
|
||||
```
|
||||
| 文档 | 适用对象 | 内容 |
|
||||
|---|---|---|
|
||||
| 📖 [快速部署指南](./docs/QuickStart.md) | 首次使用者 | 10 分钟首次部署 |
|
||||
| 📖 [多级网络搭建指南](./docs/NetworkSetup.md) | 需要管理下级的用户 | 多级网络架构 |
|
||||
| 📖 [日常使用手册](./docs/UserManual.md) | 所有用户 | 全功能详解 |
|
||||
| 📖 [代理商运营手册](./docs/AgentManual.md) | 代理商/分销商 | 下级授权、FRP 配置 |
|
||||
| 📖 [定制化开发指南](./docs/CustomizationGuide.md) | 技术型客户 | 品牌定制、二次开发 |
|
||||
| 📖 [Web 远程桌面配置](./docs/WebHTTPS.md) | 移动端 / Go 主控用户 | HTTPS 反代、域名配置 |
|
||||
| 📖 [反滥用政策](./docs/Compliance_AntiAbuse.md) | 所有使用方 | 合规边界、责任划分 |
|
||||
| 📖 [反滥用技术措施](./docs/Compliance_TechnicalMeasures.md) | 合规审查方 | 屏障代码位置 + 设计动机 |
|
||||
|
||||
---
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.3.3 (2026.5.10)
|
||||
### v1.3.4 (2026.5.20)
|
||||
|
||||
**Linux/macOS 客户端深化 & 双层认证安全 & 跨平台共享代码重构**
|
||||
**Go 主控 & 全平台主控闭环 & Linux/macOS 客户端剪贴板**
|
||||
|
||||
**新功能:**
|
||||
- **服务端身份校验(Layer 1)**:Linux/macOS 客户端 HMAC-SHA256 校验服务端身份,未授权服务端无法触发任何子连接
|
||||
- **子连接认证(Layer 2,TOKEN_CONN_AUTH)**:所有子连接首包签名 + clientID 钉死,解决 NAT/127.0.0.1 路由错位
|
||||
- **Linux 客户端**:H.264 硬件编码(动态加载 libx264)、XFixes 光标类型检测、UTF-8 协议能力位
|
||||
- **macOS 客户端**:文件管理器、远程终端(共享 PTYHandler)、剪贴板同步、守护进程模式 (-d)、电源管理、屏幕锁定/空闲检测、CGDisplayStream 推送模式优化
|
||||
- **主控**:屏幕预览缩略图、区域截图、远程桌面缩放、Web 用户按组过滤、嵌入式现代终端、自适应屏幕算法、外部资源覆盖、分组持久化、Build Dialog 支持生成 macOS 客户端
|
||||
|
||||
**重构:**
|
||||
- Linux/macOS 客户端共享代码抽到 `common/`(rtt_estimator / client_auth_state / posix_net_helpers / sub_conn_thread),减少 ~300 行重复
|
||||
- **Go 主控**:Go 语言实现的跨平台轻量主控服务(Windows / Linux / macOS),聚焦于"远程桌面 + 远程终端 + 多用户分级"——不替代 MFC 主控,为需要纯 Linux/macOS 落地的运维场景兜底
|
||||
- **Web 远程桌面(Go 主控)**:H.264 → WebSocket → WebCodecs 解码、1080P @ 20fps、桌面 + 移动端全适配;远程光标同步、Keyboard Lock 防 ESC/F11 误退、控制态下 F11/Esc 直传目标
|
||||
- **Web 远程终端(Go 主控)**:xterm.js + PTY/ConPTY 透明转发、调整尺寸、断开自动清理面板
|
||||
- **多用户体系(Go 主控)**:管理员/普通用户分级、按设备组授权、Challenge-Response 登录、登录限流(IP + 用户名)、不透明 token
|
||||
- **Linux 客户端剪贴板**:基于 xclip / xsel 的双向剪贴板同步,支持 `text/uri-list` 文件路径
|
||||
- **macOS 客户端剪贴板**:基于 NSPasteboard 的双向剪贴板同步,文件 URL + 旧版 API 兼容
|
||||
|
||||
**改进:**
|
||||
- 现代终端 SYSTEM 兼容:自动回退到经典终端,信息列表给出精确原因
|
||||
- `build.ps1` 增加 `vswhere` 兜底(VS 装非默认盘也能找到)
|
||||
- 强制 `/source-charset:utf-8 /execution-charset:.936` 解决英语 Windows 编译中文乱码
|
||||
- macOS `install.sh` 源 binary 优先级优化(命令行 → 同目录 → build/bin),适配分发场景
|
||||
- Web 会话自适应质量被 clamp 到 H264-only 等级(≥ Good),避免 Ultra/High(DIFF/RGB565)让浏览器无法解码
|
||||
- Linux 客户端默认 `QualityLevel` 改为 `QUALITY_GOOD`(对齐 Windows/macOS),不再请求服务端自适应
|
||||
- 登录文本字段按客户端能力位条件解码 UTF-8 / GBK,修正德文/法文等带变音符的主机名 / 地理位置乱码
|
||||
- 设备列表稳定排序(按上线时间),避免每次心跳 / WS 推送都洗牌
|
||||
- RDP 重置按钮接通到设备端 `CMD_RESTORE_CONSOLE`
|
||||
- MFC 主控开启 Web 远控会话时不再短暂闪一下窗口(OnInitDialog 会话判定上移)
|
||||
|
||||
**Bug 修复:**
|
||||
- V2 文件传输在文件管理器对话框双向均损坏(上传 IP 路由错乱 + 下载 chunk 未分发)
|
||||
- 现代终端在 SYSTEM 权限下空白(WebView2 不支持 LocalSystem)
|
||||
- Linux 客户端 UTF-8 路径/活动窗口在服务端乱码
|
||||
- 日志列表表头点击错排序到主机列表
|
||||
- LVM_SETUNICODEFORMAT 后表头排序失效(补充 HDN_ITEMCLICKW 映射)
|
||||
- 服务+代理 Release 模式托盘图标不显示
|
||||
- macOS/Linux 客户端分组变更后未重发 LOGIN_INFOR
|
||||
- 文件对话框 map 野指针崩溃
|
||||
- 重连时未清回调导致访问已销毁 handler 崩溃
|
||||
- MFC 与 Web 远程桌面会话未完全独立
|
||||
- macOS 锁屏状态远程桌面启动时未唤醒显示器
|
||||
- MFC 远程桌面触控板双指滚动失效
|
||||
- Web 会话从全屏点关闭后设备列表点击失灵(fullscreen 子树规则,`showPage` 统一退全屏)
|
||||
- 客户端突然断开后 Web 远控页面停留在 "Connected" 永不刷新(新增 `device_offline` 通知)
|
||||
- 多显示器轮询导致两路屏幕子连接同时灌帧,画面在两个显示器间跳变(`BindScreenConn` 退役旧 sub-conn)
|
||||
- Go 主控 `ListDevices` 因 map 迭代随机化导致列表乱序
|
||||
|
||||
### v1.3.3 (2026.5.10)
|
||||
|
||||
**Linux/macOS 客户端深化 & 双层认证安全**
|
||||
|
||||
- 服务端身份校验(Layer 1):Linux/macOS 客户端 HMAC-SHA256 校验服务端身份
|
||||
- 子连接认证(Layer 2,TOKEN_CONN_AUTH):所有子连接首包签名 + clientID 钉死
|
||||
- Linux 客户端:H.264 硬件编码、XFixes 光标类型检测、UTF-8 协议能力位
|
||||
- macOS 客户端:文件管理器、远程终端、剪贴板同步、守护进程模式
|
||||
- 主控:屏幕预览缩略图、区域截图、远程桌面缩放、Web 用户按组过滤
|
||||
- 共享代码抽到 `common/`(rtt_estimator / client_auth_state / posix_net_helpers)
|
||||
|
||||
### v1.3.2 (2026.5.1)
|
||||
|
||||
**macOS 客户端 & Web 远程桌面增强**
|
||||
|
||||
**新功能:**
|
||||
- macOS 客户端支持:全新实现的 macOS 原生客户端,支持屏幕捕获、H.264 编码、键鼠控制、系统权限管理
|
||||
- Web 远程桌面光标同步:浏览器端实时显示远程主机光标样式
|
||||
- 触发器功能:支持主机上线事件触发自定义操作
|
||||
- 用户管理功能:新增角色权限管理,支持多用户分级控制
|
||||
- DLL 执行增强:参数持久化存储、支持自动运行配置
|
||||
- 远程桌面输入法切换:支持远程切换被控端输入语言
|
||||
|
||||
**改进:**
|
||||
- Web 远程桌面手势优化:改进双指手势识别、双击拖拽、Shift 组合键支持
|
||||
|
||||
**Bug 修复:**
|
||||
- 修复 Web 远程桌面在 macOS 客户端上双击无法打开文件的问题
|
||||
- 修复 macOS 完全磁盘访问权限检测不准确的问题
|
||||
- 修复 RestoreMemDLL 因 DLL 信息大小错误导致还原失败
|
||||
- 修复多个 DLL 同时执行可能因全局变量冲突而失败
|
||||
- 修复鼠标双击和远程桌面切换问题
|
||||
- 修复 Linux 客户端编译缺少 libzstd.a 的问题
|
||||
- 全新 macOS 原生客户端:屏幕捕获、H.264 编码、键鼠控制
|
||||
- Web 远程桌面光标同步
|
||||
- 触发器功能、用户管理(角色权限)
|
||||
- DLL 执行增强、远程桌面输入法切换
|
||||
|
||||
### v1.3.1 (2026.4.15)
|
||||
|
||||
**Web 远程桌面 & 多主控共享增强**
|
||||
**Web 远程桌面(MFC 主控) & 多主控共享增强**
|
||||
|
||||
**新功能:**
|
||||
- Web 远程桌面:基于 WebSocket 实现,支持手机/平板通过浏览器访问远程桌面([配置指南](./docs/WebHTTPS.md))
|
||||
- 撤销共享菜单:支持撤销已共享给其他主控的客户端
|
||||
- 工具栏音频控制:远程桌面工具栏新增系统音频开关图标
|
||||
|
||||
**改进:**
|
||||
- 多显示器禁用自适应:客户端有多个显示器时自动禁用自适应质量
|
||||
- 状态栏过期日期自动更新:授权续期后状态栏立即刷新
|
||||
- 减少无效离线日志:客户端不在主机列表时减少离线日志输出
|
||||
- 多层授权自动更新:第二层及以下主控的授权自动同步更新
|
||||
- 使用提示增强:新增多处操作提示改善用户体验
|
||||
- DLL 缓存复用:将 DLL 保存到注册表,下次启动时直接复用
|
||||
|
||||
**Bug 修复:**
|
||||
- 修复共享客户端时键盘记录可能无法正常工作的问题
|
||||
- Web 远程桌面:基于 WebSocket 实现,手机/平板浏览器访问
|
||||
- 多显示器禁用自适应、状态栏过期日期自动更新
|
||||
- 多层授权自动更新、DLL 缓存复用
|
||||
|
||||
### v1.3.0 (2026.4.8)
|
||||
|
||||
**多层级 FRP 架构 & 品牌定制**
|
||||
|
||||
**新功能:**
|
||||
- 本地 FRPS 服务器支持(仅 64 位):内置 FRP 服务端,简化部署
|
||||
- 多层级架构自动 FRP 集成:下级主控自动获取上级 FRP 配置
|
||||
- V2 授权下级连接数限制:支持控制下级并发连接数
|
||||
- 许可证文件导入/导出支持(.lic 格式)
|
||||
- 过期授权续期支持:无需重新生成许可证
|
||||
- 增强型硬件 ID (V2):解决 VPS 重复 SN 问题
|
||||
- MaxDepth 控制:限制分级 Master 层级深度
|
||||
- 许可证管理增强:配额支持、动态对话框、删除功能
|
||||
- IP 定位 API 多提供商回退:提高定位成功率
|
||||
- UI 品牌定制:支持自定义程序名称、Logo、版权等
|
||||
- 运行时功能限制:试用版功能限制可配置
|
||||
- 输入历史下拉框:快速选择历史输入
|
||||
- 生成客户端新增选项:更多自定义配置
|
||||
- 支持动态修改项目链接:无需重新编译更换帮助/反馈链接
|
||||
- 本地 FRPS 服务器、多层级架构自动 FRP 集成
|
||||
- V2 授权下级连接数限制、许可证文件导入/导出
|
||||
- 增强型硬件 ID (V2)、UI 品牌定制
|
||||
- 运行时功能限制可配置
|
||||
|
||||
**Bug 修复:**
|
||||
- 修复 RebuildFilteredIndices 的 Use-after-free 崩溃
|
||||
- 修复 CLock::Lock 中 IOCP 竞态条件崩溃 (#215)
|
||||
- 修复崩溃保护服务清理和代理提升问题
|
||||
- 修复消息日志无限增长导致的潜在崩溃
|
||||
- 修复 FeatureFlags 引入后 UpperHash 字符串长度问题
|
||||
- 修复客户端 SN 生成以支持 HWIDVersion 设置
|
||||
### 更早版本
|
||||
|
||||
**改进:**
|
||||
- 重构 res/ 目录结构,添加菜单图标
|
||||
- 过期密码不再被自动清除
|
||||
- 保持下级主控与第一层主控的连接稳定
|
||||
|
||||
### v1.0.2.9 (2026.3.27)
|
||||
|
||||
**网络安全 & 稳定性增强**
|
||||
|
||||
**新功能:**
|
||||
- 网络配置对话框:IP 白名单/黑名单管理,实时生效
|
||||
- 可配置的连接限流:DLL 请求限流、IP 封禁阈值可调
|
||||
- IP 历史记录对话框:查看授权 IP 登录历史
|
||||
- 状态栏显示 MTBF/运行时间和授权到期日期
|
||||
- 代理崩溃保护:5 分钟内 3 次崩溃自动切换普通模式
|
||||
- 客户端搜索功能:Ctrl+F 快速搜索 IP、位置、计算机名
|
||||
- 自动封禁异常 IP:60 秒内超过 15 次连接自动封禁 1 小时
|
||||
- Proxy Protocol v2 支持:FRP 代理后获取真实客户端 IP
|
||||
- Linux 剪贴板同步和 V2 文件传输支持
|
||||
- 右键菜单运行客户端程序
|
||||
- 多层授权混淆支持
|
||||
|
||||
**Bug 修复:**
|
||||
- 修复 OnUserOfflineMsg 竞态条件导致的崩溃
|
||||
- 修复客户端请求 FRPC DLL 时 FrpcParam 丢失
|
||||
- 最大数据包从 10MB 增加到 50MB
|
||||
- 支持 mstsc 远程会话读取用户注册表
|
||||
- 修复远程桌面最小化时剪贴板误触发
|
||||
- 修复操作进程对话框时主控崩溃
|
||||
- 状态栏主机数量实时更新
|
||||
- Linux select() 调用前重置 timeval
|
||||
- 授权码格式验证,过滤垃圾数据
|
||||
|
||||
**改进:**
|
||||
- 增强授权检查,添加 IP 封禁提示
|
||||
- 支持主控程序以用户权限运行
|
||||
- 大 DLL 自动使用 TinyRun 回退方案
|
||||
|
||||
### v1.2.8 (2026.3.11)
|
||||
|
||||
**邮件通知 & 远程音频**
|
||||
|
||||
- 主机上线邮件通知(SMTP 配置、关键词匹配、右键快捷添加)
|
||||
- 远程音频播放(WASAPI Loopback)+ Opus 压缩(24:1)
|
||||
- 多 FRPS 服务器同时连接支持
|
||||
- 自定义光标显示和追踪
|
||||
- V2 授权协议(ECDSA 签名)
|
||||
- 修复非中文 Windows 系统乱码问题
|
||||
- Linux 客户端屏幕压缩算法优化
|
||||
|
||||
### v1.2.7 (2026.2.28)
|
||||
|
||||
**V2 文件传输协议**
|
||||
|
||||
- 支持 C2C(客户端到客户端)直接传输
|
||||
- 断点续传和大文件支持(>4GB)
|
||||
- SHA-256 文件完整性校验
|
||||
- WebView2 + xterm.js 现代终端
|
||||
- Linux 文件管理支持
|
||||
- 主机列表批量更新优化,减少 UI 闪烁
|
||||
|
||||
### v1.2.6 (2026.2.16)
|
||||
|
||||
**远程桌面工具栏重写**
|
||||
|
||||
- 状态窗口显示 RTT、帧率、分辨率
|
||||
- 全屏工具栏支持 4 个位置和多显示器
|
||||
- H.264 带宽优化
|
||||
- 授权管理 UI 完善
|
||||
|
||||
### v1.2.5 (2026.2.11)
|
||||
|
||||
**自适应质量控制 & Linux 客户端**
|
||||
|
||||
- 基于 RTT 的智能质量调整
|
||||
- RGB565 算法(节省 50% 带宽)
|
||||
- 滚动检测优化(节省 50-80% 带宽)
|
||||
- Linux 客户端初版发布
|
||||
|
||||
完整更新历史请查看:[history.md](./history.md)
|
||||
v1.2.x 系列(邮件通知、远程音频 Opus、V2 授权协议、V2 文件传输、现代 Web 终端 xterm.js、远程桌面工具栏重写、自适应质量控制、Linux 客户端初版……)及 2019 年以来的全部演进,请见 [history.md](./history.md)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user