[{"data":1,"prerenderedAt":141},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-netbird-controle-vpn-mesh-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":25,"intro":28,"sections":29,"ctaTitle":81,"ctaBody":82,"ctaButton":83,"ctaUrl":84,"relatedPosts":85},291,"deployer-netbird-controle-vpn-mesh-vps",{"fr":8,"en":10,"ar":11},"netbird-self-hosted-wireguard-mesh-vpn-on-a-vps","netbird-شبكة-vpn-مشبكة-wireguard-باستضافة-ذاتية","Netbird : réseau mesh WireGuard auto-hébergé sur VPS","Connectez plusieurs VPS clients sans ouvrir de ports : Netbird déploie un mesh WireGuard dont vous tenez le plan de contrôle — Management, Signal et relay COTURN inclus.",12,0,false,"2026-08-21T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-netbird-controle-vpn-mesh-vps-poster.svg","Vous gérez des serveurs répartis sur plusieurs comptes clients et vous vous retrouvez à ouvrir des ports, à maintenir des règles UFW distinctes ou à distribuer des clés WireGuard statiques à la main. Headscale répond au même besoin pour un réseau plat — nous y avons consacré \u003Ca href=\"\u002Fblog\u002Fself-host-headscale-tailscale-vps\">un guide dédié\u003C\u002Fa>. Netbird est une autre réponse, conçue pour la gestion de plusieurs réseaux isolés : peers groups, règles d'accès par réseau et interface web incluse. Ce guide déploie le plan de contrôle Netbird (~28 k étoiles GitHub, AGPLv3 côté serveur) sur un VPS dédié, puis raccorde trois nœuds en mesh sans ouvrir un seul port public.",[30,34,37,40,65,68,71,75,78],{"type":31,"title":32,"body":33},"h2","WireGuard P2P, Headscale, Netbird : trois angles différents","WireGuard statique (voir \u003Ca href=\"\u002Fblog\u002Finstaller-wireguard-vps\">notre guide WireGuard P2P\u003C\u002Fa>) exige de distribuer une paire de clés par tunnel et d'éditer `\u002Fetc\u002Fwireguard\u002Fwg0.conf` à chaque nouvel homologue. Efficace pour deux ou trois serveurs fixes — ingérable à l'échelle d'un parc d'agence.\n\nHeadscale réimplémente le serveur de coordination Tailscale : vous gardez les clients Tailscale officiels et obtenez un réseau plat illimité en utilisateurs. Un seul réseau par instance, sans isolation native entre clients différents. C'est le bon choix pour une équipe unique qui veut rester dans l'écosystème Tailscale.\n\nNetbird prend le parti inverse : il apporte son propre client, son propre plan de contrôle (Management + Signal + relay) et une notion de **réseau nommé** avec règles d'accès granulaires. Une instance unique peut héberger plusieurs réseaux entièrement isolés — ce qui en fait l'outil naturel pour une agence qui gère des parcs clients séparés. L'interface web est incluse d'emblée.",{"type":31,"title":35,"body":36},"Architecture Netbird : quatre composants","Un déploiement Netbird auto-hébergé repose sur quatre composants, tous fournis dans le même dépôt (`netbirdio\u002Fnetbird`) :\n\n**Management Server** — le cerveau du plan de contrôle. Il distribue les clés WireGuard, applique les règles d'accès et expose l'API REST que l'interface web interroge. Stockage SQLite par défaut, MySQL ou PostgreSQL en option.\n\n**Signal Server** — le serveur de signalisation pair à pair. Il facilite l'échange de descripteurs de connexion ICE entre les nœuds au moment de l'établissement du tunnel WireGuard. Aucun trafic applicatif ne le traverse.\n\n**COTURN** — le serveur relay STUN\u002FTURN. Il sert de relais lorsqu'une connexion directe entre deux pairs est impossible (double NAT, réseau d'entreprise restrictif). Le trafic ne passe par COTURN que lorsque la tentative directe échoue.\n\n**Dashboard** — l'interface web (SPA React) qui consomme l'API Management. Elle permet de créer des réseaux, d'ajouter des peers, de définir des règles d'accès et de générer des clés d'enrôlement sans toucher à la ligne de commande.\n\nTous les flux entre clients passent en **WireGuard chiffré bout en bout** — Management et Signal ne voient que les métadonnées d'enrôlement, jamais le trafic applicatif.",{"type":31,"title":38,"body":39},"Prérequis","**VPS dédié au plan de contrôle.** Prévoyez un VPS distinct de vos nœuds clients : 2 vCPU, 2 Go de RAM minimum. Un VPS `{{vps.start.name}}` convient pour démarrer.\n\n**Ports à ouvrir sur le VPS de contrôle :**\n\n`443` (TCP) — Management et Dashboard derrière un reverse proxy HTTPS.\n`3478` (UDP) — COTURN STUN\u002FTURN.\n`49152-65535` (UDP) — plage dynamique COTURN pour les sessions relay.\n\nLes nœuds clients n'ont **aucun port entrant à ouvrir** : le client Netbird établit des connexions sortantes vers le plan de contrôle.\n\n**Logiciels requis sur le VPS de contrôle :** Docker Engine 24+ et Docker Compose v2, un nom de domaine pointant vers l'IP du VPS, et un certificat TLS (Let's Encrypt via le script fourni ou votre reverse proxy habituel).\n\n**Sur chaque nœud client :** le binaire `netbird` (paquet Debian\u002FRPM ou binaire statique), accès root ou sudo.",{"type":41,"title":42,"steps":43},"steps","Déployer le plan de contrôle et raccorder trois nœuds",[44,47,50,53,56,59,62],{"title":45,"body":46},"Cloner le dépôt et lancer le script de démarrage","Sur le VPS de contrôle, récupérez le script officiel de Netbird et laissez-le générer la stack Docker Compose complète :\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Fnetbirdio\u002Fnetbird\u002Freleases\u002Flatest\u002Fdownload\u002Fgetting-started.sh -o getting-started.sh\nbash getting-started.sh\n```\n\nLe script vous demande votre domaine (ex. `netbird.votre-domaine.com`), génère `docker-compose.yml`, `config.yaml`, `dashboard.env` et la configuration COTURN, puis lance la stack. À la fin il affiche l'URL de l'interface web et un premier **Setup Key** — conservez-le.",{"title":48,"body":49},"Vérifier que les quatre services répondent","Une fois le script terminé, confirmez que les conteneurs sont bien debout :\n\n```bash\ndocker compose ps\n```\n\nVous devez voir quatre services `running` : `netbird-management`, `netbird-signal`, `netbird-coturn` et `netbird-dashboard`. Testez le Management depuis le VPS lui-même :\n\n```bash\ncurl -s https:\u002F\u002Fnetbird.votre-domaine.com\u002Fapi\u002Fv1\u002Fpeers \\\n  -H 'Authorization: Token \u003Cvotre-PAT>'\n```\n\nUne réponse JSON vide `[]` confirme que le service répond et qu'aucun pair n'est encore enrôlé.",{"title":51,"body":52},"Créer un réseau et un Setup Key dans l'interface web","Ouvrez `https:\u002F\u002Fnetbird.votre-domaine.com` dans un navigateur. Connectez-vous avec le compte créé pendant le setup (ou via le fournisseur OIDC configuré).\n\nDans le menu **Setup Keys**, cliquez **Create Setup Key**. Donnez-lui un nom (`vps-client-a`), choisissez le type `Reusable` (pour enrôler plusieurs machines avec la même clé) et une durée d'expiration. Copiez la clé — vous en aurez besoin sur chaque nœud.",{"title":54,"body":55},"Enrôler le nœud 1","Sur le premier VPS client, installez le client Netbird :\n\n```bash\ncurl -fsSL https:\u002F\u002Fpkgs.netbird.io\u002Finstall.sh | bash\n```\n\nPuis raccordez-le au plan de contrôle en pointant vers votre instance :\n\n```bash\nnetbird up \\\n  --management-url https:\u002F\u002Fnetbird.votre-domaine.com \\\n  --setup-key \u003CVOTRE_SETUP_KEY>\n```\n\nConfirmez la connexion :\n\n```bash\nnetbird status\n```\n\nVous devez lire `Status: Connected` et une IP mesh dans la plage `100.64.x.x` attribuée par votre serveur.",{"title":57,"body":58},"Enrôler les nœuds 2 et 3","Répétez exactement la même procédure sur les deux autres VPS clients. Même commande `curl` pour installer le client, même commande `netbird up` avec le même `--management-url` et la même `--setup-key` (si elle est de type `Reusable`).\n\nUne fois les trois nœuds enrôlés, vérifiez depuis le nœud 1 que les pairs sont visibles :\n\n```bash\nnetbird status --detail\n```\n\nLa sortie liste chaque pair avec son IP mesh, son état (`Connected` ou `Connecting`) et sa latence.",{"title":60,"body":61},"Tester la connectivité mesh sans port public ouvert","Avant de tester, vérifiez l'état du pare-feu sur le nœud 1 — aucun port entrant ne doit être ouvert vers les autres nœuds :\n\n```bash\nsudo ufw status numbered\n```\n\nSeul le port SSH (22) doit apparaître. Maintenant, pinguez le nœud 2 via son IP mesh (visible dans `netbird status --detail`, ex. `100.64.0.2`) :\n\n```bash\nping -c 3 100.64.0.2\n```\n\nLe ping traverse le tunnel WireGuard établi entre les pairs. Si les deux nœuds sont derrière un NAT strict, COTURN assure le relay — le ping fonctionne dans les deux cas sans aucune règle UFW supplémentaire.",{"title":63,"body":64},"Vérifier les connexions directes vs relay","Pour distinguer une connexion directe d'un passage par COTURN :\n\n```bash\nnetbird status --detail\n```\n\nLa colonne `Connection type` affiche `P2P` pour une connexion directe ou `Relayed` lorsque COTURN intervient. `P2P` est l'état nominal entre deux VPS avec des IPv4 publiques directes. `Relayed` indique que Netbird a dû passer par le serveur COTURN — vérifiez alors que les ports UDP 3478 et la plage 49152-65535 sont bien accessibles depuis les nœuds.",{"type":31,"title":66,"body":67},"Isolation multi-clients : peers groups et règles d'accès","La force de Netbird face à Headscale est sa notion de **réseau isolé par groupe**. Par défaut, tous les peers enrôlés avec la même Setup Key rejoignent un groupe commun. Pour isoler les serveurs d'un client A des serveurs d'un client B :\n\n**1. Créez un groupe par client** dans l'interface web (Networks → Groups → Add Group). Nommez-les `client-a`, `client-b`.\n\n**2. Assignez chaque peer à son groupe.** Dans la fiche du peer, section Assigned Groups, ajoutez le groupe correspondant et retirez le groupe `All` si vous ne voulez pas de communication inter-groupes.\n\n**3. Définissez les règles d'accès** (Access Control → Policies). Une politique `client-a-interne` autorise le trafic entre peers du groupe `client-a`. Aucune règle n'est créée entre `client-a` et `client-b` : les deux réseaux sont hermétiques.\n\nVous pouvez aussi définir des **Network Routes** : un peer joue le rôle de routeur pour un sous-réseau privé (ex. `192.168.10.0\u002F24`) et expose ce réseau aux autres peers du groupe, sans que ceux-ci aient besoin d'un client Netbird installé sur chaque machine du sous-réseau.",{"type":31,"title":69,"body":70},"Opérations courantes","**Renouveler ou révoquer une Setup Key.** Dans l'interface web, Setup Keys → votre clé → Revoke. Les peers déjà enrôlés conservent leur connexion ; les nouvelles tentatives d'enrôlement avec cette clé seront refusées. Créez une nouvelle clé pour les prochains enrôlements.\n\n**Révoquer un peer.** Peers → sélectionnez le peer → Delete. Le nœud est immédiatement retiré du mesh. Côté client, `netbird status` passe à `Disconnected` et les tunnels WireGuard vers ce pair sont détruits.\n\n**Accès API pour l'automatisation.** Netbird expose une API REST documentée. Générez un Personal Access Token (Settings → Access Tokens) et pilotez l'ensemble depuis vos scripts Ansible ou vos pipelines CI :\n\n```bash\ncurl -s https:\u002F\u002Fnetbird.votre-domaine.com\u002Fapi\u002Fv1\u002Fpeers \\\n  -H 'Authorization: Token \u003CPAT>'\n```\n\n**Monitoring.** Le Management Server expose des métriques Prometheus sur `\u002Fmetrics`. Branchez Grafana sur cet endpoint pour suivre le nombre de peers connectés, les sessions COTURN actives et la latence de signalisation.",{"type":72,"title":73,"body":74},"tip","Durcissement : 2FA sur le Dashboard et sauvegarde de la base Management","Le Dashboard Netbird supporte OIDC (Keycloak, Authentik, Azure AD) — activez-le pour imposer la MFA à tous les administrateurs du plan de contrôle. Sans SSO, le compte local reste protégé par mot de passe uniquement.\n\nLa base de données SQLite du Management Server est le seul état persistant de votre réseau : perdre ce fichier signifie réenrôler tous vos pairs. Montez un volume Docker nommé (`netbird_management`) et sauvegardez-le quotidiennement :\n\n```bash\ndocker run --rm \\\n  -v netbird_management:\u002Fdata \\\n  -v \u002Fopt\u002Fbackups:\u002Fbackup \\\n  alpine tar czf \u002Fbackup\u002Fnetbird-$(date +%Y%m%d).tar.gz \u002Fdata\n```\n\nRotation des sauvegardes à 7 jours minimum.",{"type":31,"title":76,"body":77},"Dépannage","**COTURN inaccessible — les peers restent en `Relayed` ou ne se connectent jamais.**\nVérifiez que les ports UDP 3478 et la plage 49152-65535 sont ouverts dans le pare-feu du VPS de contrôle (`ufw status`). Testez depuis un nœud client : `nc -u -z netbird.votre-domaine.com 3478`. Absence de réponse = trafic filtré. Sur certains hébergeurs, les plages UDP larges sont bloquées par défaut — ouvrez-les explicitement.\n\n**Peer bloqué en `Connecting`.**\nCela indique une communication Management\u002FSignal réussie (le peer s'est enrôlé) mais une impossibilité de former le tunnel WireGuard. Causes fréquentes : l'IP publique du VPS de contrôle est mal renseignée dans `config.yaml` (champ `--turn-external-ip` de COTURN), ou les ports UDP de la plage dynamique sont fermés. Relancez le script `getting-started.sh` avec `--external-ip` explicite si le VPS est derrière un NAT.\n\n**Résolution DNS échoue entre peers.**\nNetbird intègre un résolveur DNS qui distribue les noms `\u003Chostname>.netbird.cloud` à chaque pair. Si `ping nœud2.netbird.cloud` échoue alors que `ping 100.64.0.2` fonctionne, vérifiez que le service `netbird` est bien en cours d'exécution sur le peer (`systemctl status netbird`) et que son DNS est actif : `resolvectl status | grep netbird`.\n\n**Double NAT — aucune connexion directe, COTURN surcharge.**\nSi les deux pairs sont derrière un NAT strict (typiquement : VPS cloud derrière un load balancer hébergeur), les connexions directes WireGuard sont impossibles et tout le trafic passe par COTURN. Solution : assurez-vous que le VPS de contrôle a une IPv4 publique directe et que `--turn-external-ip` pointe vers cette IP. Pour les nœuds clients derrière NAT strict, rien à faire — COTURN est précisément conçu pour ce cas.\n\n**Mise à jour de la stack — nœuds temporairement déconnectés.**\nUne mise à jour du Management Server déconnecte les peers pendant quelques secondes, le temps du redémarrage du conteneur. Planifiez les mises à jour hors fenêtre de trafic, ou activez l'option `restart: always` sur tous les conteneurs pour minimiser le temps d'arrêt.",{"type":31,"title":79,"body":80},"Ce que le mesh change pour la gestion de parc","Un réseau mesh Netbird auto-hébergé remplace trois couches que vous maintieniez à la main : la distribution de clés WireGuard, les règles UFW inter-serveurs et la documentation des accès croisés. Chaque nouveau VPS client s'enrôle en une commande ; chaque révocation est instantanée et centrale.\n\nL'isolation par groupe vous permet de grandir sans risque de collision : les serveurs de deux clients différents ne peuvent pas se voir, même s'ils tournent sur la même infrastructure. Et le plan de contrôle reste sous votre maîtrise — aucune dépendance à un SaaS tiers, aucune limite de seats, aucun abonnement par nœud.\n\nPour aller plus loin, couchez le provisionnement des nœuds dans Ansible (voir \u003Ca href=\"\u002Fblog\u002Fansible-automatiser-serveurs-vps\">notre guide Ansible\u003C\u002Fa>) : l'installation du client et la commande `netbird up` deviennent des tâches idempotentes dans un rôle réutilisable.","Gérez plusieurs parcs clients depuis un seul espace agence","ServOrbit regroupe domaines, hébergements et VPS de tous vos clients dans un espace revendeur sous votre marque. Ajoutez un VPS dédié au plan de contrôle Netbird et pilotez votre réseau mesh depuis le même tableau de bord.","Espace agence ServOrbit","\u002Fsolutions\u002Fagences",[86,108,127],{"id":87,"slug":88,"slugs":89,"title":92,"excerpt":93,"readTime":94,"views":15,"isPinned":16,"publishedAt":95,"category":96,"categories":102,"featuredImage":25,"bgImage":26,"posterImage":104,"relatedSolution":105},164,"self-host-headscale-tailscale-vps",{"fr":88,"en":90,"ar":91},"self-host-headscale-on-a-vps-your-own-tailscale-control-server","استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك","Héberger Headscale sur un VPS : serveur de contrôle Tailscale","Remplacez le serveur de contrôle cloud de Tailscale par Headscale sur votre VPS : utilisateurs illimités, maillage WireGuard complet, magic DNS et ACL, sans SaaS.",5,"2026-07-05T00:00:00+00:00",{"id":97,"name":98,"slug":99,"color":100,"icon":101},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[103],{"id":97,"name":98,"slug":99,"color":100,"icon":101},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":106,"appSlug":107},"reseau","headscale",{"id":109,"slug":110,"slugs":111,"title":114,"excerpt":115,"readTime":116,"views":117,"isPinned":16,"publishedAt":118,"category":119,"categories":124,"featuredImage":25,"bgImage":26,"posterImage":126,"relatedSolution":25},236,"ansible-automatiser-serveurs-vps",{"fr":110,"en":112,"ar":113},"automating-vps-server-management-with-ansible","أتمتة-إدارة-خوادم-vps-باستخدام-ansible","Automatiser la gestion de ses serveurs VPS avec Ansible","Automatisez la gestion d'une flotte de serveurs VPS avec Ansible : inventaire, playbooks, rôles et Vault pour une infrastructure reproductible.",11,1,"2026-08-08T00:00:00+00:00",{"id":120,"name":121,"slug":122,"color":123,"icon":122},2,"Automatisation","automatisation","bg-brand-action\u002F10 text-brand-action",[125],{"id":120,"name":121,"slug":122,"color":123,"icon":122},"\u002Fblog\u002Fcovers\u002Fansible-automatiser-serveurs-vps-poster.svg",{"id":128,"slug":129,"slugs":130,"title":133,"excerpt":134,"readTime":135,"views":15,"isPinned":16,"publishedAt":136,"category":137,"categories":138,"featuredImage":25,"bgImage":26,"posterImage":140,"relatedSolution":25},228,"durcissement-serveur-linux-initial",{"fr":129,"en":131,"ar":132},"initial-linux-server-hardening","تصليب-الخادم-linux-الأولي","Durcissement initial d'un serveur Linux","Créez un utilisateur sudo, configurez SSH avec clés, activez UFW et fail2ban sur Ubuntu 22.04 ou Debian 12 en moins d'une heure.",10,"2026-08-06T00:00:00+00:00",{"id":97,"name":98,"slug":99,"color":100,"icon":101},[139],{"id":97,"name":98,"slug":99,"color":100,"icon":101},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",1787580970859]