Featured image of post EagleDesk - 跨平台远程控制软件 - 现代化跨平台远程控制解决方案

EagleDesk - 跨平台远程控制软件 - 现代化跨平台远程控制解决方案

EagleDesk:跨平台远程控制软件,现代化跨平台远程控制解决方案,Cross-platform remote control software

💁🏻‍♂️ github.com 2025-08-04 《EagleDesk-跨平台远程控制软件》 童建平

EagleDesk - 跨平台远程控制软件

EagleDesk是一款基于Flutter开发的跨平台远程控制软件,支持Android、iOS、macOS、Windows等多个平台。

✨ 功能特性

核心功能

  • 远程桌面控制: 实时控制远程设备的桌面
  • 屏幕查看: 仅查看远程屏幕,不进行控制
  • 文件传输: 在设备间安全传输文件
  • 多平台支持: Android、iOS、macOS、Windows

🎯 核心特性

  • 🌐 真正的跨平台支持 - 一套代码,支持Windows、Android、iOS、macOS、Linux
  • 🚀 现代化UI设计 - 采用Material 3设计语言,科技感十足的渐变配色
  • ⚡ 高性能屏幕共享 - 实时屏幕录制与传输,支持30FPS高帧率
  • 🔒 企业级安全 - 端到端加密,设备码+临时密码双重验证
  • 🎮 完整远程控制 - 支持鼠标、键盘、触摸等全方位远程操作
  • 📁 智能文件传输 - 拖拽式文件传输,支持大文件断点续传
  • 🔍 智能设备发现 - 局域网自动发现,支持P2P直连和中继模式
  • P2P直连: 优先使用点对点连接,减少延迟
  • 中继服务器: P2P失败时自动切换到中继模式
  • 端到端加密: 使用AES-256加密保护数据传输
  • NAT穿透: 支持STUN/TURN协议进行网络穿透
  • 动态码率: 根据网络状况自动调整视频质量

🛠️ 技术架构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
┌─────────────────────────────────────────────────────────────┐
│                    EagleDesk 架构图                          │
├─────────────────────────────────────────────────────────────┤
│  UI层 (Flutter)                                            │
│  ├── 现代化Material 3界面                                   │
│  ├── 响应式布局设计                                         │
│  └── 跨平台适配组件                                         │
├─────────────────────────────────────────────────────────────┤
│  业务逻辑层                                                 │
│  ├── 设备发现服务 (UDP广播)                                │
│  ├── 连接管理服务 (P2P/中继)                               │
│  ├── 屏幕捕获服务 (MediaProjection)                        │
│  ├── 输入控制服务 (鼠标/键盘)                              │
│  ├── 文件传输服务 (TCP/WebSocket)                          │
│  └── 权限管理服务                                          │
├─────────────────────────────────────────────────────────────┤
│  平台适配层                                                 │
│  ├── Android (Kotlin插件)                                  │
│  ├── Windows (C++插件)                                     │
│  ├── iOS/macOS (Swift插件)                                 │
│  └── Linux (C++插件)                                       │
├─────────────────────────────────────────────────────────────┤
│  网络通信层                                                 │
│  ├── WebSocket实时通信                                     │
│  ├── TCP可靠传输                                           │
│  ├── UDP设备发现                                           │
│  └── HTTP RESTful API                                      │
└─────────────────────────────────────────────────────────────┘

项目结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
lib/
├── core/                   # 核心业务逻辑
   ├── models/            # 数据模型
      ├── device.dart    # 设备模型
      └── connection.dart # 连接模型
   ├── services/          # 业务服务
      ├── auth_service.dart      # 认证服务
      ├── device_service.dart    # 设备管理服务
      ├── connection_service.dart # 连接管理服务
      ├── settings_service.dart  # 设置服务
      ├── crypto_service.dart    # 加密服务
      └── p2p_service.dart       # P2P网络服务
   └── app.dart           # 应用入口
├── ui/                    # 用户界面
   ├── screens/          # 页面
      ├── login_screen.dart         # 登录页面
      ├── home_screen.dart          # 主页面
      ├── settings_screen.dart      # 设置页面
      └── remote_control_screen.dart # 远程控制页面
   ├── widgets/          # 组件
      ├── device_card.dart          # 设备卡片
      ├── connection_status_card.dart # 连接状态卡片
      ├── custom_text_field.dart    # 自定义输入框
      └── loading_button.dart       # 加载按钮
   └── theme/            # 主题
       └── app_theme.dart # 应用主题
└── main.dart             # 应用启动入口

技术细节

网络协议

  1. 设备发现: UDP广播发现局域网内的设备
  2. 连接建立:
    • 优先尝试P2P直连
    • 失败时使用中继服务器
  3. 数据传输:
    • 屏幕数据: H.264/H.265编码 + UDP传输
    • 控制指令: TCP可靠传输
    • 文件传输: TCP + 断点续传

安全机制

  1. 密钥交换: RSA非对称加密交换会话密钥
  2. 数据加密: AES-256对称加密
  3. 身份认证: 基于JWT的用户认证
  4. 双因素认证: 支持TOTP二次验证

性能优化

  1. 动态码率: 根据网络状况调整视频质量
  2. 区域更新: 仅传输屏幕变化区域
  3. 硬件加速: 利用GPU进行视频编解码
  4. 多路径: 同时尝试多种连接路径

🚀 功能细节

📱 远程控制功能

🎥 屏幕共享

  • 实时屏幕录制 - 支持高清屏幕捕获,最高支持4K分辨率
  • 自适应帧率 - 根据网络状况自动调整帧率(15-60FPS)
  • 智能压缩 - H.264硬件编码,减少带宽占用
  • 多显示器支持 - 支持多屏幕环境下的屏幕选择

🎮 远程操作

  • 精准鼠标控制 - 支持左键、右键、滚轮、拖拽操作
  • 完整键盘支持 - 支持所有按键组合,包括快捷键
  • 触摸手势 - 移动端支持多点触控手势
  • 剪贴板同步 - 跨设备剪贴板内容同步

📁 文件传输

  • 拖拽传输 - 简单拖拽即可传输文件
  • 批量传输 - 支持多文件、文件夹批量传输
  • 断点续传 - 网络中断后自动续传
  • 传输加密 - 文件传输过程全程加密

🔐 安全特性

🛡️ 多重验证

  • 设备码验证 - 6位数字设备码,定期自动更新
  • 临时密码 - 6位随机密码,每次连接后失效
  • 权限控制 - 细粒度权限管理,用户可控制访问范围

🔒 数据加密

  • 端到端加密 - 使用AES-256加密所有传输数据
  • 密钥交换 - 基于RSA的安全密钥交换机制
  • 会话保护 - 每个会话使用独立的加密密钥

🌐 网络连接

🔍 智能发现

  • 局域网扫描 - 自动发现同网段设备
  • 设备码连接 - 通过设备码快速连接
  • 历史记录 - 保存常用设备连接信息

🚀 连接模式

  • P2P直连 - 局域网内直接连接,低延迟
  • 中继模式 - 跨网络环境通过服务器中继
  • 自动切换 - 根据网络环境自动选择最佳连接方式

🎨 界面设计

🌈 现代化设计语言

EagleDesk采用最新的Material 3设计规范,结合科技感的配色方案:

  • 主色调: 现代紫色 (#6366F1) - 科技感与专业性的完美结合
  • 辅助色: 科技绿 (#10B981) - 代表连接状态和成功操作
  • 强调色: 青色 (#06B6D4) - 突出重要信息和交互元素

🎭 深色/浅色主题

  • 自适应主题 - 跟随系统主题自动切换
  • 护眼设计 - 深色主题减少眼部疲劳
  • 高对比度 - 确保在各种环境下的可读性

📱 响应式布局

  • 移动端优化 - 针对手机屏幕优化的纵向布局
  • 平板适配 - 充分利用平板的大屏幕空间
  • 桌面端体验 - 侧边栏导航,多窗口支持

🔧 技术实现

📚 核心技术栈

  • 前端框架: Flutter 3.x
  • 状态管理: Provider + ChangeNotifier
  • 本地存储: Hive (轻量级NoSQL数据库)
  • 网络通信: WebSocket + TCP + UDP
  • 图像处理: Flutter Image + 原生编解码
  • 权限管理: permission_handler + 原生权限API

🏗️ 架构模式

采用分层架构设计,确保代码的可维护性和扩展性:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
lib/
├── core/                    # 核心业务逻辑
   ├── models/             # 数据模型
   ├── services/           # 业务服务
   └── app.dart           # 应用入口
├── ui/                     # 用户界面
   ├── screens/           # 页面组件
   ├── widgets/           # 通用组件
   └── theme/             # 主题配置
└── main.dart              # 应用启动

🔌 平台集成

Android平台

  • Kotlin插件 - 处理屏幕录制、权限管理
  • MediaProjection API - 实现屏幕捕获
  • AccessibilityService - 实现远程控制

Windows平台

  • C++插件 - 系统级API调用
  • DirectX - 高性能屏幕捕获
  • Windows API - 鼠标键盘模拟

iOS/macOS平台

  • Swift插件 - 原生功能封装
  • ReplayKit - 屏幕录制框架
  • Core Graphics - 图像处理

📱 平台支持

✅ 已支持平台

平台 状态 功能完整度 备注
🤖 Android ✅ 完全支持 100% 包含vivo等厂商适配
🪟 Windows ✅ 完全支持 100% Win10/11完全兼容
🍎 iOS ✅ 基础支持 80% 受系统限制部分功能
🍎 macOS ✅ 基础支持 85% 权限管理需优化
🐧 Linux ✅ 基础支持 75% 主流发行版支持

🔄 兼容性测试

  • Android: API 21+ (Android 5.0+)
  • iOS: iOS 12.0+
  • Windows: Windows 10 1903+
  • macOS: macOS 10.15+
  • Linux: Ubuntu 18.04+, CentOS 7+

🎯 使用场景

💼 商业应用

  • 远程办公 - 居家办公时访问公司电脑
  • 技术支持 - IT人员远程解决技术问题
  • 演示培训 - 远程演示软件操作和培训
  • 协同工作 - 团队成员之间的屏幕共享协作

🏠 个人使用

  • 文件访问 - 外出时访问家中电脑文件
  • 游戏娱乐 - 在移动设备上操作电脑游戏
  • 媒体控制 - 手机控制电脑播放媒体内容
  • 学习辅助 - 学生远程访问学校电脑资源

🏥 专业领域

  • 医疗诊断 - 医生远程查看医疗设备数据
  • 工业控制 - 远程监控和控制工业设备
  • 教育培训 - 在线教学和远程实验指导
  • 金融服务 - 安全的远程金融系统访问

🔒 安全说明

🛡️ 隐私保护

  • 本地优先 - 优先使用P2P直连,数据不经过第三方服务器
  • 临时连接 - 连接密码定期更新,防止长期暴露
  • 权限最小化 - 只申请必要权限,用户可随时撤销
  • 数据不存储 - 不在服务器存储用户数据和连接记录

🔐 安全建议

  1. 定期更新 - 及时更新应用版本,获取最新安全补丁
  2. 网络安全 - 在可信网络环境下使用,避免公共WiFi
  3. 权限管理 - 定期检查和管理应用权限
  4. 密码保护 - 不要将设备码和密码分享给不信任的人

使用说明

首次使用

  1. 注册账号或登录现有账号
  2. 应用会自动生成设备ID并注册到服务器
  3. 在设置中配置网络参数(如需要)

连接设备

  1. 确保设备在同一网络或可通过互联网访问
  2. 在主页面查看发现的设备
  3. 点击"远程控制"建立连接
  4. 连接成功后即可控制远程设备

功能使用

  • 远程控制: 直接在屏幕上操作,支持鼠标和键盘
  • 虚拟键盘: 点击键盘按钮使用虚拟键盘
  • 缩放: 使用手势或工具栏按钮缩放屏幕
  • 文件传输: 通过菜单访问文件传输功能

开发计划

已完成

  • 基础架构搭建
  • 用户界面设计
  • 设备发现机制
  • 连接管理
  • 基础加密功能
  • 屏幕捕获和显示
  • 输入事件处理
  • P2P网络实现
  • 服务器端开发

计划中

  • 文件传输功能
  • 音频传输
  • 移动端优化
  • 性能优化
  • 多语言支持

注意: 这是一个演示项目,部分功能仍在开发中。

📞 技术支持

如有问题或建议,请通过以下方式联系:

  • 提交GitHub Issue

如需购买及定制本系统或其它程序软件、app开发(Android/iOS),欢迎通过以下方式联系:

🙏 致谢

感谢以下开源项目和技术社区的支持:

  • Flutter Team - 提供优秀的跨平台开发框架
  • Material Design - 现代化的设计语言
  • Dart Community - 活跃的开发者社区
  • 所有贡献者 - 每一个贡献都让EagleDesk变得更好

⭐ 如果这个项目对你有帮助,请给我们一个Star!⭐

让远程控制变得简单,让协作变得高效

EagleDesk - 连接无界,控制无限 🦅

💻 项目预览

Windows端界面

首页

高级设置

调试工具

性能监控

网络诊断

功能演示

连接演示

手机移动端界面

手机首页