MohamedAYassin/GUIShell
GitHub: MohamedAYassin/GUIShell
一款基于 WebRTC P2P 的开源远程桌面控制工具,通过会话码建立经用户明确授权的低延迟远程协助连接。
Stars: 12 | Forks: 1
# 远程控制工具
一款专为 IT 支持和远程协助打造的合法、以同意为首的远程桌面工具。
## 免责声明
本项目仅用于合法的 IT 管理和远程支持。所有连接在授予任何远程访问权限之前,均需获得用户的明确同意。
## 功能特性
- **以同意为首的架构** — 每次会话都需要主机的明确批准
- **P2P WebRTC 连接** — 低延迟、加密的、点对点直连流传输
- **会话代码** — 简单的 8 位数字代码,便于连接(类似于 AnyDesk)
- **系统托盘集成** — 可见的、透明的后台运行
- **自动更新** — 在用户确认下,检查 GitHub Releases 以获取新版本
- **审计日志** — 记录所有会话以确保合规性
## 架构
```
Host Machine ←─── WebRTC P2P ───→ Controller Machine
↕ ↕
Signaling Server (Koyeb + Supabase)
```
通过信令服务器完成初始握手后,所有屏幕和输入数据都通过 WebRTC 直接进行 P2P 传输。服务器完全不会介入其中。
## 技术栈
| 组件 | 技术 |
|---|---|
| GUI | CustomTkinter |
| P2P 流传输 | WebRTC (aiortc) |
| 屏幕捕获 | mss |
| 输入控制 | pyautogui |
| 信令服务器 | FastAPI (Koyeb) |
| 数据库 | Supabase Postgres |
| 编译 | Nuitka (原生 Windows 二进制文件) |
| 安装程序 | Inno Setup |
## 环境要求
- Python 3.10+
- Windows 10/11
## 本地运行
### 服务器 (信令)
```
cd server
pip install -r requirements.txt
# 设置环境变量
set SUPABASE_URL=your_supabase_url
set SUPABASE_SERVICE_KEY=your_supabase_key
uvicorn main:app --host 0.0.0.0 --port 8000
```
### 客户端
```
pip install -r requirements.txt
cd src
python main.py
```
## 构建分发版
### 使用 Nuitka 编译
```
cd build
build.bat
```
这将生成 `main.exe` — 一个原生的 Windows 二进制文件。
### 使用 Inno Setup 打包
```
cd build
iscc installer.iss
```
这将生成 `build\installer\RemoteControlTool-Setup.exe` — 一个专业的安装程序。
## 部署
### 信令服务器 (Koyeb)
1. 创建一个 Koyeb 账户(免费套餐)
2. 连接你的 GitHub 仓库
3. 设置环境变量:`SUPABASE_URL`、`SUPABASE_SERVICE_KEY`
4. 使用构建命令进行部署:`pip install -r requirements.txt`
5. 运行命令:`uvicorn main:app --host 0.0.0.0 --port $PORT`
6. 添加自定义域名:`api.yassin.dev`
### 数据库 (Supabase)
1. 创建一个 Supabase 项目(免费套餐)
2. 在 SQL 编辑器中运行 `server/schema.sql`
3. 获取你的项目 URL 和 Service Key
## 友好的防病毒设计
本项目旨在避免防病毒软件的误报:
- **Nuitka 编译** — 生成原生的 Windows 二进制文件,而非 Python 打包程序
- **无隐藏行为** — 始终保持可见窗口 + 系统托盘图标
- **不写入注册表** — 使用正规的安装程序,而非通过注册表实现持久化
- **透明的网络行为** — 仅连接到您的信令服务器 + 通过 STUN 进行 P2P 连接
- **需要同意** — 未经用户明确批准,无法启动任何会话
- **开源** — 所有代码均可见且可审计
## 许可证
MIT 许可证 — 详见 [LICENSE](/LICENSE)
标签:aiortc, AV绕过, CustomTkinter, FastAPI, GUI开发, Inno Setup, IT技术支持, Koyeb, mss, Nuitka打包, P2P连接, PostgreSQL, pyautogui, Python, RAT, Sockets编程, Supabase, uvicorn, WebRTC, Windows应用, 低延迟, 信令服务器, 同意机制, 屏幕捕获, 无后门, 桌面共享, 点对点通信, 端到端加密, 系统托盘, 自动更新, 远程协助, 远程控制, 远程桌面, 远程管理, 逆向工具