Files
SimpleRemoter/ReadMe_TW.md
yuanyuanxiang 6e743ada0b Release v1.3.4
2026-05-20 15:23:08 +02:00

457 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SimpleRemoter
**[简体中文](./ReadMe.md) | [繁體中文](./ReadMe_TW.md) | [English](./ReadMe_EN.md)**
<p align="center">
<a href="https://github.com/yuanyuanxiang/SimpleRemoter/stargazers">
<img src="https://img.shields.io/github/stars/yuanyuanxiang/SimpleRemoter?style=flat-square&logo=github" alt="GitHub Stars">
</a>
<a href="https://github.com/yuanyuanxiang/SimpleRemoter/network/members">
<img src="https://img.shields.io/github/forks/yuanyuanxiang/SimpleRemoter?style=flat-square&logo=github" alt="GitHub Forks">
</a>
<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/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>
<p align="center">
<a href="https://github.com/yuanyuanxiang/SimpleRemoter/releases/latest">
<img src="https://img.shields.io/badge/Download-最新版本-2ea44f?style=for-the-badge&logo=github" alt="Download Latest">
</a>
</p>
---
> [!WARNING]
> **重要法律聲明**
>
> 本軟體**僅供教育目的及授權使用情境**:組織內遠端 IT 管理、經授權的滲透測試與安全研究、個人裝置管理與技術學習。
>
> **未經授權存取電腦系統屬違法行為。** 使用者須對遵守所有適用法律承擔全部責任。開發者對任何濫用行為概不負責。
---
## 目錄
- [專案簡介](#專案簡介)
- [本版本亮點:全平台閉環](#本版本亮點全平台閉環)
- [合規與反濫用](#合規與反濫用)
- [功能特性](#功能特性)
- [全平台支援](#全平台支援)
- [系統架構](#系統架構)
- [快速開始](#快速開始)
- [使用者文件](#使用者文件)
- [更新日誌](#更新日誌)
- [相關專案](#相關專案)
- [聯絡方式](#聯絡方式)
---
## 專案簡介
**SimpleRemoter** 是一個端到端跨平台的遠端控制解決方案。
專案核心基於經典 **Gh0st 架構**,最早始於 2019 年 1 月。歷經 7 年持續迭代——從 IOCP 通訊核心重構、x264 視訊級編碼、V2 檔案傳輸協定、多層授權體系,到 Linux 與 macOS 用戶端的引入——本版本最終完成**用戶端 + 伺服端的全平台閉環**三大桌面作業系統Windows / Linux / macOS在任一側都可作為受控端或主控端。
**原始來源:** [zibility/Remote](https://github.com/zibility/Remote) | **起始日期:** 2019.1.1
[![Star History Chart](https://api.star-history.com/svg?repos=yuanyuanxiang/SimpleRemoter&type=Date)](https://star-history.com/#yuanyuanxiang/SimpleRemoter&Date)
---
## 本版本亮點:全平台閉環
本專案長期以 **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 |
---
## 合規與反濫用
本專案長期堅持「明確的合規姿態」立場。本版本進一步收緊反濫用邊界。
### 內建技術措施
原始碼層面構築多道獨立可驗證的反濫用屏障,詳見 [反濫用技術措施清單](./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 離線授權版本 | 無需連線授權伺服器 |
除獲得離線授權外,主控程式會與授權伺服器進行必要的資料互動(如偵測破解行為、驗證授權有效性)。
---
## 功能特性
### 遠端桌面
![遠端桌面](./images/Remote.jpg)
- **多種螢幕擷取**GDI / DXGI / 虛擬桌面Windows、X11 + XShmLinux、CGDisplayStreammacOS
- **智慧壓縮**DIFF 差分SSE2 最佳化)/ RGB565節省 50% 頻寬)/ **H.264**視訊級壓縮x264 + VideoToolbox + WebCodecs/ 灰階模式
- **自適應品質**:根據 RTT 自動調節影格率5-30 FPS、解析度、壓縮演算法
- **多顯示器**:多螢幕切換 + 多螢幕上牆
- **跨裝置檔案拖曳**Ctrl+C/V 跨裝置複製貼上檔案
- **Web 遠端桌面**:瀏覽器直接存取,手機 / 平板可用([設定指南](./docs/WebHTTPS.md)
![Web遠端桌面](./images/WebRemote.png)
### 檔案管理
![檔案管理](./images/FileManage.jpg)
- **V2 傳輸協定**:支援 >4GB 大檔、斷點續傳、SHA-256 校驗
- **C2C 傳輸**:用戶端之間直接傳輸,無需經過主控
- **批次操作**:搜尋、壓縮、批次傳輸
### 終端管理
![終端管理](./images/LinuxClient.png)
- **互動式 Shell**Tab 自動補全、ANSI escape、調整尺寸
- **現代終端**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推薦函式庫libXtstXTest 擴充、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 互動式 Shellzsh/bash |
| 檔案管理 | ✅ | V2 協定、大檔 |
| 程序管理 | ✅ | proc_listpids + 終止 |
| 剪貼簿同步 | ✅ | NSPasteboard支援檔案 URL + NSFilenamesPboardType |
| 常駐模式 | ✅ | `-d` 後台執行、電源管理、閒置偵測 |
**編譯**`cd macos && ./build.sh`
### Go 主控v1.3.4+
**系統需求**Go 1.21+(僅編譯時);二進位執行無依賴
| 能力 | 實作 |
|---|---|
| 遠端桌面 | H.264 → WebSocket → WebCodecs1080P @ 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 + 連線驗證 | 連接上級伺服器驗證 |
| 試用版 | 連線驗證 | 功能受限、連線限制(詳見 [合規文件](./docs/Compliance_AntiAbuse.md) |
完整說明:[多層授權方案](./docs/MultiLayerLicense.md)
---
## 快速開始
### 5 分鐘快速體驗
無需編譯,下載即用:
1. **下載發行版** - 從 [Releases](https://github.com/yuanyuanxiang/SimpleRemoter/releases/latest) 下載最新版本
2. **啟動主控** - 執行 `YAMA.exe`(或 Linux 上的 `server_linux_amd64`),輸入授權資訊
3. **生成用戶端** - 工具列「生成」設定伺服器 IP 和埠
4. **部署用戶端** - 複製到目標機器執行
5. **開始控制** - 用戶端上線後雙擊遠端桌面
> [!TIP]
> 首次測試建議在同一台機器上執行主控和用戶端,使用 `127.0.0.1` 作為伺服器位址。
### Go 主控部署VPS
參見 [Web 遠端桌面設定](./docs/WebHTTPS.md)。最小步驟:
```bash
# 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 並發連線、僅限內網的試用口令:
```
主控 IP127.0.0.1
序號12ca-17b4-9af2-2894
密碼20260201-20280201-0020-be94-120d-20f9-919a
驗證碼6015188620429852704
有效期2026-02-01 至 2028-02-01
```
> [!NOTE]
> **多層授權方案**
>
> 支援代理商 / 開發者獨立營運:第一層使用者獲得授權後可完全離線使用,下級使用者只連線到您的伺服器。完整說明:[多層授權方案](./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) | 行動端 / Go 主控使用者 | HTTPS 反代、網域設定 |
| 📖 [反濫用政策](./docs/Compliance_AntiAbuse.md) | 所有使用方 | 合規邊界、責任劃分 |
| 📖 [反濫用技術措施](./docs/Compliance_TechnicalMeasures.md) | 合規稽核方 | 屏障原始碼位置 + 設計動機 |
---
## 更新日誌
### 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/HighDIFF/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 1Linux/macOS 用戶端 HMAC-SHA256 校驗伺服端身份
- 子連線認證Layer 2TOKEN_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](./history.md)。
---
## 相關專案
- [HoldingHands](https://github.com/yuanyuanxiang/HoldingHands) - 全英文介面遠端控制
- [Gh0st](https://github.com/yuanyuanxiang/Gh0st) - 經典 Gh0st 實作
---
## 聯絡方式
| 管道 | 連結 |
|------|------|
| **QQ** | 962914132 |
| **Telegram** | [@doge_grandfather](https://t.me/doge_grandfather) |
| **Email** | [yuanyuanxiang163@gmail.com](mailto:yuanyuanxiang163@gmail.com) |
| **Issues** | [問題回報](https://t.me/SimpleRemoter) |
| **PR** | [貢獻程式碼](https://git.simpleremoter.com/) |
### 贊助支持
本專案源於技術學習與興趣愛好,作者將根據業餘時間不定期更新。如果本專案對您有所幫助,歡迎贊助支持:
[![Sponsor](https://img.shields.io/badge/Sponsor-Support%20This%20Project-ff69b4?style=for-the-badge)](https://github.com/yuanyuanxiang/yuanyuanxiang/blob/main/images/QR_Codes.jpg)
---
<p align="center">
<sub>如果您喜歡這個專案,請給它一個 ⭐ Star</sub>
</p>