Release v1.3.4
This commit is contained in:
765
ReadMe_TW.md
765
ReadMe_TW.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,12 +38,13 @@
|
||||
## 目錄
|
||||
|
||||
- [專案簡介](#專案簡介)
|
||||
- [免責聲明](#免責聲明)
|
||||
- [本版本亮點:全平台閉環](#本版本亮點全平台閉環)
|
||||
- [合規與反濫用](#合規與反濫用)
|
||||
- [功能特性](#功能特性)
|
||||
- [技術亮點](#技術亮點)
|
||||
- [全平台支援](#全平台支援)
|
||||
- [系統架構](#系統架構)
|
||||
- [快速開始](#快速開始)
|
||||
- [用戶端支援](#用戶端支援)
|
||||
- [使用者文件](#使用者文件)
|
||||
- [更新日誌](#更新日誌)
|
||||
- [相關專案](#相關專案)
|
||||
- [聯絡方式](#聯絡方式)
|
||||
@@ -55,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
|
||||
|
||||
@@ -81,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 離線授權版本 | 無需連線授權伺服器 |
|
||||
|
||||
除獲得離線授權外,主控程式會與授權伺服器進行必要的資料互動(如偵測破解行為、驗證授權有效性)。
|
||||
|
||||
---
|
||||
|
||||
@@ -120,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 escape、調整尺寸
|
||||
- **現代終端**: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)
|
||||
|
||||
---
|
||||
|
||||
@@ -363,62 +291,34 @@ struct FileChunkPacketV2 {
|
||||
|
||||
無需編譯,下載即用:
|
||||
|
||||
1. **下載發佈版** - 從 [Releases](https://github.com/yuanyuanxiang/SimpleRemoter/releases/latest) 下載最新版本
|
||||
2. **啟動主控** - 執行 `YAMA.exe`,輸入授權資訊(見下方試用口令)
|
||||
3. **產生用戶端** - 點擊工具列「產生」按鈕,設定伺服器 IP 和連接埠
|
||||
4. **部署用戶端** - 將產生的用戶端複製到目標機器並執行
|
||||
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)
|
||||
|
||||
- **作業系統**: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
|
||||
@@ -429,271 +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`
|
||||
|
||||
---
|
||||
|
||||
## 用戶端支援
|
||||
## 使用者文件
|
||||
|
||||
### 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 架構 & 品牌定制**
|
||||
**多層級 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