Création d'un réseau local virtuel pour connecter Windows, Mac et Linux : solution pratique pour la collaboration multi-appareils

Limites des approches existantes

Les méthodes courantes pour l'accès inter-appareils présentent chacune des inconvénients :

  • SMB / AFP / NFS : ne fonctionnent que dans un réseau local physique, inutilisables en dehors.
  • Synchronisation cloud : préoccupations de confidentialité, lenteur, dépendance à la vitesse du service.
  • SSH / SCP / SFTP : nécessitent des commandes manuelles, peu pratiques pour les échanges fréquents.
  • IP publique + redirection de port : expose les services internes à Internet, risque de sécurité élevé.

Principe fondamental : Overlay Network et traversée NAT

Qu'est-ce qu'un Overlay Network ?

Un réseau local traditionnel repose sur la topologie physique — tous les appareils connectés au même routeur ou switch. Un Overlay Network (réseau superposé) construit une couche logicielle sur Internet existant : chaque appareil installe un client et obtient une IP virtuelle (par exemple, 100.x.x.x). La communication entre appareils est routée via ces adresses virtuelles, la couche physique devenant transparente pour la couche supérieure.


Couche physique :  AppareilA (domicile) ──── Internet ──── AppareilB (bureau)
Couche virtuelle : 100.66.1.2  ←── tunnel chiffré ──→  100.66.1.3

Les applications ne voient que les IP virtuelles, ignorant la couche sous-jacente (WiFi, 4G) et les NAT intermédiaires.

Traversée NAT : établissement d'une connexion P2P

La plupart des appareils sont derrière un NAT (routeur domestique, passerelle d'entreprise) sans IP publique, impossibles à joindre directement. La traversée NAT vise à établir une liaison directe entre deux appareils cachés, principalement via STUN + Hole Punching :

  1. Les deux appareils envoient des requêtes à un serveur de coordination STUN sur Internet, qui enregistre leurs IP et ports publics.
  2. Le serveur échange les informations d'adresse entre les appareils.
  3. Les appareils envoient simultanément des paquets aux adresses publiques de l'autre, exploitant la "persistance de session" du NAT pour créer un chemin bidirectionnel.
  4. Une fois le hole punching réussi, le trafic passe en P2P direct, sans passer par le serveur de coordination.

AppareilA (derrière NAT)   Serveur de coordination   AppareilB (derrière NAT)
    │──── Mon adresse publique ? ────▶│                  │
    │◀─── Vous êtes 1.2.3.4:5000     │                  │
    │                                │◀── Mon adresse publique ? ──│
    │                                │─── Vous êtes 5.6.7.8:9000 ──▶│
    │◀────── Adresse de l'autre : 5.6.7.8:9000 ────────────│
    │──────────────── Hole punching direct ──────────────▶│

En cas d'échec (NAT symétrique), le trafic passe par un serveur relais chiffré, avec une vitesse réduite.

Chiffrement : protection du trafic

Tout le trafic entre appareils est chiffré via le protocole WireGuard (ou similaire), basé sur le chiffrement symétrique ChaCha20 et l'échange de clés Curve25519. Les clés sont négociées indépendamment pour chaque paire d'appareils ; le serveur de coordination ne gère que l'échange d'adresses et ne peut pas déchiffrer les données.

Ainsi, même si le serveur relais est compromis, le contenu transmis reste illisible.

Voici un exemple complet d'intégration sur trois plateformes via l'outil XNode.

Déploiement : une commande par plateforme

Windows (PowerShell en tant qu'administrateur) :


$installerUrl = "https://exemplaire.com/setup.ps1"
Invoke-Expression (Invoke-WebRequest -Uri $installerUrl).Content

Après installation, une icône apparaît dans la barre des tâches ; connectez-vous à votre compte.

macOS (terminal) :


curl -fsSL https://exemplaire.com/installer.sh | sudo sh

Une page s'ouvre automatiquement pour la connexion.

Linux (terminal) :


curl -fsSL https://exemplaire.com/installer.sh | sudo bash

Une fois les trois appareils connectés au même compte, le réseau se forme automatiquement avec des IP virtuelles attribuées, par exemple :

Appareil IP virtuelle
PC Windows 100.66.1.2
MacBook 100.66.1.3
Serveur Linux 100.66.1.4

Résultats pratiques

Après la mise en réseau, l'accès entre appareils est identique à un réseau local :

Mac accède aux fichiers partagés Windows : dans Finder, appuyez sur Cmd+K et entrez :


smb://100.66.1.2

Le dossier partagé Windows se monte comme un lecteur réseau local, avec glisser-déposer simple.

Windows accède aux services Web Linux : dans le navigateur, entrez :


http://100.66.1.4:8080

Ouvrez directement des interfaces comme Jenkins ou des outils de gestion de base de données hébergés sur Linux.

Connexion SSH directe au Linux :


ssh utilisateur@100.66.1.4

Sans machine relais ni IP publique, connexion directe.

Sécurité et performances

Sécurité : tout le trafic passe par un tunnel chiffré, basé sur le principe de confiance zéro ; seuls les appareils autorisés sous le même compte peuvent rejoindre le réseau, sans exposer les services internes à Internet.

Performances : lorsque la traversée NAT réussit, la connexion P2P directe offre une vitesse dépendant de la bande passante mutuelle et une faible latence ; en cas d'échec, le trafic passe par un relais chiffré, avec une vitesse influencée par le nœud relais.

Étiquettes: overlay-networking nat-traversal wireguard stun-protocol cross-platform-networking

Publié le 10 juin à 22h14