概述

随着未来远程办公、居家办公的需求和趋势越来越多,远程桌面工具会越来越吃香,本文汇总几款商业和开源工具:

  • 商业:TeamViewer、向日葵、ToDesk、AnyDesk
  • 开源:RustDesk、1Remote、CrossDesk

TeamViewer

向日葵

ToDesk

免密连接、隐私屏、扩展屏

ToDesk是国产远程桌面行业率先引入RTC技术的,这项技术兼具了高速性和高可靠性,相比传统的这类型软件,更具有抗丢包、低延时、低卡顿的优势,就算身处在复杂的网络环境中,也能够稳定而快速的创建网络连接。所以ToDesk在文件传输上丝毫不卡顿,视频文件毫秒级传递,最高达12M/s,还可以自由拖拽,随取随拿。

AnyDesk

官网,AnyDesk连接打开会话后,必须勾选对应功能键,但是文件传输剪贴板无效,也不能文件拖拽,过程中还莫名被闪退并且直接断连。多试几次,传输显示已关闭同时无法打开文件。

RustDesk

官网,基于Rust开发,支持Windows/MacOS/Linux/iOS/Android等主流平台的开源(GitHub,102K Star,14.9K Fork)远程桌面工具。作为商业远程桌面软件的开源替代方案,通过灵活的部署选项实现完整的数据控制,支持自托管和基于云的会合服务器。

特性:

  1. 数据完全自主可控:支持在自有服务器或NAS部署服务端,所有数据流经私有网络,避免第三方服务器泄露风险。某企业实测显示,自建服务器后数据访问延迟降低40%。
  2. 开源安全架构:Rust开发,内存安全性和并发处理能力优于C++架构的TeamViewer。支持AES-256端到端加密,通过IP白名单、日志审计等机制构建多层防护。
  3. 极致性能优化
    • 低带宽适应:智能带宽分配技术可在50kbps网络下保持流畅操作
    • 高画质支持:免费版即支持4K60帧,远超向日葵免费版的720P限制
    • 跨平台兼容:覆盖Windows/macOS/Linux/移动端,NAS部署后可实现内网穿透
  4. 零成本与灵活性:开源版功能完整,企业可定制插件(如集成LDAP认证),而TeamViewer商业版年费超5000元。

架构
在这里插入图片描述
采用模块化的客户端-服务器架构,配备复杂的点对点连接系统。

核心组件:

  • RendezvousMediator:作为建立对等方连接的中央协调器。通过TCP打洞处理NAT穿透,并在无法建立直接连接时管理回退到中继服务器。协调器持续与会合服务器通信,以保持连接可用性并处理对等方发现。
  • Client模块:管理活动的远程会话,处理视频解码、输入转发和文件传输。支持多种连接类型,包括通过会合基础设施建立的直接TCP、UDP和中继连接。客户端实现了全面的会话管理,具有剪贴板同步和音频流等功能。
  • Server组件:提供主机端功能,包括屏幕捕获、输入处理和服务管理。它为不同的远程桌面功能暴露多个服务端点:
    • 视频服务:支持硬件加速的实时屏幕共享
    • 音频服务:双向音频流
    • 输入服务:键盘和鼠标事件处理
    • 剪贴板服务:跨平台剪贴板同步
  • 平台抽象层:使用专门的库处理平台特定操作:
    • scrap:支持硬件编解码器的跨平台屏幕捕获
    • enigo:跨操作系统的统一键盘和鼠标控制
    • clipboard:所有平台的文件复制粘贴实现
    • hbb_common:视频编解码器、网络工具和配置管理

核心技术

  • Rust:用于核心功能的内存安全系统编程语言
  • Protobuf:用于网络通信的高效二进制序列化
  • WebRTC:用于Web客户端的实时通信功能
  • 硬件加速:支持H264、H265、VP8、VP9、AV1编解码器

企业级安全措施:

  • 端到端加密:所有通信均使用行业标准协议加密
  • 公钥认证:通过加密密钥对进行设备认证
  • 访问控制:可配置的权限和连接批准工作流
  • 隐私模式:屏幕屏蔽和隐私保护功能

RustDesk提供全面的视频编解码器支持,针对远程桌面场景进行优化,在压缩效率、硬件加速和跨平台兼容性之间取得平衡。系统会根据可用硬件性能、网络条件和客户端需求,基于分层架构,具备多重回退机制,动态选择最优编解码器,确保在各种环境下的可靠性能:
在这里插入图片描述
编解码器分类:

  • 硬件加速编解码器
    • H264 (AVC)
      • 实时远程桌面主要编解码器
      • 压缩率和CPU使用率平衡出色
      • 现代GPU普遍支持
      • 大多数场景的默认选择
    • H265 (HEVC)
      • 压缩效率更优(比H264高30-50%)
      • 计算需求更高
      • 新一代硬件支持
      • 带宽受限环境的理想选择
  • 软件编解码器
    • VP8
      • 传统编解码器支持
      • 压缩效率较低
      • 老旧硬件上编码更快
      • 用作回退选项
    • VP9
      • H264的现代免专利替代方案
      • 压缩率与H264相当
      • 软件性能良好
      • 主要软件编码选择
    • AV1
      • 下一代压缩效率
      • 比VP9/H264提升30%
      • 计算需求更高
      • 面向未来的编解码器支持

RustDesk中的硬件加速利用基于GPU的编码和解码技术,显著提升视频流传输性能,降低CPU负载。该系统采用多层级加速架构,并配备自动降级机制,确保在不同硬件配置下的兼容性。
在这里插入图片描述

实战

部署: docker run -d --name rustdesk -p 5000:5000 -p 5001:5001 rustdesk/rustdesk

1Remote

官网,一款开源(GitHub,5.6K Star,479 Fork)现代化的远程会话管理和启动器。

核心特性:

  1. 协议支持全面
    • RDP:Remote Desktop Protocol,远程桌面协议,支持多显示器远程管理
    • SSH/Telnet:安全的命令行连接
    • VNC:Virtual Network Computing,跨平台远程桌面
    • SFTP/FTP:文件传输协议
    • RemoteApp:远程应用程序集成,参考文档
    • FTP客户端:无需改变用户既往使用习惯,支持轻松集成其他CLI工具,如Kitty、TightVNC、NoMachine、WinSCP、CMake、UltraVNC
  2. 极速启动器:快捷键Alt+M呼出快速启动器,支持拼音检索汉字,秒速找到目标服务器。
  3. 功能清单
    • Tags标签管理,支持多标签筛选和排除,标签快捷访问栏
    • 自定义图标和连接高亮颜色
    • 连接前后执行脚本(如SSH打开编译服务器后自动执行make,编译完成后退出SSH)
    • 支持批量编辑和操作
    • 远程会话以标签页形式展示,可拖拽分离为新窗口,支持多会话同时管理
    • 多地址切换:内网用LAN,速度快;外网用WAN;自动切换地址
    • 多账号切换:一个服务器可配置多套账号密码
  4. 多语言、主题、可分离的界面
    • 多语言支持,完全本地化的中文界面
    • 丰富的主题选择
    • 可分离的用户界面设计
  5. 数据迁移友好
    • 可从mRemoteNG迁移会话
    • 支持导入RDP文件
    • 支持PRemoteM数据自动迁移
  6. 绿色无需安装:exe版本下载解压即可使用。

实战

安装方式:

choco install 1remote
# 实际指向Microsoft Store地址
winget install 1remote

CrossDesk

官网,一个开源(GitHub,567 Star,57 Fork)轻量级跨平台远程桌面软件。

基于MiniRTC实时音视频传输库的实验性应用。MiniRTC是一个轻量级的跨平台实时音视频传输库。它具有网络透传(RFC5245),视频软硬编解码(H264/AV1),音频编解码(Opus),信令交互,网络拥塞控制,传输加密(SRTP)等基础能力。

最大亮点,不是替代TeamViewer,而是使用你自己的中继服务器(Relay Server),数据只经过你自己的服务器。这意味着:

  1. 绝对隐私:端到端加密,除了你和对方,没人知道你们在传什么。
  2. 更低延迟:服务器可以部署在任何地方,选一个离你最近的。
  3. 零成本运营:一台低配云服务器足矣,告别昂贵的商业订阅。

功能特性:

  • 端到端加密:标配基础功能,区别在于可使用自搭建服务器,确保真加密;
  • 自托管网络:本地化安装部署;
  • 文件传输:基础功能,稳定可靠;
  • 硬件加速支持:支持NVIDIA Video Codec、Video Toolbox硬件加速,支持H.264、AV1编码格式。

Docker部署:

sudo docker run -d \
--name crossdesk_server \
--network host \
-e EXTERNAL_IP=xxx.xxx.xxx.xxx \
-e INTERNAL_IP=xxx.xxx.xxx.xxx \
-e CROSSDESK_SERVER_PORT=xxxx \
-e COTURN_PORT=xxxx \
-e MIN_PORT=xxxxx \
-e MAX_PORT=xxxxx \
-v /path/to/your/certs:/crossdesk-server/certs \
-v /path/to/your/db:/crossdesk-server/db \
-v /path/to/your/logs:/crossdesk-server/logs \
crossdesk/crossdesk-server:v1.0.0

参数解读:

  • EXTERNAL_IP:服务器公网IP,对应CrossDesk客户端自托管服务器配置中填写的服务器地址;
  • INTERNAL_IP:服务器内网IP
  • CROSSDESK_SERVER_PORT:自托管服务使用的端口,对应CrossDesk客户端自托管服务器配置中填写的服务器端口;
  • COTURN_PORT:COTURN服务使用的端口,对应CrossDesk客户端自托管服务器配置中填写的中继服务端口;
  • MIN_PORT/MAX_PORT:COTURN服务使用的端口范围,例如:MIN_PORT=50000,MAX_PORT=60000,范围可根据客户端数量调整;
  • /path/to/your/certs:证书文件目录;
  • /path/to/your/db:CrossDesk Server设备管理数据库;
  • /path/to/your/logs:日志目录;
  • 服务器需开放端口:3478/udp,3478/tcp,MIN_PORT-MAX_PORT/udp,CROSSDESK_SERVER_PORT/tcp。
Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐