Configurer les serveurs de relais

RustDesk Pro - Installer des serveurs de relais supplémentaires avec géolocalisation en utilisant docker

Note

L’installation simple crée un serveur de relais (le processus hbbr) implicitement sur la même machine, vous n’avez pas besoin de spécifier le serveur de relais explicitement.

Si vous souhaitez créer un serveur de relais supplémentaire explicitement sur une autre machine, veuillez exécuter hbbr en suivant l’installation OSS. Vous pouvez trouver hbbr dans rustdesk-server-linux-amd64.tar.gz, rustdesk-server-hbbr_<version>-<arch>.deb, rustdesk-server-windows-x86_64.tar.gz ou dans docker (sudo docker run ... rustdesk/rustdesk-server-pro hbbr).

hbbr ne nécessite pas de licence et est identique à la version open source.

Vous pouvez avoir plusieurs serveurs de relais fonctionnant à travers le globe et exploiter la géolocalisation automatiquement pour utiliser le serveur de relais le plus proche, vous donnant une expérience plus rapide lors de la connexion aux ordinateurs distants. hbbs vérifie automatiquement si ces serveurs de relais sont en ligne toutes les quelques secondes, il ne choisit que les serveurs de relais en ligne.

Vous aurez besoin de la paire de clés privées id_ed25519 et id_ed25519.pub.

1 - Si docker est déjà installé, connectez-vous à votre serveur via SSH et créez un volume pour hbbr.

# docker volume create hbbr

Le volume hbbr devrait être situé dans /var/lib/docker/volumes/hbbr/_data.

2 - Copiez la paire de clés privées vers l’emplacement du volume, dans ce cas nous utiliserons SCP pour copier les fichiers.

La syntaxe de la commande est scp <chemin/nom_fichier> nom_utilisateur@serveur:</chemin/destination>.

# 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 - Déployez le conteneur hbbr en utilisant le volume précédemment créé. Ce volume contient la paire de clés privées nécessaire pour exécuter votre serveur de relais privé.

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

4 - Vérifiez les journaux d’exécution pour vérifier que hbbr fonctionne en utilisant votre paire de clés.

# 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

Selon votre OS, vous pourriez vouloir bloquer/autoriser les IPs en utilisant un pare-feu.

Dans notre cas, en exécutant Ubuntu nous voulons autoriser toutes les connexions TCP, vers les ports 21117 et 21119.

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

Activer le pare-feu

# sudo ufw enable

Vérifier le statut

# ufw status

Status: active

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

Configurer RustDesk Pro pour la géolocalisation en utilisant la console Web

Enregistrer et télécharger le fichier de base de données GeoLite2 City

Pour utiliser la géolocalisation, hbbs a besoin d’accéder à la base de données MaxMind GeoLite2 City. La base de données est gratuite et vous pouvez vous enregistrer pour télécharger le fichier et obtenir une clé API.

Commencez par créer un compte (si vous n’en avez pas) en allant sur le site web. Allez à Download Databases et téléchargez GeoLite2 City, choisissez le fichier gzip et vous devriez avoir le fichier mmdb lors de la décompression.

image

Si vous avez installé RustDesk Pro en utilisant le script d’installation sur une machine Linux, le fichier mmdb doit être déplacé vers /var/lib/rustdesk-server/.

Pour les installations Docker, le fichier devrait être dans le volume que vous avez mappé lors du déploiement du conteneur mappé vers /root.

Obtenir une clé API pour automatiser le processus - serveurs Linux

Vous devez mettre à jour ce fichier régulièrement et nous pouvons utiliser un cronjob pour cela. Vous aurez besoin d’une clé API pour accéder au lien de téléchargement qui est gratuit.

Allez à Manage License Keys et générez une nouvelle clé de licence.
image
image

Vous pouvez automatiser le processus de téléchargement de plusieurs façons, mais vous ajoutez la commande suivante à votre crontab en remplaçant {Your Access Key} par la clé API que vous avez obtenue de l’étape précédente.

/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'

Modifier les paramètres dans la console Web RustDesk Pro

Ajoutez vos adresses IP ou noms DNS des serveurs de relais (DNS est supporté depuis la version 1.1.11) aux Serveurs de relais. Le port n’est pas requis, le port 21117 est utilisé explicitement.
image

Ajoutez un remplacement géographique en ajoutant l’adresse IP du serveur et les coordonnées où se trouve le serveur.
image

Cliquez sur Reload Geo et votre liste devrait ressembler à ceci.
image

Pour confirmer les résultats, vérifiez vos journaux hbbs lors du clic sur Reload Geo, vous devriez voir un message montrant les adresses IP des serveurs de relais et leurs coordonnées.

Si vous exécutez RustDesk Pro sur une machine Linux utilisez la commande RUST_LOG=debug ./hbbs pour afficher les journaux. Si vous exécutez sur un conteneur Docker utilisez 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)))]

Vous pouvez également confirmer les demandes de relais directement sur vos instances hbbr, simplement en vérifiant les journaux du conteneur.

# 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