FranceHostun service RootLab
Guide pratique

WireGuard sur un VPS : relier vos machines en réseau privé.

WireGuard est un VPN moderne, rapide et simple à configurer. Installé sur un VPS, il relie vos ordinateurs, votre téléphone et votre homelab dans un même réseau privé chiffré, où que vous soyez.

À quoi va servir votre VPN ?

Avec WireGuard, chaque appareil reçoit une adresse privée (ici en 10.8.0.x) et peut joindre les autres par ce tunnel chiffré, même derrière une box ou un réseau mobile. Les usages typiques : accéder à son NAS ou à sa domotique depuis l'extérieur, administrer ses serveurs sans les exposer sur Internet, relier deux sites, ou réserver l'accès SSH de son VPS au seul VPN.

Ce que ce guide ne fait pas : faire sortir toute votre navigation sur Internet par le VPS (VPN « tout le trafic »). Nos VPS n'ont qu'une adresse IPv6 et pas d'IPv4 : les sites encore en IPv4 ne seraient pas joignables par ce chemin. Pour un réseau privé entre vos machines, en revanche, l'IPv6 seule ne pose aucun problème.

Choisir un VPS KVM

WireGuard fonctionne dans le noyau Linux. Sur un VPS KVM, vous avez votre propre noyau et tout marche directement. En LXC, le noyau est partagé avec notre serveur et WireGuard n'est pas garanti : choisissez KVM pour ce projet (voir KVM ou LXC). Côté puissance, le VPS Mini suffit pour un usage personnel ou familial.

Vos appareils doivent aussi avoir l'IPv6 pour joindre le VPS. C'est le cas de la plupart des box et forfaits mobiles français ; le guide du VPS IPv6 explique comment le vérifier.

1. Installer WireGuard sur le VPS

apt update && apt install -y wireguard

Générez la paire de clés du serveur. umask 077 garantit que la clé privée n'est lisible que par root :

cd /etc/wireguard
umask 077
wg genkey | tee serveur.key | wg pubkey > serveur.pub

2. Générer les clés de chaque appareil

Chaque appareil a sa propre paire de clés. Le plus simple est de les générer dans l'application WireGuard de l'appareil (Windows, macOS, Android, iOS) : elle affiche la clé publique à copier. Sous Linux, utilisez la même commande que ci-dessus.

3. Configurer le serveur

Créez /etc/wireguard/wg0.conf :

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contenu de serveur.key>

# Ordinateur portable
[Peer]
PublicKey = <clé publique du portable>
AllowedIPs = 10.8.0.2/32

# Téléphone
[Peer]
PublicKey = <clé publique du téléphone>
AllowedIPs = 10.8.0.3/32

Ajoutez un bloc [Peer] par appareil, chacun avec sa propre adresse. Pour que les appareils puissent se joindre entre eux à travers le VPS, autorisez le routage :

echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/90-wireguard.conf
sysctl --system

Si vous utilisez un pare-feu comme ufw, ouvrez le port de WireGuard :

ufw allow 51820/udp
ufw route allow in on wg0 out on wg0

La seconde règle laisse passer le trafic d'un appareil à l'autre à travers le VPS, que ufw bloque par défaut.

Démarrez le VPN et activez-le au démarrage :

systemctl enable --now wg-quick@wg0
wg show

4. Configurer un appareil

Dans l'application WireGuard, créez un tunnel avec cette configuration (exemple pour le portable) :

[Interface]
PrivateKey = <clé privée du portable>
Address = 10.8.0.2/24

[Peer]
PublicKey = <contenu de serveur.pub>
Endpoint = [2001:db8::10]:51820
AllowedIPs = 10.8.0.0/24
PersistentKeepalive = 25

Remplacez 2001:db8::10 par l'adresse IPv6 de votre VPS, en gardant les crochets. La ligne AllowedIPs = 10.8.0.0/24 ne fait passer dans le tunnel que le trafic du réseau privé : le reste de votre connexion n'est pas modifié. PersistentKeepalive garde le tunnel ouvert derrière une box ou un réseau mobile.

Activez le tunnel, puis testez depuis l'appareil :

ping 10.8.0.1

Si le VPS répond, c'est gagné. La commande wg show sur le serveur indique pour chaque appareil la date du dernier échange (« latest handshake »).

5. Pour aller plus loin : SSH par le VPN uniquement

Une fois le VPN en place, vous pouvez n'autoriser SSH que depuis le réseau privé. Avec ufw, par exemple :

ufw allow from 10.8.0.0/24 to any port 22 proto tcp

Ne supprimez la règle SSH ouverte à tous qu'après avoir vérifié que la connexion par le VPN fonctionne (ssh root@10.8.0.1) : sinon vous risquez de vous enfermer dehors.

Questions fréquentes

WireGuard fonctionne-t-il en LXC ?

Ce n'est pas garanti : WireGuard dépend du noyau, partagé en LXC. Choisissez un VPS KVM, qui a son propre noyau. Voir KVM ou LXC.

Puis-je faire passer toute ma navigation par le VPS ?

Pas pour les sites en IPv4 : nos VPS n'ont qu'une adresse IPv6. WireGuard sur nos VPS est fait pour un réseau privé entre vos appareils, pas pour sortir sur Internet avec l'adresse du serveur.

Mon téléphone peut-il se connecter ?

Oui, avec l'application WireGuard officielle pour Android ou iOS, à condition que le réseau du téléphone ait l'IPv6. C'est le cas de la plupart des forfaits mobiles français.

Combien d'appareils puis-je relier ?

Autant que vous voulez, dans la limite des adresses du réseau privé choisi (253 avec un /24). Ajoutez simplement un bloc [Peer] par appareil.

Votre propre VPN, sur un serveur en France

VPS KVM avec accès root, SSD et RAM ECC, dès 1,49 € par mois.