Accéder à son Homelab

Salut ! Voici un tour d’horizon des façons d’accéder à ton homelab depuis l’extérieur. En France, on a souvent la chance d’avoir une IP fixe, mais je sais qu’aux US ou au Cameroun (mon pays d’origine), c’est beaucoup plus rare à cause du CGNAT. On va passer en revue les options, de la plus basique à la plus avancée : ouverture de ports, WireGuard, Tailscale et NetBird. L’idée, c’est toujours de rester sécurisé – n’expose jamais tes services sans protection sérieuse.

1. Ouverture de Ports : La Solution la Plus Simple (mais Limitée)

Tu ouvres simplement des ports sur ta box pour rediriger le trafic vers ton serveur. Tu identifies l’IP locale de ton serveur (genre 192.168.1.100), tu vas dans l’interface de ta box (souvent 192.168.1.1), tu crées une règle dans NAT/Port Forwarding – par exemple port 80 externe vers 80 interne – et tu accèdes via ton IP publique (trouvable sur whatismyip.com). Si l’IP change, un DDNS comme No-IP ou DuckDNS fait l’affaire.

C’est direct, rapide en latence, parfait pour tester vite fait. Par contre, en zone CGNAT (fréquent aux US ou au Cameroun), ça ne marche pas du tout. Et côté sécurité, c’est risqué : tu exposes des ports au monde entier. Toujours HTTPS, mots de passe costauds et un reverse proxy comme Caddy (qui gère le HTTPS automatiquement) pour limiter les dégâts. Pour des services sensibles, franchement, passe directement à un VPN.

2. WireGuard : Le VPN qui Change Tout

WireGuard, c’est le VPN moderne, léger et ultra-performant que tout le monde adore dans le monde homelab. Au lieu d’ouvrir un port par service, tu n’en ouvres qu’un seul (UDP 51820 généralement) et une fois connecté, tout ton réseau local est accessible comme si tu étais à la maison.

Il est rapide grâce à son code minimal (~4000 lignes), bien plus sécurisé que les vieux VPN, et super simple une fois configuré. Le seul hic : il faut quand même ouvrir ce port sur la box et gérer un DDNS si pas d’IP fixe.

Pour rendre ça enfantin, utilise wg-easy avec Docker. Installe Docker d’abord :

curl -sSL https://get.docker.com | sh

Puis crée un docker-compose.yml :

version: '3.8'
services:
  wg-easy:
    environment:
      - WG_HOST=votre-domaine-ou-ip-publique
      - PASSWORD=votre-mot-de-passe-admin
    image: weejewel/wg-easy
    volumes:
      - .:/etc/wireguard
    ports:
      - '51820:51820/udp'
      - '51821:51821/tcp'
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

Lance avec :

docker compose up -d

Ouvre le port UDP 51820 sur la box, va sur http://ton-ip:51821, génère les configs clients, installe WireGuard sur tes appareils et importe. Pour plus de sécurité, protège l’interface web avec Caddy.

C’est déjà un gros step up en sécurité par rapport à l’ouverture brute de ports.

3. Tailscale : La Magie Sans Effort

Tailscale, c’est WireGuard boosté aux hormones. Tu installes l’app sur ton serveur et sur tous tes appareils, tu te connectes au même compte, et bam – tout le monde se voit comme sur un réseau local. Zéro configuration de routeur, zéro port à ouvrir, zéro besoin d’IP fixe.

Il utilise des connexions sortantes et un serveur de coordination pour établir des tunnels peer-to-peer directs. Ça marche même derrière le pire CGNAT. Tu as des IP dédiées genre 100.x.y.z, des ACL pour contrôler qui voit quoi, et c’est gratuit pour un usage perso (jusqu’à 3 users et 20 appareils).

Le seul point “négatif” : il passe par les serveurs Tailscale pour la coordination (les données restent chiffrées et peer-to-peer). Si tu veux zéro dépendance extérieure, passe à la suivante.

Installation ultra simple : crée un compte sur tailscale.com, sur ton serveur Linux :

curl -fsSL https://tailscale.com/install.sh | sh

Puis :

tailscale up

Sur téléphone/PC, même compte et c’est bon. Franchement, c’est la solution que j’utilise au quotidien pour sa simplicité absolue.

4. NetBird : La Version 100% Indépendante

NetBird, c’est l’équivalent de Tailscale mais entièrement open-source et self-hosté. Tu gardes le contrôle total, zéro cloud tiers obligatoire.

Il est basé sur WireGuard aussi, avec une belle interface web, gestion fine des accès (zéro-trust, checks de posture des appareils), ACL, DNS intégré… Tout ce qu’il faut pour un setup pro à la maison.

Pour l’installer, il faut un petit VPS public (OVH, Hetzner, AWS – 1 CPU/2 Go suffisent) et un domaine qui pointe dessus. Tu ouvres TCP 80/443 et UDP 3478 sur le VPS.

Installation en une ligne sur le VPS (Docker requis) :

export NETBIRD_DOMAIN=votre-domaine.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash

Va sur https://votre-domaine.com, crée ton admin via /setup, ajoute tes utilisateurs dans le dashboard, installe les clients NetBird sur tes machines et connecte-toi.

Tu peux même intégrer Google ou Microsoft pour l’auth. C’est parfait quand tu veux tout maîtriser toi-même.