💁🏻♂️ 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协议进行网络穿透
- 动态码率: 根据网络状况自动调整视频质量
🛠️ 技术架构
|
|
项目结构
|
|
技术细节
网络协议
- 设备发现: UDP广播发现局域网内的设备
- 连接建立:
- 优先尝试P2P直连
- 失败时使用中继服务器
- 数据传输:
- 屏幕数据: H.264/H.265编码 + UDP传输
- 控制指令: TCP可靠传输
- 文件传输: TCP + 断点续传
安全机制
- 密钥交换: RSA非对称加密交换会话密钥
- 数据加密: AES-256对称加密
- 身份认证: 基于JWT的用户认证
- 双因素认证: 支持TOTP二次验证
性能优化
- 动态码率: 根据网络状况调整视频质量
- 区域更新: 仅传输屏幕变化区域
- 硬件加速: 利用GPU进行视频编解码
- 多路径: 同时尝试多种连接路径
🚀 功能细节
📱 远程控制功能
🎥 屏幕共享
- 实时屏幕录制 - 支持高清屏幕捕获,最高支持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
🏗️ 架构模式
采用分层架构设计,确保代码的可维护性和扩展性:
|
|
🔌 平台集成
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直连,数据不经过第三方服务器
- 临时连接 - 连接密码定期更新,防止长期暴露
- 权限最小化 - 只申请必要权限,用户可随时撤销
- 数据不存储 - 不在服务器存储用户数据和连接记录
🔐 安全建议
- 定期更新 - 及时更新应用版本,获取最新安全补丁
- 网络安全 - 在可信网络环境下使用,避免公共WiFi
- 权限管理 - 定期检查和管理应用权限
- 密码保护 - 不要将设备码和密码分享给不信任的人
使用说明
首次使用
- 注册账号或登录现有账号
- 应用会自动生成设备ID并注册到服务器
- 在设置中配置网络参数(如需要)
连接设备
- 确保设备在同一网络或可通过互联网访问
- 在主页面查看发现的设备
- 点击"远程控制"建立连接
- 连接成功后即可控制远程设备
功能使用
- 远程控制: 直接在屏幕上操作,支持鼠标和键盘
- 虚拟键盘: 点击键盘按钮使用虚拟键盘
- 缩放: 使用手势或工具栏按钮缩放屏幕
- 文件传输: 通过菜单访问文件传输功能
开发计划
已完成
- 基础架构搭建
- 用户界面设计
- 设备发现机制
- 连接管理
- 基础加密功能
- 屏幕捕获和显示
- 输入事件处理
- P2P网络实现
- 服务器端开发
计划中
- 文件传输功能
- 音频传输
- 移动端优化
- 性能优化
- 多语言支持
注意: 这是一个演示项目,部分功能仍在开发中。
📞 技术支持
如有问题或建议,请通过以下方式联系:
- 提交GitHub Issue
如需购买及定制本系统或其它程序软件、app开发(Android/iOS),欢迎通过以下方式联系:
- 微信号: xmdoor
- 邮箱: [email protected]
🙏 致谢
感谢以下开源项目和技术社区的支持:
- Flutter Team - 提供优秀的跨平台开发框架
- Material Design - 现代化的设计语言
- Dart Community - 活跃的开发者社区
- 所有贡献者 - 每一个贡献都让EagleDesk变得更好
⭐ 如果这个项目对你有帮助,请给我们一个Star!⭐
让远程控制变得简单,让协作变得高效
EagleDesk - 连接无界,控制无限 🦅