Ouverture commerciale reportée le temps de finaliser nos locaux à Limoges. Être prévenu de l'ouverture

Installer WireGuard sur un VPS KVM

VPS · 5 min de lecture · Mis à jour le 16 octobre 2026

WireGuard est un VPN simple et rapide, intégré au noyau Linux. Sur un VPS, il sert à relier vos appareils entre eux, à joindre des services du VPS sans les exposer sur Internet (base de données, interface d'administration) ou à faire sortir le trafic d'un appareil par le VPS. Ce guide monte un serveur WireGuard sur un VPS machine virtuelle (KVM) et y connecte un premier client.

LXC ou machine virtuelle ?

WireGuard s'appuie sur un module du noyau. Sur un VPS machine virtuelle, c'est votre noyau : le module est disponible. Sur un VPS conteneur (LXC), le noyau est celui de l'hôte et vous ne pouvez pas charger de module vous-même.

Pour un VPN, choisissez une machine virtuelle. Voir LXC ou KVM : choisir.

Ce qu'il faut savoir sur le réseau

1. Installer WireGuard

apt update
apt install -y wireguard

Le paquet installe les outils wg et wg-quick. Le module est fourni par le noyau de Debian 12, Debian 13 et Ubuntu 24.04.

2. Générer les clés du serveur

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

La clé privée (serveur.key) ne quitte jamais le VPS. La clé publique (serveur.pub) ira dans la configuration des clients.

3. Configurer le serveur

Le tunnel utilise un petit réseau privé à part, ici 10.8.0.0/24 : le serveur prend 10.8.0.1, chaque client une adresse suivante.

cat > /etc/wireguard/wg0.conf <<EOF
[Interface]
Address = 10.8.0.1/24
ListenPort = PORT
PrivateKey = $(cat /etc/wireguard/serveur.key)

# Client 1 : ordinateur portable
[Peer]
PublicKey = CLE_PUBLIQUE_DU_CLIENT
AllowedIPs = 10.8.0.2/32
EOF
chmod 600 /etc/wireguard/wg0.conf

Remplacez PORT par le port public, et CLE_PUBLIQUE_DU_CLIENT à l'étape 5.

4. Ouvrir le port

  1. Dans l'espace client, ouvrez un port public UDP vers votre VPS.
  2. Dans le pare-feu du VPS, autorisez ce port en UDP : udp dport PORT accept avec nftables, ou ufw allow PORT/udp. Voir Configurer un pare-feu.

5. Préparer le client

Installez WireGuard sur l'appareil client (application officielle sur wireguard.com/install pour Windows, macOS, Android et iOS ; paquet wireguard sous Linux). Générez une paire de clés dans l'application, ou en ligne de commande :

wg genkey | tee client.key | wg pubkey > client.pub

Configuration du client :

[Interface]
PrivateKey = CLE_PRIVEE_DU_CLIENT
Address = 10.8.0.2/32

[Peer]
PublicKey = CLE_PUBLIQUE_DU_SERVEUR
Endpoint = nom.vps.heberghub.fr:PORT
AllowedIPs = 10.8.0.0/24
PersistentKeepalive = 25

Reportez la clé publique du client dans wg0.conf sur le serveur (CLE_PUBLIQUE_DU_CLIENT).

6. Démarrer et vérifier

Sur le serveur :

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

Activez le tunnel sur le client, puis :

ping 10.8.0.1

wg show sur le serveur doit afficher un latest handshake récent pour le client.

7. Faire sortir le trafic par le VPS (facultatif)

Pour que tout le trafic d'un appareil passe par le VPS (Wi-Fi public, par exemple), il faut autoriser le routage et masquer les adresses du tunnel.

Sur le serveur, activez le routage :

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

Ajoutez dans la section [Interface] de wg0.conf (remplacez eth0 par le nom de l'interface réseau du VPS, visible avec ip route) :

PostUp = nft add table ip wgnat; nft add chain ip wgnat post '{ type nat hook postrouting priority 100; }'; nft add rule ip wgnat post ip saddr 10.8.0.0/24 oifname "eth0" masquerade
PostDown = nft delete table ip wgnat

Côté client, remplacez AllowedIPs par 0.0.0.0/0 et ajoutez DNS = 1.1.1.1 (ou le résolveur de votre choix) dans [Interface]. Comme le VPS n'a pas d'IPv6, le trafic IPv6 de l'appareil ne passera pas par le tunnel : désactivez l'IPv6 sur l'appareil si c'est important pour vous.

Si votre pare-feu nftables a une chaîne forward avec policy drop, autorisez-y le trafic de l'interface wg0.

Le trafic qui sort par votre VPS engage votre responsabilité : les usages interdits par les CGU (attaques, scans de réseaux tiers, spam) le restent à travers un VPN.

Ajouter un client

Pour chaque nouvel appareil : une nouvelle paire de clés, une nouvelle adresse (10.8.0.3, 10.8.0.4…) et un bloc [Peer] de plus dans wg0.conf, puis :

systemctl restart wg-quick@wg0

Une paire de clés par appareil : si un téléphone est perdu, vous retirez son bloc sans toucher aux autres.

Problèmes fréquents

Symptôme Cause probable
Aucun latest handshake Port public non ouvert, pas en UDP, ou fermé par le pare-feu du VPS ; clés inversées entre client et serveur.
Handshake mais pas de ping Address ou AllowedIPs incohérents entre les deux côtés.
Le tunnel se coupe après quelques minutes PersistentKeepalive absent côté client.
Plus d'Internet avec 0.0.0.0/0 Routage ou masquerade absent sur le serveur.
RTNETLINK answers: Operation not supported Module WireGuard indisponible : VPS conteneur, ou noyau sans le module.

Besoin d'aide ?

Ouvrez un ticket depuis votre espace client avec le nom du VPS, le port public utilisé et la sortie de wg show, sans les clés privées.

Retour à la documentation