Signed-off-by: 21pages <pages21@163.com>
11 KiB
Servers •
Bouwen •
Docker •
Structuur •
Snapshot
[English] | [Українська] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Ελληνικά]
Wij hebben uw hulp nodig om dit README bestand te vertalen, RustDesk UI en Doc naar uw moedertaal
Chat met ons: Discord | Twitter | Reddit
Alweer een andere programma voor -bureaublad op afstand-, geschreven in Rust. Werkt -out of the box-, geen configuratie nodig. U heeft volledige controle over uw gegevens, en hoeft zich geen zorgen te maken over de beveiliging. U kunt onze rendez-vous/relay server gebruiken, je eigen server opzetten, of je eigen rendez-vous/relay-server schrijven.
RustDesk verwelkomt bijdragen van iedereen. Zie docs/CONTRIBUTING.md
voor hulp om aan de slag te gaan.
NIGHTLY BUILD (meest recente build)
Gratis openbare servers
Hieronder staan de servers die u gratis gebruikt, ze kunnen in de loop van de tijd veranderen. Als u niet in de buurt van een van deze servers bevindt, kan uw vervinding langzamer zijn.
Locatie | Aanbieder | Specificaties |
---|---|---|
Seoul | AWS lightsail | 1 vCPU / 0.5GB RAM |
Duitsland | Hetzner | 2 vCPU / 4GB RAM |
Duitsland | Codext | 4 vCPU / 8GB RAM |
Finland (Helsinki) | Netlock | 4 vCPU / 8GB RAM |
USA (Ashburn) | Netlock | 4 vCPU / 8GB RAM |
Oekraine (Kyiv) | dc.volia | 2 vCPU / 4GB RAM |
Dev Container
Als u VS Code en Docker al hebt geinstalleerd, kunt u op de bovenstaande badge klikken om te beginnen. Door te klikken zal VS Code automatisch de Dev Containers-extensie installeren indien nodig, de broncode klonen naar een containervolume en een dev container opstarten voor gebruik.
Bekijk DEVCONTAINER.md voor meer informatie.
Afhankelijkheden
Desktop versies gebruiken sciter of Flutter voor GUI, deze handleiding is alleen voor Sciter.
Download zelf de dynamic library van Sciter.
Ruwe stappen om te bouwen
-
Bereid je Rust-ontwikkelomgeving en C++-bouwomgeving voor.
-
Installeer vcpkg en configureer de
VCPKG_ROOT
omgevingsvariabele op de juiste manier:- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus aom
-
Voer uit:
cargo run
Bouwen
Bouwen op 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
openSUSE Tumbleweed
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel
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 pipewire
Installatie van vcpkg
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom
Fix voor libvpx (voor 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
Bouwen
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
VCPKG_ROOT=$HOME/vcpkg cargo run
Wissel van Wayland naar X11 (Xorg)
RustDesk ondersteunt Wayland niet. Lees hier hoe je Xorg als standaardsessie kunt instellen voor GNOME.
Wayland support
Wayland lijkt geen API te bieden voor het verzenden van toetsaanslagen naar andere vensters. Daarom gebruikt de rustdesk een API van een lager niveau, namelijk het /dev/uinput
apparaat (Linux kernel niveau).
Als wayland de gecontroleerde kant is, moet je op de volgende manier beginnen:
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
Let op: Wayland schermopname gebruikt verschillende interfaces. RustDesk ondersteunt momenteel alleen org.freedesktop.portal.ScreenCast.
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
Bouwen met Docker
Begin met het klonen van de repository en het bouwen van de docker container:
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
Elke keer dat u de toepassing moet bouwen, voert u het volgende commando uit:
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
Let op dat de eerste build langer kan duren omdat de dependencies nog niet zijn gecached; latere builds zullen sneller zijn. Als je extra command line arguments wilt toevoegen aan het build-commando, dan kun je dat doen aan het einde van de opdrachtregel in plaats van <OPTIONAL-ARGS>
. Bijvoorbeeld: als je een geoptimaliseerde releaseversie wilt bouwen, draai dan het bovenstaande commando gevolgd door --release
.
Het uitvoerbare bestand, in debug-modus, zal verschijnen in de target-map, en kan als volgt worden uitgevoerd:
target/debug/rustdesk
Als je een release-versie hebt gebouwd, is het commando als volgt:
target/release/rustdesk
Zorg ervoor dat je deze commando's van de root van de RustDesk-repository uitvoert, anders kan het programma de nodige afhankelijkheden mogelijk niet vinden. Let ook op dat andere cargo-subcommando's zoals install
en run
zijn momenteel niet ondersteund, aangezien deze zouden worden uitgevoerd in een container in plaats van op de host.
Bestandsstructuur
- libs/hbb_common: videocodec, configuratie, TCP/UDP-wrapper, protobuf, bestandssysteemfuncties voor bestandsoverdracht en nog wat andere nuttige functies
- libs/scrap: schermopname
- libs/enigo: platformspecifieke muis- en toetsenbordbeheer
- src/ui: GUI
- src/server: geluids-, klembord-, invoer- en video-services, netwerkverbindingen
- src/client.rs: voor het opzetten van peer-verbindingen
- src/rendezvous_mediator.rs: Communicatie met rustdesk-server, afwachten van redirect op afstand (TCP hole punching) of een relayed verbinding
- src/platform: platformspecifieke code