原文鏈接:https://github.com/rustdesk/rustdesk/releases
Chat with us: 知乎 | Discord | Reddit
贊助鏈接:https://ko-fi.com/I2I04VU09
遠程桌面軟件,開箱即用,無需任何配置,替代TeamViewer和AnyDesk。您完全掌控數據,不用擔心安全問題。您可以使用我們的注冊/中繼服務器,
或者自己設置,
亦或者開發您的版本。
歡迎大家貢獻代碼, 請看 CONTRIBUTING.md
.
免費公共服務器
以下是您免費使用的服務器,它可能會隨着時間的推移而變化。如果您不靠近其中之一,您的網絡可能會很慢。
- 首爾, AWS lightsail, 1 VCPU/0.5G RAM
- 新加坡, Vultr, 1 VCPU/1G RAM
- 達拉斯, Vultr, 1 VCPU/1G RAM
依賴
桌面版本界面使用sciter, 請自行下載。
基本構建步驟
-
請准備好Rust開發環境和C++編譯環境
-
安裝vcpkg, 正確設置
VCPKG_ROOT
環境變量- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
- Linux/Osx: vcpkg install libvpx libyuv opus
-
運行
cargo run
在Linux上編譯
Ubuntu 18 (Debian 10)
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake
Fedora 28 (CentOS 8)
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel
Arch (Manjaro)
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pulseaudio
安裝vcpkg
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 134505003bb46e20fbace51ccfb69243fbbc5f82
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus
修復libvpx (僅僅針對Fedora)
cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd
構建
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
cargo run
使用Docker編譯
首先克隆存儲庫並構建 docker 容器:
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
然后,每次需要構建應用程序時,運行以下命令:
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
請注意,第一次構建可能需要比較長的時間,因為需要緩存依賴項,后續構建會更快。此外,如果您需要為構建命令指定不同的參數,
您可以在命令末尾的 <OPTIONAL-ARGS>
位置執行此操作。例如,如果你想構建一個優化的發布版本,你可以在命令后跟 ---release
。
將在target下產生可執行程序,請通過以下方式運行調試版本:
target/debug/rustdesk
或者運行發布版本:
target/release/rustdesk
請確保您從 RustDesk 存儲庫的根目錄運行這些命令,否則應用程序可能無法找到所需的資源。另請注意,此方法當前不支持其他Cargo
子命令,
例如 install
或 run
,因為運行在容器里,而不是宿主機上。
把Wayland修改成X11 (Xorg)
RustDesk暫時不支持Wayland,不過正在積極開發中.
請查看this配置X11.
文件結構
- libs/hbb_common: 視頻編解碼, 配置, tcp/udp封裝, protobuf, 文件傳輸相關文件系統操作函數, 以及一些其他實用函數
- libs/scrap: 截屏
- libs/enigo: 平台相關的鼠標鍵盤輸入
- src/ui: GUI
- src/server: 被控端服務,audio/clipboard/input/video服務, 已經連接實現
- src/client.rs: 控制端
- src/rendezvous_mediator.rs: 與rustdesk-server保持UDP通訊, 等待遠程連接(通過打洞直連或者中繼)
- src/platform: 平台服務相關代碼