crossdesk 中文使用教程
2026-08-10发表于
Audio Streaming一、速览
入门
CrossDesk 是一款轻量级跨平台远程桌面软件,最大的特点是支持 Web 客户端访问——被控端需要安装客户端,控制端可以用浏览器直接接入。它基于自研的 MiniRTC 实时音视频传输库构建,底层走 WebRTC 协议族,默认具备媒体加密(SRTP)、拥塞控制和内网穿透能力。
相比 TeamViewer、向日葵这类商业工具,CrossDesk 的核心差异体现在三处:一是无账号体系,设备启动后自动分配一个对端 ID,双方通过 ID 直连;二是可自托管,官方提供服务器端 Docker 镜像,能搭建独立的信令和 TURN 服务;三是技术栈开放,基于 C++ 和现代 WebRTC 标准,开发者可以复用其底层库构建自己的远程控制方案。
该项目的当前热度为 4.2k Star,核心代码用 C++ 实现,支持 Windows、macOS、Linux 三大桌面平台,适合需要远程办公、临时技术支持或想研究 WebRTC 远程控制实现细节的开发者。
二、设计理念
进阶 · 推荐细读
CrossDesk 的心智模型很简洁:设备 ID 是网络地址,连接密码是访问凭证。每个运行的被控端实例会从信令服务器获取一个全局唯一的 ID,发起方在输入框填入该 ID 并点击连接,信令层负责交换 SDP、ICE 候选,最终建立 P2P 传输通道。整个过程类似于“打电话”——只认号码,不依赖账号关系。
这一设计背后,是 MiniRTC 库提供了完整的实时音视频基础设施:包括 RFC 5245 定义的 ICE 透传(含 STUN/TURN)、H264/AV1 软硬编解码、Opus 音频、SRTP 传输加密以及拥塞控制。CrossDesk 实质上是这个传输库的“试验场”,因此项目在架构上刻意保持轻量——客户端本体以 ImGui 构建界面,函数库边界清晰,方便剥离和复用。
另一个值得注意的约定是密码的粒度为设备级,而非用户级。被控端在设置中开启密码后,所有控制方都需要通过该密码验证。这种设计牺牲了细粒度权限控制,但换来了极低的配置成本,契合个人与小型团队场景。
三、快速开始
入门
启动 CrossDesk 客户端后,主界面会直接显示本机被控 ID,这个 ID 由信令服务器生成,每次可能变化。在同一局域网或经互联网可达的网络环境里,另一台设备输入该 ID,点击方向键按钮即可发起连接。
如果被控端设置了连接密码,控制端需先填入密码,验证通过后进入桌面画面。连接成功后,可实时查看屏幕、传输音频,并通过鼠标键盘进行交互。
连接行为受设置项影响,常见配置包括切换到中文界面、选择视频编码格式(H264/AV1)、开启或关闭音频传输。这里需要注意,编码格式的可用性取决于本机硬件能力——例如 AV1 软编在老旧 CPU 上可能产生较高延迟。
控制端也可以不安装任何原生程序,使用浏览器访问 Web 客户端地址,输入被控端 ID 和密码即可接入。该方式适合 iPad、手机等移动设备,也适合临时借用他人电脑的环境。
建议使用 Chrome 或 Safari 最新版本,以获取完整的 WebRTC 支持。
四、核心概念
深入 · 老手可选
要理解 CrossDesk 的连接生命周期,需要把握三个角色:被控端(提供桌面数据)、信令服务器(协调连接)和 TURN 服务器(穿透失败时中转)。被控端启动后持续向信令服务器发起 WebSocket 长连接,并周期性上报自身状态;控制端通过信令服务器查询目标 ID 的在线信息并协商媒体参数。
连接建立后,媒体流直接走 P2P 通道,视频帧经过 H264/AV1 编码后封装为 RTP 包,叠加 SRTP 加密。期间 MiniRTC 负责动态码率调节和丢包重传,因此弱网下的画面模糊是拥塞控制的正常表现,而非连接中断。
Windows 平台还包含一个辅助服务 CrossDeskService,用于支持锁屏界面、登录界面以及安全桌面(Ctrl+Alt+Del) 场景下的远程控制。普通远程桌面程序在这类受保护桌面上无法捕获键盘鼠标,而该服务通过系统调用注入输入事件,从而提供完整支持。
该服务在安装客户端时自动注册,与主程序共存于同一目录。若将来需要手动管理,可通过管理员 PowerShell 执行以下命令:
# 安装
.\CrossDesk.exe --service-install
# 启动
.\CrossDesk.exe --service-start
# 查看状态
.\CrossDesk.exe --service-status
# 停止
.\CrossDesk.exe --service-stop
# 卸载
.\CrossDesk.exe --service-uninstall
当远端服务不可用时,基础远程桌面仍可工作,只是上述受保护场景的功能会受限。客户端会显示“远端 Windows 服务不可用”的提示,此时建议检查服务状态或重新安装客户端。
五、生态与扩展
进阶 · 推荐细读
CrossDesk 的生态目前集中在两个方面:官方 Web 客户端和可自部署的服务器组件。Web 客户端的价值在于“零安装”,只需浏览器即可接入远程设备,极大降低了使用门槛。而服务器端镜像 crossdesk/crossdesk-server 允许开发者搭建私有信令和穿透服务,数据流完全由自己掌控,适合有内网穿透需求或安全合规要求的团队。
部署私有服务器时,需配置以下环境变量:
INTERNAL_IP # 服务器内网 IP
COTURN_PORT # TURN 服务监听端口,对应客户端配置
MIN_PORT # TURN 端口范围下限
MAX_PORT # TURN 端口范围上限
若不挂载持久化卷,容器删除后相关配置和数据会丢失,建议在部署时绑定数据目录。
对于想深入改造的开发者,MiniRTC 库本身是独立项目,CrossDesk 的所有媒体传输能力都可以脱离桌面应用单独使用。这意味着你可以复用其信令、编解码和网络库,快速打造面向特定场景的远程工具,例如 IoT 设备监控、无人值守运维等。
目前项目仍处于快速迭代期,GitHub 上提交频繁,社区以中文用户为主。如果你对 WebRTC 远程控制实现感兴趣,直接阅读其源码是比阅读文档更高效的学习路径。
项目信息
| 项目 | 值 |
|---|---|
| 仓库 | kunkundi/crossdesk |
| 语言 | C++ |
| Star | 4,225 |
| Fork | 402 |
| 主页 | https://www.crossdesk.cn |
参考链接
121
72
1
1345
文章目录
评论