Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Neonration/crossdesk

Repository files navigation

CrossDesk

Featured|HelloGitHub Platform License: LGPL v3 GitHub last commit Build Status
Docker Pulls GitHub issues GitHub stars GitHub forks

[ English / 中文 ]

PC 客户端 sup_example

Web 客户端

6bddcbed47ffd4b9988a4037c7f4f524

简介

CrossDesk 是一个轻量级的跨平台远程桌面软件,支持 Web 端控制远程设备。

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

系统要求

平台 最低版本
Windows Windows 10 及以上 (64 位)
macOS macOS Intel 15.0 及以上 ( 大于 14.0 小于 15.0 的版本可自行编译实现兼容 )
macOS Apple Silicon 14.0 及以上
Linux Ubuntu 22.04 及以上 ( 低版本可自行编译实现兼容 )

使用

在菜单栏"对端ID"处输入远端桌面的ID,点击"→"即可发起远程连接。

usage1

如果远端桌面设置了连接密码,则本端需填写正确的连接密码才能成功发起远程连接。

password

发起连接前,可在设置中自定义配置项,如语言、视频编码格式等。 settings

Web 客户端

浏览器访问 CrossDesk Web Client。 输入 远程设备 ID密码,点击连接即可接入远程设备。如图,iOS Safari 远程控制 Win11:

_cgi-bin_mmwebwx-bin_webwxgetmsgimg__ MsgID=932911462648581698 skey=@crypt_1f5153b1_b550ca7462b5009ce03c991cca2a92a7 mmweb_appid=wx_webfilehelper

如何编译

依赖:

Linux环境下需安装以下包:

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: 指定 CrossDesk 的版本
# 示例
xmake f --CROSSDESK_VERSION=1.0.0 --USE_CUDA=true

运行

xmake r crossdesk

无 CUDA 环境下的开发支持

对于未安装 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

对于未安装 CUDA 环境的 Windows 开发者,执行下面的命令安装 CUDA 编译环境:

xmake require -vy "cuda 12.6.3"

安装完成后执行:

xmake require --info "cuda 12.6.3"

输出如下:

Image

根据上述输出获取到 CUDA 的安装目录,即 installdir 指向的位置。将 CUDA_PATH 加入系统环境变量,或在终端中输入:

set CUDA_PATH=path_to_cuda_installdir

重新执行:

xmake f --USE_CUDA=true
xmake b -vy crossdesk

注意

运行时如果客户端状态栏显示 未连接服务器,请先在 CrossDesk 官方网站 安装客户端,以便在环境中安装所需的证书文件。

image

关于 Xmake

安装 Xmake

使用 curl:

curl -fsSL https://xmake.io/shget.text | bash

使用 wget:

wget https://xmake.io/shget.text -O - | bash

使用 powershell:

irm https://xmake.io/psget.text | iex

编译选项

# 切换编译模式
xmake f -m debug/release
# 可选编译参数
-r :重新构建目标
-v :显示详细的构建日志
-y :自动确认提示
# 示例
xmake b -vy crossdesk

运行选项

# 使用调试模式运行
xmake r -d crossdesk

更多使用方法可参考 Xmake官方文档

自托管服务器

推荐使用Docker部署CrossDesk Server。

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 /var/lib/crossdesk:/var/lib/crossdesk \
 -v /var/log/crossdesk:/var/log/crossdesk \
 crossdesk/crossdesk-server:v1.1.3

上述命令中,用户需注意的参数如下:

参数

  • 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,范围可根据客户端数量调整。
  • -v /var/lib/crossdesk:/var/lib/crossdesk:持久化数据库和证书文件到宿主机
  • -v /var/log/crossdesk:/var/log/crossdesk:持久化日志文件到宿主机

示例:

sudo docker run -d \
 --name crossdesk_server \
 --network host \
 -e EXTERNAL_IP=114.114.114.114 \
 -e INTERNAL_IP=10.0.0.1 \
 -e CROSSDESK_SERVER_PORT=9099 \
 -e COTURN_PORT=3478 \
 -e MIN_PORT=50000 \
 -e MAX_PORT=60000 \
 -v /var/lib/crossdesk:/var/lib/crossdesk \
 -v /var/log/crossdesk:/var/log/crossdesk \
 crossdesk/crossdesk-server:v1.1.3

注意:

  • 服务器需开放端口:COTURN_PORT/udp,COTURN_PORT/tcp,MIN_PORT-MAX_PORT/udp,CROSSDESK_SERVER_PORT/tcp。
  • 如果不挂载 volume,容器删除后数据会丢失
  • 证书文件会在首次启动时自动生成并持久化到宿主机的 /var/lib/crossdesk/certs 路径下
  • 数据库文件会自动创建并持久化到宿主机的 /var/lib/crossdesk/db/crossdesk-server.db 路径下
  • 日志文件会自动创建并持久化到宿主机的 /var/log/crossdesk/ 路径下

权限注意:如果 Docker 自动创建的目录权限不足(属于 root),容器内用户无法写入,会导致:

  • 证书生成失败,容器启动脚本会报错退出
  • 数据库目录创建失败,程序会抛出异常并崩溃
  • 日志目录创建失败,日志文件无法写入(但程序可能继续运行)

解决方案:在启动容器前手动设置权限:

sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk
sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk

客户端

  1. 点击右上角设置进入设置页面。

    image

  2. 点击点击自托管服务器配置按钮。

    image

  3. 输入服务器地址(EXTERNAL_IP)、信令服务端口(CROSSDESK_SERVER_PORT)、中继服务端口(COTURN_PORT)。

    image

  4. 后续如果自托管服务器被重置或因其他原因导致证书更换,可以点击重置证书指纹按钮重置客户端保存的证书指纹。

    image

Web 客户端

详情见项目 CrossDesk Web Client

常见问题

常见问题

About

A lightweight, cross-platform remote desktop software with support for Web Client access | 一款支持 Web 客户端访问的轻量级跨平台远程桌面软件。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • C++ 98.7%
  • Other 1.3%

AltStyle によって変換されたページ (->オリジナル) /