GitHub mirror is no longer maintained; v1.3.4+ releases land on Gitea only. Repoint the Release-version badge and Download-Latest button (href + shields endpoint + logo) at git.simpleremoter.com so visitors don't end up on a stale GitHub release page. Stars/forks badges stay on GitHub — vanity counters reflecting historical accumulation, not navigation targets. Also: server/go/README.md yama-issue-token link and the line-294 Markdown "Releases" link in all three READMEs now point at Gitea.
21 KiB
SimpleRemoter
Warning
重要法律声明
本软件仅供教育目的及授权使用场景:组织内远程 IT 管理、经授权的渗透测试与安全研究、个人设备管理与技术学习。
未经授权访问计算机系统属违法行为。 使用者须对遵守所有适用法律承担全部责任。开发者对任何滥用行为概不负责。
目录
项目简介
SimpleRemoter 是一个端到端跨平台的远程控制解决方案。
项目核心基于经典 Gh0st 架构,最早始于 2019 年 1 月。历经 7 年持续迭代——从 IOCP 通信内核重构、x264 视频级编码、V2 文件传输协议、多层授权体系,到 Linux 与 macOS 客户端的引入——本版本最终完成客户端 + 服务端的全平台闭环:三大桌面操作系统(Windows / Linux / macOS)在任一侧都可作为受控端或主控端。
原始来源: zibility/Remote | 起始日期: 2019.1.1
本版本亮点:全平台闭环
本项目长期以 C++ MFC 主控(YAMA.exe)为核心交付形态——经典 Gh0st 架构、IOCP 高性能内核、完整的远程桌面 / 文件 / 进程 / 媒体功能栈、多层授权体系、品牌定制——至今仍是主要使用的主控。MFC 主控内置了基于 WebSocket 的 Web 远程桌面服务,从 v1.3.1 起就已经支持任意平台的浏览器远控被管设备(手机/平板/Linux/macOS 桌面均可)。
本版本(v1.3.4)补上了最后一块拼图——Go 主控:一个功能简单、聚焦于"远程桌面 + 远程终端 + 多用户分级" 的轻量服务端,跨 Windows / Linux / macOS 编译运行。它的定位不是替代 MFC,而是为那些不便于跑 Windows VPS 的用户提供一个原生的 Linux/macOS 主控落点——例如纯 Linux 服务器、ARM Mac 长驻、嵌入式主控箱等场景。
两种主控形态如何选择
| 形态 | GUI | 功能覆盖 | 平台 | 定位 |
|---|---|---|---|---|
C++ MFC 主控 (YAMA.exe) |
原生 Windows GUI + 内置 Web 服务 | ✅ 全部功能 | Windows | 主推方案。日常运维、文件管理、媒体采集、多层授权、品牌定制等都用它 |
| Go 主控(新) | Web UI(任何浏览器) | 远程桌面 + 远程终端 + 多用户 | Windows / Linux / macOS | 补充方案。需要"零 Windows 依赖"的纯 Linux/macOS 主控部署 |
Tip
两种主控用的是同一套客户端——可以混搭,例如一台 Windows MFC 主控 + 一台 Linux Go 主控并行管理同一批设备群。
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 |
合规与反滥用
本项目长期坚持「明确的合规姿态」立场。本版本进一步收紧反滥用边界。
内置技术措施
源代码层面构筑多道独立可验证的反滥用屏障,详见 反滥用技术措施清单:
- 入站连接 IP 段校验:试用版若被部署到公网会触发可见告警 latch
- 监听端口上限:试用版限制 ≤ 2 个监听端口,防多租户中转改造
- 应用层 RTT 反代理:LAN 内 RTT 阈值检测,反向代理 / 隧道会被识别
- 多层授权架构:V2 ECDSA 离线 + V1 在线 + 试用版分级,每一层限制独立
- Web 主控认证:强制 Challenge-Response 登录、登录限流、不透明 token、操作可审计
合规文档
| 文档 | 内容 |
|---|---|
| 📖 反滥用与合规使用政策 | 完整的发行方-使用方责任划分 |
| 📖 反滥用技术措施清单 | 每一道屏障的源代码位置、设计动机、已知局限 |
Important
使用本软件即视为您已阅读、理解并接受上述合规文档全部条款。 如您不能或不愿接受任一条款,请立即停止使用并销毁本软件副本。
网络连接与隐私
| 版本类型 | 连接行为 |
|---|---|
| 试用版本 | 维持与授权服务器的持续连接 |
| V1/V2 授权版本 | 启动时连接验证,通过后断开 |
| V2 离线授权版本 | 无需连接授权服务器 |
除获得离线授权外,主控程序会与授权服务器进行必要的数据交互(如检测破解行为、验证授权有效性)。
功能特性
远程桌面
- 多种屏幕捕获: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 远程桌面:浏览器直接访问,手机/平板可用(配置指南)
文件管理
- V2 传输协议:支持 >4GB 大文件、断点续传、SHA-256 校验
- C2C 传输:客户端之间直接传输,无需经过主控
- 批量操作:搜索、压缩、批量传输
终端管理
- 交互式 Shell:Tab 补全、ANSI 转义、调整尺寸
- 现代终端:Windows ConPTY、Linux/macOS PTY
- Web 终端:xterm.js + WebSocket,跟原生体验一致
其他功能
| 模块 | 能力 |
|---|---|
| 进程管理 | 进程列表、CPU/内存占用、终止、DLL 注入 |
| 窗口管理 | 最大化/最小化/隐藏/关闭 |
| 媒体采集 | 摄像头、双向语音、键盘记录 |
| 系统控制 | 服务管理、注册表、会话注销/关机 |
| 网络功能 | SOCKS 代理、FRP 穿透、端口映射 |
| 代码执行 | 远程执行 DLL、内存加载、热更新 |
全平台支持
Windows 客户端
系统要求:Windows 7 SP1 及以上 功能完整性:✅ 全部功能支持
Linux 客户端(v1.2.5+)
系统要求:
- 显示服务器:X11/Xorg(暂不支持 Wayland)
- 必需库:libX11;推荐库:libXtst(XTest 扩展)、libXss(空闲检测)
| 功能 | 状态 | 实现 |
|---|---|---|
| 远程桌面 | ✅ | X11 屏幕捕获 + libx264 H.264 硬件编码 |
| 远程终端 | ✅ | PTY 交互式 Shell |
| 文件管理 | ✅ | V2 协议、双向传输、大文件 |
| 进程管理 | ✅ | 列表 + 终止 |
| 剪贴板同步 | ✅ | xclip / xsel 外部工具,支持文件 URI |
| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
| 守护进程 | ✅ | 双 fork 守护化 |
编译:cd linux && cmake . && make
macOS 客户端(v1.3.2+)
系统要求:
- macOS 10.15 (Catalina) 及以上
- 架构:Intel (x64) 和 Apple Silicon (arm64) 通用二进制
- 系统权限:屏幕录制、辅助功能、完全磁盘访问
| 功能 | 状态 | 实现 |
|---|---|---|
| 远程桌面 | ✅ | CGDisplayStream + VideoToolbox H.264 硬件编码 |
| 键鼠控制 | ✅ | CGEvent,支持双击、拖拽 |
| 远程终端 | ✅ | PTY 交互式 Shell(zsh/bash) |
| 文件管理 | ✅ | V2 协议、大文件 |
| 进程管理 | ✅ | proc_listpids + 终止 |
| 剪贴板同步 | ✅ | NSPasteboard,支持文件 URL + NSFilenamesPboardType |
| 守护模式 | ✅ | -d 后台运行、电源管理、空闲检测 |
编译:cd macos && ./build.sh
Go 主控(v1.3.4+)
系统要求:Go 1.21+(仅编译时);二进制运行无依赖
| 能力 | 实现 |
|---|---|
| 远程桌面 | H.264 → WebSocket → WebCodecs,1080P @ 20fps |
| 远程终端 | xterm.js + PTY/ConPTY 透明转发 |
| 多用户 | Challenge-Response + 不透明 token + 按组授权 |
| 部署 | Nginx 反代 / Let's Encrypt / systemd unit / /etc/environment |
编译:cd server/go && go build -o server_linux_amd64 ./cmd
系统架构
全平台拓扑
┌────────────────────────────────────────────────────────┐
│ 主控层 │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ C++ MFC 主控 │ │ Go 主控 │ │
│ │ YAMA.exe │ │ (Win/Linux/Mac) │ │
│ │ Windows only │ │ Web UI 全平台 │ │
│ └────────┬─────────┘ └────────┬─────────┘ │
└────────────┼──────────────────────────┼─────────────────┘
│ │
│ TCP (自定义二进制协议) │ TCP (设备) + WS (浏览器)
└────────┬─────────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Windows │ │ Linux │ │ macOS │
│ 客户端 │ │ 客户端 │ │ 客户端 │
│ (DXGI) │ │ (X11) │ │ (CG) │
└─────────┘ └─────────┘ └─────────┘
多层授权(简化视图)
超级管理员(授权服务器)
│ V2 授权 (ECDSA P-256)
▼
第一层主控 ──┬── 第一层主控 ──┬── 第一层主控 ◄── 独立运营 / 完全隔离
│ V1 │ V1 │ V1
▼ ▼ ▼
下级主控 → 客户端 (10,000+) → 设备群
| 授权 | 验证 | 特点 |
|---|---|---|
| V2 授权 | ECDSA P-256 签名 | 离线验证,下级连接数限制 |
| V1 授权 | HMAC + 在线验证 | 连接上级服务器验证 |
| 试用版 | 在线验证 | 功能受限、连接限制(详见 合规文档) |
完整说明:多层授权方案
快速开始
5 分钟快速体验
无需编译,下载即用:
- 下载发布版 - 从 Releases 下载最新版本
- 启动主控 - 运行
YAMA.exe(或 Linux 上的server_linux_amd64),输入授权信息 - 生成客户端 - 工具栏「生成」配置服务器 IP 和端口
- 部署客户端 - 复制到目标机器运行
- 开始控制 - 客户端上线后双击远程桌面
Tip
首次测试建议在同一台机器上运行主控和客户端,使用
127.0.0.1作为服务器地址。
Go 主控部署(VPS)
参见 Web 远程桌面配置。最小步骤:
# 1. 在 VPS 上跑 Go 主控
nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
# 2. nginx 反代 9001 到 HTTPS
# 详见 docs/WebHTTPS.md
# 3. 浏览器打开 https://yourdomain.com/,登录、添加客户端
试用授权(v1.2.4+)
提供 2 年有效期、20 并发连接、仅限内网的试用口令:
主控 IP:127.0.0.1
序列号:12ca-17b4-9af2-2894
密码:20260201-20280201-0020-be94-120d-20f9-919a
验证码:6015188620429852704
有效期:2026-02-01 至 2028-02-01
Note
多层授权方案
支持代理商/开发者独立运营:第一层用户获得授权后可完全离线使用,下级用户只连接到您的服务器。完整说明:多层授权方案
编译
- 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
用户文档
| 文档 | 适用对象 | 内容 |
|---|---|---|
| 📖 快速部署指南 | 首次使用者 | 10 分钟首次部署 |
| 📖 多级网络搭建指南 | 需要管理下级的用户 | 多级网络架构 |
| 📖 日常使用手册 | 所有用户 | 全功能详解 |
| 📖 代理商运营手册 | 代理商/分销商 | 下级授权、FRP 配置 |
| 📖 定制化开发指南 | 技术型客户 | 品牌定制、二次开发 |
| 📖 Web 远程桌面配置 | 移动端 / Go 主控用户 | HTTPS 反代、域名配置 |
| 📖 反滥用政策 | 所有使用方 | 合规边界、责任划分 |
| 📖 反滥用技术措施 | 合规审查方 | 屏障代码位置 + 设计动机 |
更新日志
v1.3.4 (2026.5.20)
Go 主控 & 全平台主控闭环 & Linux/macOS 客户端剪贴板
新功能:
- 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 兼容
改进:
- 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 修复:
- 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 原生客户端:屏幕捕获、H.264 编码、键鼠控制
- Web 远程桌面光标同步
- 触发器功能、用户管理(角色权限)
- DLL 执行增强、远程桌面输入法切换
v1.3.1 (2026.4.15)
Web 远程桌面(MFC 主控) & 多主控共享增强
- Web 远程桌面:基于 WebSocket 实现,手机/平板浏览器访问
- 多显示器禁用自适应、状态栏过期日期自动更新
- 多层授权自动更新、DLL 缓存复用
v1.3.0 (2026.4.8)
多层级 FRP 架构 & 品牌定制
- 本地 FRPS 服务器、多层级架构自动 FRP 集成
- V2 授权下级连接数限制、许可证文件导入/导出
- 增强型硬件 ID (V2)、UI 品牌定制
- 运行时功能限制可配置
更早版本
v1.2.x 系列(邮件通知、远程音频 Opus、V2 授权协议、V2 文件传输、现代 Web 终端 xterm.js、远程桌面工具栏重写、自适应质量控制、Linux 客户端初版……)及 2019 年以来的全部演进,请见 history.md。
相关项目
- HoldingHands - 全英文界面远程控制
- Gh0st - 经典 Gh0st 实现
联系方式
| 渠道 | 链接 |
|---|---|
| 962914132 | |
| Telegram | @doge_grandfather |
| yuanyuanxiang163@gmail.com | |
| Issues | 问题反馈 |
| PR | 贡献代码 |
赞助支持
本项目源于技术学习与兴趣爱好,作者将根据业余时间不定期更新。如果本项目对您有所帮助,欢迎赞助支持:
如果您喜欢这个项目,请给它一个 ⭐ Star!



