在远程办公和技术支持需求日益增长的今天,远程桌面软件已成为不可或缺的工具。然而,许多商业解决方案存在连接限制、隐私风险和平台兼容性问题。CrossDesk作为一款新兴的开源远程桌面软件,以其独特的Web端支持、跨平台兼容性和自托管能力,为用户提供了更灵活的选择。

CrossDesk的核心优势

1. 真正的跨平台支持

CrossDesk打破了平台壁垒,同时支持:

  • Windows 10及以上(64位)
  • macOS Intel 15.0+ / Apple Silicon 14.0+
  • Ubuntu 22.04+(低版本可自行编译)
    这种广泛的兼容性意味着您可以在任何主流操作系统上部署和使用该解决方案。

2. 独特的Web客户端功能

与大多数需要安装客户端的远程软件不同,CrossDesk提供了完整的Web控制端:

  • 通过浏览器直接访问CrossDesk Web Client
  • 支持移动设备远程控制桌面(如iOS Safari控制Win11)
  • 无需安装即可发起远程连接

3. 企业级技术基础

基于MiniRTC实时音视频传输库构建,具备:

  • 网络透传能力(符合RFC5245标准)
  • H264/AV1视频软硬编解码
  • Opus音频编解码
  • SRTP传输加密
  • 网络拥塞控制

4. 轻量化设计

  • 资源占用低
  • 运行速度快
  • 提供开箱即用的安装包

系统要求详解

平台 最低版本要求 特殊说明
Windows Windows 10 (64位) 无特殊要求
macOS Intel: 15.0+
Apple Silicon: 14.0+
14.0-15.0版本需自行编译
Linux Ubuntu 22.04+ 低版本可自行编译

安装与使用指南

标准安装流程

  1. 下载安装包
    访问项目发布页面获取对应平台的安装程序

  2. 基础连接操作

    • 在菜单栏”对端ID”输入远程设备ID
    • 点击”→”发起连接
    发起连接界面
  3. 密码保护连接

    • 如远程设备设置了密码,需输入正确密码
    • 支持在设置中自定义连接参数
    密码输入界面

Web客户端使用

  1. 浏览器访问CrossDesk Web Client
  2. 输入远程设备ID和密码
  3. 点击连接即可控制远程设备
    iOS Safari远程控制Win11示例

高级配置与编译

编译环境准备

依赖工具:

sudo apt-get install -y software-properties-common git curl unzip build-essential libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxfixes-dev libxv-dev libxtst-dev libasound2-dev libsndio-dev libxcb-shm0-dev libasound2-dev libpulse-dev

编译流程

git clone https://github.com/kunkundi/crossdesk.git
cd crossdesk
git submodule init 
git submodule update
xmake b -vy crossdesk

编译选项:

  • --USE_CUDA=true/false:启用CUDA硬件编解码(默认关闭)
  • --CROSSDESK_VERSION=xxx:指定版本号
    示例:
xmake f --CROSSDESK_VERSION=1.0.0 --USE_CUDA=true

无CUDA环境支持方案

Linux开发者:
使用预配置的Ubuntu 22.04 Docker镜像

export CUDA_PATH=/usr/local/cuda
export XMAKE_GLOBALDIR=/data
xmake f --USE_CUDA=true
xmake b --root -vy crossdesk

Windows开发者:

xmake require -vy "cuda 12.6.3"
# 根据输出设置CUDA_PATH环境变量
set CUDA_PATH=path_to_cuda_installdir
xmake f --USE_CUDA=true
xmake b -vy crossdesk

注意:运行时若显示”未连接服务器”,需先安装官方客户端以获取证书文件

自托管服务器部署

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.1.1

关键参数说明:

  • EXTERNAL_IP:服务器公网IP(客户端配置的服务器地址)
  • INTERNAL_IP:服务器内网IP
  • CROSSDESK_SERVER_PORT:服务端口
  • COTURN_PORT:中继服务端口
  • MIN_PORT/MAX_PORT:端口范围(如50000-60000)
  • 证书路径:/path/to/your/certs
  • 数据库路径:/path/to/your/db
  • 日志路径:/path/to/your/logs
    防火墙要求:
    需开放端口:3478/udp,3478/tcp,MIN_PORT-MAX_PORT/udp,CROSSDESK_SERVER_PORT/tcp

SSL证书配置

自动生成证书脚本:

#!/bin/bash
set -e
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <SERVER_IP>"
    exit 1
fi
SERVER_IP="$1"
ROOT_KEY="crossdesk.cn_root.key"
ROOT_CERT="crossdesk.cn_root.crt"
SERVER_KEY="crossdesk.cn.key"
SERVER_CSR="crossdesk.cn.csr"
SERVER_CERT="crossdesk.cn_bundle.crt"
FULLCHAIN_CERT="crossdesk.cn_fullchain.crt"
SUBJ="/C=CN/ST=Zhejiang/L=Hangzhou/O=CrossDesk/OU=CrossDesk/CN=$SERVER_IP"
# 生成根证书
openssl genrsa -out "$ROOT_KEY" 4096
openssl req -x509 -new -nodes -key "$ROOT_KEY" -sha256 -days 3650 -out "$ROOT_CERT" -subj "$SUBJ"
# 生成服务器证书
openssl genrsa -out "$SERVER_KEY" 2048
openssl req -new -key "$SERVER_KEY" -out "$SERVER_CSR" -subj "$SUBJ"
# 创建SAN配置
cat > san.cnf <<EOL
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[ req_distinguished_name ]
C = CN
ST = Zhejiang
L = Hangzhou
O = CrossDesk
OU = CrossDesk
CN = $SERVER_IP
[ req_ext ]
subjectAltName = IP:$SERVER_IP
EOL
# 签发证书
openssl x509 -req -in "$SERVER_CSR" -CA "$ROOT_CERT" -CAkey "$ROOT_KEY" -CAcreateserial \
  -out "$SERVER_CERT" -days 3650 -sha256 -extfile san.cnf -extensions req_ext
cat "$SERVER_CERT" "$ROOT_CERT" > "$FULLCHAIN_CERT"
rm -f "$ROOT_CERT.srl" "san.cnf" "$ROOT_KEY" "$SERVER_CSR" "$FULLCHAIN_CERT"
echo "生成完成:"
echo "  客户端根证书: $ROOT_CERT"
echo "  服务器私钥: $SERVER_KEY"
echo "  服务器证书: $SERVER_CERT"

证书部署:

  1. 服务端:将crossdesk.cn.keycrossdesk.cn_bundle.crt放入证书目录
  2. 客户端:

    • 进入设置页面
    • 选择”自托管服务器配置”
    • 导入crossdesk.cn_root.crt根证书
    • 启用自托管配置
      客户端证书配置

常见问题解答

Q: CrossDesk是否支持移动设备控制?
A: 是的,通过Web客户端可在iOS Safari等移动浏览器中控制远程桌面。
Q: 自托管服务器需要什么配置?
A: 需要公网IP服务器,至少开放3478/udp、3478/tcp和指定端口范围,建议使用Docker部署。
Q: 如何启用硬件加速?
A: 编译时添加--USE_CUDA=true参数,需安装CUDA环境或使用预配置Docker镜像。
Q: 连接时提示”未连接服务器”怎么办?
A: 需先安装官方客户端获取证书文件,或在自托管环境中正确配置证书。
Q: 支持哪些视频编码格式?
A: 支持H264和AV1编解码,可在设置中选择编码格式。
Q: Web客户端功能是否完整?
A: Web客户端提供完整的远程控制功能,包括音视频传输和文件操作。
Q: 如何保证连接安全性?
A: 所有连接采用SRTP加密传输,支持密码保护和证书验证。
Q: Linux低版本系统如何使用?
A: 可通过源码自行编译,需安装相关依赖库。
Q: 是否支持多显示器?
A: 客户端支持多显示器环境,可切换控制不同显示器。
Q: Docker部署数据持久化如何实现?
A: 通过挂载卷实现数据库和日志持久化存储。
CrossDesk作为新兴的开源远程解决方案,通过其独特的Web客户端支持、跨平台兼容性和自托管能力,为个人用户和企业提供了更灵活的远程控制选择。无论是技术支持、远程办公还是设备管理,CrossDesk都能提供安全可靠的连接体验。