Ludovic Frank - Développeur indépendant

Accédez à vos machines partout, simplement, avec RustDesk

ionicons-v5-k Ludovic Frank 1 mai 2025
427 lectures Niveau : Débutant confirmé

Salut, salut 🙂,

Merci d'avoir cliqué sur cet article, j'espère que ça vous plaira 😁.

Aujourd'hui, on va parler de bureau à distance, ouais je sais, dis comme ça, ça vend du rêve.
Mais le truc, c'est que dans ma vie actuelle là, j'en utilise vraiment beaucoup...

Donc, pourquoi ne pas en faire un article ? 😁.

Vous êtes prêts ? On y va ? 😝

Pourquoi cet article ? Un monde multi OS...

Dans ma vie actuelle, je vais passer de Windows à MacOS sans arrêt...

Dans le monde de l'entreprise, Windows est omniprésent, encore plus maintenant qu'avant avec des solutions comme Intune et Entra ID.

Du coup, ma clientèle est sous Windows, je dois connaître Windows, et vous avez déjà vu par le passé que je connais plutôt très bien cet OS, notamment quand j'ai décidé d'injecter du code dans explorer.exe .
D'ailleurs, j'ai même été plus loin en créant du code qui permet de faire une escalade de privilèges... (Devenir administrateur sans respecter le processus "UAC" de Microsoft).

Windows est un système très bien, il fait le boulot, mais...

Je peux faire et dire ce que je veux, je reviens toujours sur mon Mac à la fin, la raison ? macOS et surtout ses logiciels.

Moi, mon plaisir, c'est de faire plaisir aux gens, je veux que l'expérience utilisateur de ce que je crée soit la plus sympa possible et pour m'inspirer j'utilise beaucoup macOS et iOS...

Apple, ils sont beaucoup trop forts à ce petit jeu-là...

Je pense que si je devais donner un exemple de pourquoi macOS, je dirais "Pixelmator Pro".

Oui, je connais Affinity Photo ou encore tout simplement Photoshop mais c'est trop des usines à gaz pour moi.

Je fais des tas d'illustrations à droite à gauche (rien que pour ce blog, je veux quelque chose de rapide et efficace. Et je n'ai jamais rien trouvé de mieux que Pixelmator Pro (et de toute façon je n'ai plus envie de changer).

Ceci étant dit, je vais parfois depuis un PC Windows avoir accès à mes ordinateurs pommés et parfois c'est l'inverse.

C'est pourquoi sur mes machines, j'ai toujours un bureau à distance qui traîne...

Dans le monde de Microsoft le bureau à distance (MS RDP) est roi

Je l'utilise absolument tous les jours, je l'ai configuré de sorte qu'il expose un certificat SSL signé par une vraie autorité de certification, afin de limiter d'éventuelles attaques "man in the middle" sur ma connexion.
Bien sûr le fait d'utiliser un certificat signé par une autorité présente dans le "certificate store" de Windows ne bloque pas le man in the middle, si je ne contrôle pas la machine depuis laquelle je peux me connecter il peut y avoir des certificats "pas cool" dans le trust store.

Mais au moins lors de la connexion, le bureau à distance ne se plaint pas, et de temps en temps je regarde l'état du certificat via le petit cadenas en haut pour vérifier que c'est bien le mien.

Bref, tout ça pour vous dire, que MS RDP je l'utilise tous les jours, car je suis sur un client dans un environnement Microsoft et j'ai besoin de me connecter à un PC Windows.

Quand le client c'est du Windows et que le serveur c'est du Windows, ça marche vraiment très bien... de plus étant intégré à l'OS de Microsoft, le serveur se verrouille sur l'écran donc personne ne peut voir ce que vous faites.

La connexion est ultra fluide, les raccourcis clavier fonctionnent tous sur l'hôte distant (hormis Ctrl+Alt+Suppr mais on ne l'utilise pas souvent)

Vraiment, c'est le top dans ce type d'environnement, on ne se rend même plus compte qu'on est sur une machine distante.

(Sauf pour le jeu vidéo, mais ce n'est pas mon usage, après j'ai lancé WoW.exe à distance pour tester)

Il y a également un client (L'application Windows) pour MS RDP sous macOS, mais ce n'est pas aussi fluide que de Windows à Windows.

RustDesk, ça fonctionne partout

Nous y voilà, au cœur de cet article

Qu'est ce que RustDesk ?

Au premier abord, quand j'ai entendu parler de RustDesk, je me suis dit "self host", "open source", cool mais c'est sûrement une machine à gaz...

Car, on ne va pas se mentir, un des problèmes de l'open source, c'est souvent l'expérience utilisateur, que les flux vidéo et les "inputs" passent par un relais sous notre contrôle, c'est très bien mais si c'est compliqué à mettre en œuvre et à maintenir, c'est complètement mort (et encore plus dans le monde de l'entreprise).

Quand on lance RustDesk pour la première fois, on reconnaît tout de suite l'inspiration : c'est Teamviewer.

Avec le même système d'identifiant et de mot de passe temporaire, en gros je dirais que c'est la même interface mais sans publicité partout.

Du coup, sur le plan de l'UX, je ne suis pas déçu, même si c'est de l'open source, on sent tout de suite qu'il y a des intérêts commerciaux derrière et que donc tout ce qui est UX est travaillé.

Dans l'open source par exemple on peut prendre le cas de VLC, qui est d'un point de vue technique complètement incroyable, il sait tout lire, mais l'interface utilisateur a toujours été un des points "pas fou" de VLC.

Un système que vous pouvez auto héberger

Lors du premier lancement de RustDesk, vous verrez un message vous invitant à créer votre propre serveur pour de meilleures performances.

Et le truc plutôt cool, c'est qu'avec Docker, c'est super simple à faire, moi par exemple je le fais tourner sur mon NAS Synology.

L'auto hébergement, comment ça fonctionne ?

Pour commencer voici un schéma, que j'ai trouvé ici.

RustDesk fonctionne avec deux services sur le serveur :

  • HBBS : C'est le serveur qui permet à vos clients de signaler et de stocker les "id" des différentes machines qui communiquent avec votre serveur. Quand une machine veut se connecter à une autre, elle demande à ce service "dis, tu sais qui est l'ID xxxx ?" et le serveur lui répond oui ou non et si la machine est en ligne.
  • HBBR : C'est tout simplement un relais, si vos machines ne peuvent pas communiquer directement l'une avec l'autre dans le cas d'un NAT par exemple (votre box le fait pour ceux qui l'ignorent) le serveur relais va se mettre entre vos deux machines comme "passe-plat", il ne fait que relayer des informations.

Donc, dans cette configuration, tout passe par votre infrastructure à vous

Docker compose pour déployer votre serveur

RustDesk propose des images docker pour faciliter le déploiement de serveur, comme je le disais plus haut, perso, j'ai déployé ça sur un NAS Synology, ça fonctionne parfaitement.

Vous pouvez également trouver ce docker-compose.yml sur la documentation officielle de RustDesk.

Comme vous le voyez, ils mettent le networking en mode "host", c'est tout simplement car le serveur RustDesk utilise pas mal de ports

Service HBBS (Serveur de signalement)

  • Port 21114 (TCP) : Utilisé pour la console web, uniquement disponible dans la version Pro.
  • Port 21115 (TCP) : Utilisé pour les tests de type NAT.
  • Port 21116 (TCP/UDP) : Le plus important, doit être activé en TCP et UDP. La partie UDP est utilisée pour l'enregistrement des ID et le service de heartbeat. La partie TCP est utilisée pour le "TCP hole punching" et le service de connexion.

Service hbbr (Serveur relais)

  • Port 21117 (TCP) : Utilisé pour les services de relais.

(Je n'inclus pas les ports de la version Pro)

Une fois votre serveur lancé, dans le volume, vous trouverez votre clé publique et votre clé privée, pensez à mettre de côté votre clé publique, vous allez en avoir besoin

Connectez vos machines à votre serveur

Maintenant que le serveur est prêt, il n'y a plus qu'à connecter vos machines à celui-ci.

Pour ce faire dans RustDesk client (peu importe la plateforme), cliquez sur les trois petits points à côté de votre id (le numéro).

Puis, rendez-vous dans "réseau", puis "serveur ID/Relais"

Ici, il ne vous reste plus qu'à mettre votre IP (ou nom de domaine) dans "serveur ID" et "serveur relais"

Enfin, plus bas, mettez votre clé publique, cela permettra à votre client de vérifier qu'il parle bien avec votre serveur et donc cela empêchera les "man in the middle".

Je vous invite également à vous promener dans les options de RustDesk, par exemple pour définir un mot de passe permanent.

RustDesk dans l'usage quotidien

Après avoir tout configuré, il est temps d'utiliser, en fait 😁.

Dans mon cas d'usage, je l'utilise soit de macOS à macOS, soit de Windows à macOS, comme je l'ai dit plus tôt pour Windows vers Windows, je préfère le système de Microsoft.

Pour moi les fonctionnalités qui sont "deal breaker" sont :

  • Le self host, là je parle de faire passer mon image et les mots de passe que je tape par des machines tierces, bon bah là la machine tierce je la contrôle.
  • Pas de "bloatware" : Contrairement à teamviewer, il ne me rappelle pas toutes les 5 secondes que ça doit être utilisé dans un usage commercial et qu'il y a une version payante (oui, teamviewer sont ultra relou avec ça).
  • La possibilité de changer la résolution de l'hôte et adapter la mise à l'échelle côté client
  • La possibilité de sauvegarder le mot de passe de session de l'hôte, de le déverrouiller à la connexion et de le reverrouiller à la déconnexion (MERCI ❤️).
  • Le système de transfert de fichier

En ce qui concerne la fluidité de la solution, cela ne vaut pas un Microsoft Remote Desktop (et encore moins Parsec, pour le gaming) mais quand vous avez besoin de vous connecter pour faire des petites retouches sur Pixelmator Pro, c'est bien pratique.

Conclusion

RustDesk va rester dans ma toolbox, dans un monde où je suis toujours à droite à gauche, ça me permet d'accéder à tous mes ordinateurs (quatre, en tout), peu importe où je suis.

Il est bien pratique mais pas forcément le meilleur choix en fonction de la plateforme, son côté tout terrain lui donne des points qu'un MS RDP n'a pas.

Passez une très bonne semaine et à la prochaine 😁.