godesk

Go 远程桌面软件设计草案,涵盖远程视图、控制、中继、认证和协作功能。

godesk 项目封面或真实界面
Go主要技术栈
0GitHub Stars
1Forks
43索引文件
未声明许可标记
2026-04-17最近更新

01 / PROJECT OVERVIEW

项目研究解读

Go 远程桌面软件设计草案,涵盖远程视图、控制、中继、认证和协作功能。 本仓库以 Go 为主要技术栈,当前快照索引 43 个文件。报告依据README 与目录结构整理,重点呈现项目用途、工程结构和复用方式,不把宣传描述等同于验证结论。

02 / CORE CAPABILITIES

值得关注的能力

  1. 01

    围绕“Go 远程桌面软件设计草案,涵盖远程视图、控制、中继、认证和协作功能”提供公开实现或研究资料

  2. 02

    以 Go 为主,保留 43 个可检查仓库文件

  3. 03

    提供原始 GitHub 链接、目录导览和本地研究快照,便于复核与二次开发

03 / ENGINEERING

工程与仓库结构

仓库以 Go 为主要实现语言,研究快照包含 43 个文件、8 个主要顶层入口。已提供 README 作为使用与能力说明。 项目最近更新时间为 2026-04-17,许可标记为 未在 API 中声明。

01README.md

项目文件与实现资料

02cmd

命令行程序入口

03configs

运行配置与技能定义

04go.sum

项目文件与实现资料

05internal

内部服务与模块实现

06pkg

可复用公共包

04 / USE CASES

适合用在哪里

  • 学习项目设计与实现
  • 评估后用于二次开发
  • 作为相关领域的研究参考

05 / QUICK START

从仓库开始

以下命令摘自项目 README 或根据仓库地址生成。请先阅读源仓库的安装要求、许可和脚本,再在自己的环境中运行。

git clone https://github.com/suifei/godesk.git
cd godesk

06 / REPOSITORY MAP

目录证据导览

这里列出快照中的前 43 个索引文件中的代表路径,帮助你快速定位源码、文档、测试与资源。

  • .gitignore
  • .vscode/launch.json
  • README.md
  • cmd/client/main.go
  • cmd/relay/main.go
  • cmd/server/main.go
  • configs/client_config.yaml
  • configs/relay_config.yaml
  • configs/server_config.yaml
  • go.sum
  • internal/auth/session.go
  • internal/auth/user.go
  • internal/client/display.go
  • internal/client/filetransfer.go
  • internal/client/handler.go
  • internal/client/input.go
  • internal/protocol/auth.pb.go
  • internal/protocol/control.pb.go
  • internal/protocol/filetransfer.pb.go
  • internal/protocol/message.pb.go
  • internal/protocol/relay.pb.go
  • internal/protocol/screen.pb.go
  • internal/relay/hub.go
  • internal/relay/session.go
  • internal/server/capture.go
  • internal/server/control.go
  • internal/server/filetransfer.go
  • internal/server/handler.go
  • pkg/keyboard/keyboard.go
  • pkg/monitor/monitor.go
  • pkg/network/tcp.go
  • pkg/network/udp.go
  • pkg/utils/compression.go
  • pkg/utils/crypto.go
  • proto/auth.proto
  • proto/control.proto
  • proto/filetransfer.proto
  • proto/message.proto
  • proto/relay.proto
  • proto/screen.proto
  • scripts/build.sh
  • scripts/generate_proto.sh
  • scripts/merge.sh

07 / SOURCE NOTES

README 原文摘录

保留原始说明便于复核。中文研究结论以当前快照为依据,后续变化请以 GitHub 仓库为准。

godesk

远程桌面软件功能点

1. 核心远程控制功能

  • 远程视图:实时查看远程设备的屏幕
  • 远程控制:使用本地鼠标和键盘控制远程设备
  • 多显示器支持:支持查看和控制多个显示器
  • 屏幕缩放:根据本地窗口大小调整远程屏幕显示

2. 连接和网络

  • 点对点直连:在同一网络内实现直接连接
  • 中继服务器:通过中继服务器实现跨网络连接
  • NAT穿透:使用技术如STUN/TURN来实现NAT穿透
  • 加密传输:使用SSL/TLS加密所有数据传输
  • 带宽自适应:根据网络条件自动调整视频质量和帧率

3. 用户管理和认证

  • 用户注册和登录系统
  • 设备绑定和管理
  • 访问权限控制:设置不同级别的访问权限
  • 双因素认证:增强安全性

4. 文件传输

  • 双向文件传输:从本地到远程,或从远程到本地
  • 拖放支持:直接拖放文件进行传输
  • 断点续传:支持大文件的断点续传

5. 远程音频

  • 远程音频传输:听到远程设备的声音
  • 双向语音通话:支持语音交流

6. 远程打印

  • 将远程文档打印到本地打印机

7. 会话管理

  • 多会话支持:同时连接多个远程设备
  • 会话切换:快速在不同远程会话间切换
  • 会话录制:记录远程控制会话

8. 安全特性

  • 远程锁定:锁定远程设备屏幕
  • 空闲时自动断开:长时间无操作自动断开连接
  • 远程设备的访问日志

9. 协作功能

  • 多人协作:允许多个用户同时查看/控制一个远程设备
  • 屏幕标注:在远程屏幕上进行绘图标注
  • 文字聊天:集成即时通讯功能

10. 性能优化

  • 硬件加速:利用GPU进行视频编解码
  • 智能压缩:根据屏幕内容选择最佳压缩算法
  • 色彩模式:支持全色彩/高压缩模式切换

11. 跨平台支持

  • 支持Windows, macOS, Linux等多个操作系统
  • 移动端支持:iOS和Android应用

12. 自定义和扩展

  • 快捷键定制
  • 插件系统:支持功能扩展
  • API接口:允许与其他系统集成

13. 辅助功能

  • 远程重启:支持重启后自动重连
  • 无人值守安装:便于大规模部署
  • 远程命令行:直接访问远程设备的命令行界面

14. 报告和分析

  • 使用统计:连接时长、数据传输量等
  • 性能监控:CPU、内存、网络使用情况
  • 问题诊断:网络连接问题的诊断工具

GoDESK 核心功能

  • 核心远程控制功能(远程视图和控制)
  • 连接和网络(直连和中继服务器)
  • 基本的用户认证
  • 简单的文件传输
remote-desktop-go/
├── cmd/
│   ├── server/
│   │   └── main.go
│   ├── client/
│   │   └── main.go
│   └── relay/
│       └── main.go
├── internal/
│   ├── server/
│   │   ├── capture.go
│   │   ├── control.go
│   │   ├── filetransfer.go
│   │   └── handler.go
│   ├── client/
│   │   ├── display.go
│   │   ├── input.go
│   │   ├── filetransfer.go
│   │   └── handler.go
│   ├── relay/
│   │   ├── hub.go
│   │   └── session.go
│   ├── auth/
│   │   ├── user.go
│   │   └── session.go
│   └── protocol/
│       ├── screen.pb.go
│       ├── control.pb.go
│       ├── auth.pb.go
│       ├── filetransfer.pb.go
│       └── relay.pb.go
├── pkg/
│   ├── network/
│   │   ├── tcp.go
│   │   └── udp.go
│   └── utils/
│       ├── compression.go
│       └── crypto.go
├── proto/
│   ├── screen.proto
│   ├── control.proto
│   ├── auth.proto
│   ├── filetransfer.proto
│   └── relay.proto
├── configs/
│   ├── server_config.yaml
│   ├── client_config.yaml
│   └── relay_config.yaml
├── scripts/
│   ├── build.sh
│   └── generate_proto.sh
├── go.mod
├── go.sum
└── README.md