Relay-Server konfigurieren

RustDesk Pro - Zusätzliche Relais-Server mit Geo-Standort mit Docker installieren

Die einfache Installation erstellt implizit einen Relay-Server (den Prozess hbbr) auf demselben Rechner. Sie müssen den Relay-Server nicht explizit angeben.

Wenn Sie einen zusätzlichen Relay-Server explizit auf einem anderen Rechner einrichten wollen, führen Sie bitte hbbr aus, indem Sie der OSS-Installation folgen. Sie finden hbbr in rustdesk-server-linux-amd64.tar.gz, rustdesk-server-hbbr_<version>-<arch>.deb, rustdesk-server-windows-x86_64.tar.gz oder in docker (sudo docker run ... rustdesk/rustdesk-server-pro hbbr).

hbbr benötigt keine Lizenz und ist die gleiche wie die Open-Source-Version.

Sie können mehrere Relay-Server auf der ganzen Welt betreiben und GeoLocation nutzen, um den nächstgelegenen Relay-Server zu verwenden, sodass Sie eine schnellere Verbindung zu entfernten Computern herstellen können.

Sie benötigen das private Schlüsselpaar id_ed25519 und id_ed25519.pub.

1 - Wenn Docker bereits installiert ist, verbinden Sie sich über SSH mit Ihrem Server und erstellen Sie ein Volume für hbbr.

# docker volume create hbbr

Das Volume hbbr sollte sich in /var/lib/docker/volumes/hbbr/_data befinden.

2 - Kopieren Sie das private Schlüsselpaar an den Speicherort des Volumes, in diesem Fall verwenden wir SCP, um die Dateien zu kopieren.

Die Befehlssyntax lautet: scp <path/filename> username@server:</destination/path>.

# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data

3 - Stellen Sie den hbbr-Container unter Verwendung des zuvor erstellten Volumes bereit. Dieses Volume enthält das private Schlüsselpaar, das für die Ausführung Ihres privaten Relay-Servers benötigt wird.

# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _

4 - Überprüfen Sie in den Logs, ob hbbr mit Ihrem Schlüsselpaar läuft.

# docker logs hbbr

INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117

Je nach Betriebssystem können Sie IPs mithilfe einer Firewall blockieren oder zulassen.

In unserem Fall mit Ubuntu wollen wir alle TCP-Verbindungen zu den Ports 21117 und 21119 zulassen.

# sudo ufw allow proto tcp from any to any port 21117,21119

Firewall aktivieren

# sudo ufw enable

Status prüfen

# ufw status

Status: active

To                         Action      From
--                         ------      ----
21117,21119/tcp            ALLOW       Anywhere
21117,21119/tcp (v6)       ALLOW       Anywhere (v6)

RustDesk Pro für Geolocation über die Webkonsole konfigurieren

GeoLite2 City-Datenbankdatei registrieren und herunterladen

Um Geolocation zu nutzen, benötigt hbbs Zugriff auf die MaxMind GeoLite2 City-Datenbank. Die Datenbank ist kostenlos und Sie können sich registrieren, um die Datei herunterzuladen und einen API-Schlüssel zu erhalten.

Erstellen Sie zunächst ein Konto (falls Sie noch keines haben), indem Sie die Website aufrufen. Gehen Sie zu Download Databases, wählen Sie die gzip-Datei und laden Sie GeoLite2 City herunter. Nach dem Dekomprimieren sollten Sie die Datei mmdb haben.

image

Wenn Sie RustDesk Pro mit Hilfe des Installationsskripts auf einem Linux-Rechner installiert haben, muss die Datei mmdb nach /var/lib/rustdesk-server/ verschoben werden.

Bei Docker-Installationen sollte sich die Datei in dem Volume befinden, das Sie bei der Bereitstellung des Containers auf /root zugeordnet haben.

Einen API-Schlüssel erhalten, um den Prozess zu automatisieren - Linux-Server

Sie müssen diese Datei regelmäßig aktualisieren und wir können einen Cronjob dafür verwenden. Für den Zugriff auf den kostenlosen Download-Link benötigen Sie einen API-Schlüssel.

Gehen Sie zu Manage License Keys und erzeugen Sie einen neuen Lizenzschlüssel.
image
image

Sie können den Download-Prozess auf verschiedene Weise automatisieren. Fügen Sie den folgenden Befehl zu Ihrer crontab hinzu und ersetzen Sie {Your Access Key} durch den API-Schlüssel, den Sie im vorherigen Schritt erhalten haben.

/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={Your Access Key}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'

Einstellungen in der RustDesk Pro Webkonsole ändern

Fügen Sie die IP-Adressen oder DNS-Namen Ihrer Relay-Server (DNS wird ab Version 1.1.11 unterstützt) zu den Relay-Servern hinzu. Der Port ist nicht erforderlich, der Port 21117 wird explizit verwendet.
image

Fügen Sie einen Geo-Override hinzu, indem Sie die IP-Adresse des Servers und die Koordinaten des Serverstandorts angeben.
image

Klicken Sie auf Reload Geo und Ihre Liste sollte in etwa so aussehen.
image

Um die Ergebnisse zu bestätigen, überprüfen Sie Ihre hbbs-Protokolle, wenn Sie auf Reload Geo klicken. Sie sollten eine Meldung mit den IP-Adressen der Relay-Server und deren Koordinaten sehen.

Wenn Sie RustDesk Pro auf einem Linux-Rechner ausführen, verwenden Sie den Befehl RUST_LOG=debug ./hbbs, um die Protokolle einzusehen. Wenn Sie auf einem Docker-Container arbeiten, verwenden Sie docker logs hbbs.

RUST_LOG=debug ./hbbs

INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]

Sie können die Relay-Anfragen auch direkt auf Ihren hbbr-Instanzen bestätigen, indem Sie einfach die Containerprotokolle überprüfen.

# docker logs hbbr

INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw