RustDesk self‑hosté : déployer un serveur local (hbbs + hbbr)
Objectif : héberger soi‑même RustDesk pour que toutes les connexions passent par votre infrastructure, sans dépendre du cloud public. Idéal pour la confidentialité, la conformité et les faibles latences en LAN.
Pourquoi un serveur local ?
- Confidentialité & contrôle : clés et métadonnées restent on‑prem (flux chiffré E2E).
- Moins de latence : trafic local entre postes du même site.
- Résilience : accès à vos machines même sans Internet (intranet).
- Conformité : localisation des données (RGPD) et politique sécurité de l’entreprise.
- Coût : édition communautaire open‑source (AGPL), pas d’abonnement.
RustDesk, c’est quoi ? À quoi ça sert ?
RustDesk est un logiciel de prise en main à distance open‑source (AGPL) et multi‑plateforme (Windows, macOS, Linux, Android, iOS). C’est une alternative à TeamViewer/AnyDesk qui peut fonctionner soit via le réseau public par défaut, soit en mode self‑host avec votre propre serveur (hbbs + hbbr).
- Accès à distance sécurisé : chiffrement de bout en bout, mot de passe d’accès sans surveillance.
- Fonctionnalités essentielles : partage d’écran, clavier/souris, transfert de fichiers, presse‑papiers, chat.
- Traverse les NAT/pare‑feu : connexion directe P2P si possible, sinon relais via hbbr.
- Déploiement simple : binaire portable/installer, packages pour NAS/VM, et images Docker pour le serveur.
Pourquoi l’héberger en local ?
- Confidentialité & contrôle : vos métadonnées restent on‑prem et vous maîtrisez la clé serveur.
- Latence réduite : connexions plus courtes pour les postes du même site.
- Résilience : accès en intranet même en cas de coupure Internet.
- Conformité : localisation des données (RGPD) et politique sécurité interne.
- Coût : l’édition communautaire est gratuite ; l’édition Pro ajoute des fonctions d’admin centralisée (optionnelle).
Architecture en 2 briques
hbbs (ID / rendezvous)
- Attribue les ID et négocie la session (découverte NAT).
- Ports :
21115/tcp
(ID),21116/tcp+udp
(handshake),21118/tcp
(WebSocket).
hbbr (relay)
- Relais du flux si le P2P direct échoue (NAT strict / firewall).
- Port :
21117/tcp
(optionnellement UDP selon config).
Déploiement rapide (Docker sur NAS/VM)
Créer un dossier persistant :
mkdir -p /volume1/docker/rustdesk
Lancer hbbs (serveur d’ID) :
docker run -d --name rustdesk-hbbs \
-p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 \
-v /volume1/docker/rustdesk:/root \
rustdesk/rustdesk-server hbbs
Récupérer la clé du serveur (à copier côté clients, champ Key) :
docker logs --tail=50 rustdesk-hbbs | grep 'Key:'
Lancer hbbr (relay) en partageant le même volume :
docker run -d --name rustdesk-hbbr \
-p 21117:21117 \
-v /volume1/docker/rustdesk:/root \
rustdesk/rustdesk-server hbbr
docker update --restart unless-stopped rustdesk-hbbs rustdesk-hbbr
Configuration des clients
- Ouvrir Paramètres → Réseau → Serveur ID/relais.
- Renseigner :
- Serveur ID :
IP_du_NAS
- Serveur relais :
IP_du_NAS
- Key : collez la chaîne base64 vue dans les logs (
Key: ...=
)
- Serveur ID :
- Valider, puis redémarrer RustDesk.
- Sur la machine à contrôler : activer Accès sans surveillance et définir un mot de passe.
Accès depuis Internet (facultatif)
Rediriger dans votre routeur vers le NAS : 21115/tcp
, 21116/tcp+udp
, 21117/tcp
. Utiliser un DDNS (ex : xxx.synology.me
). Limiter l’exposition (filtrage IP, pare‑feu).
Sécurité & bonnes pratiques
- Conserver/backup des fichiers
/volume1/docker/rustdesk/id_ed25519*
. - Un même volume pour hbbs/hbbr → même clé → pas de « discordance des clés ».
- Mots de passe forts pour l’accès sans surveillance et MFA système quand possible.
- Pare‑feu Synology/iptables : n’ouvrir que les ports nécessaires.
Diagnostic rapide
docker ps
: les deux conteneurs doivent être Up.docker logs --tail=200 rustdesk-hbbs
: recherche des lignesupdate_pk
lors des connexions clients.- Discordance des clés : vérifier que la Key collée côté client correspond exactement à celle des logs ; supprimer tout ancien fichier
id_ed25519.pub
local.
Cheat‑sheet
# Voir la clé serveur
docker logs rustdesk-hbbs | grep 'Key:'
# Redémarrer les services
docker restart rustdesk-hbbs rustdesk-hbbr
# Sauvegarder les clés
cp /volume1/docker/rustdesk/id_ed25519* /volume1/backup/rustdesk/
# Nettoyage complet (avec prudence)
docker stop rustdesk-hbbs rustdesk-hbbr && docker rm rustdesk-hbbs rustdesk-hbbr
rm -rf /volume1/docker/rustdesk/*
Édition communautaire open‑source : gratuite et suffisante pour un usage perso/PME. Une édition Pro ajoute des fonctions d’admin centralisée (optionnelle).