Tu en as marre de payer 12,99 €/mois à NordVPN après l'année de promo. Tu veux un tunnel chiffré qui ne soit partagé avec personne, hébergé sur une juridiction GDPR, et dont tu maîtrises la configuration ligne par ligne. Bonne nouvelle : ça se monte en 20 minutes sur un VPS Contabo à 4,99 €/mois, et ce guide te donne toutes les commandes. Pas de marketing, pas d'abstraction — juste le script qu'on utilise nous-mêmes en production depuis 14 mois.
Pourquoi self-host plutôt qu'un service commercial
Un service VPN commercial te vend une promesse : pas de logs, IP partagée avec des milliers d'utilisateurs, juridiction "no-logs friendly" (Panama, BVI, Suisse). Sur le papier c'est solide. Dans la pratique :
- IP partagée = empreinte commune. Quand 4 000 utilisateurs NordVPN sortent par la même IP, tu hérites de leurs blacklists. Stripe te demandera un 3DS additionnel. Cloudflare te collera des challenges sans fin. Tu héberges ton propre VPN = ta propre IP propre.
- No-logs invérifiable en continu. Un audit PwC valide une politique sur un instant T. Entre deux audits, des assignations judiciaires (subpoenas américaines, ordonnances européennes) peuvent forcer un logging temporaire. Sur ton VPS, c'est toi qui décides. Tu purges quand tu veux.
- Prix qui doublent au renouvellement. NordVPN 2 ans : 71,76 €. Renouvellement annuel : 156 €/an. Sur 5 ans : ~600 €. Un VPS Contabo S sur 5 ans : ~300 €. Et tu peux héberger d'autres services dessus.
L'inconvénient est honnête : tu ne débloques pas Netflix US avec un VPS dédié (Netflix bannit les ASN datacenter). Pour le streaming, on documente une solution hybride dans le guide DPI bypass.
Choisir le bon VPS Contabo
Contabo a trois gammes pertinentes pour un VPN perso :
| Offre | Prix / mois | vCPU | RAM | Bande passante | Idéal pour |
|---|---|---|---|---|---|
| VPS S (legacy) | 4,99 € | 4 | 8 Go | 200 Mbps | VPN solo 1-3 devices |
| VPS S Cloud | 6,99 € | 4 vCPU NVMe | 8 Go | 600 Mbps | VPN famille 5-10 devices |
| Cloud VPS 10 | 9,99 € | 6 vCPU | 16 Go | 1 Gbps | Multi-tunnel + autres services |
Notre choix par défaut : VPS S à 4,99 €/mois. Pour 90 % des usages individuels, c'est largement suffisant. La bande passante 200 Mbps est garantie (testée à iperf3, on tient 195 Mbps sustained).
Datacenter recommandé : Nuremberg (DE) pour des latences <30 ms depuis la France métropolitaine. Si tu es au Canada / US, prends le datacenter US Central (St. Louis).
Setup pas-à-pas
Étape 1 — Provisionner le VPS
Sur contabo.com, choisis VPS S, Ubuntu 24.04 LTS, root password (on créera un user normal après), datacenter Nuremberg. Paiement carte ou PayPal. Activation : email reçu sous ~5 minutes avec l'IP publique et le mot de passe root.
Étape 2 — Durcir le serveur
Première connexion SSH :
ssh root@TON_IP_PUBLIQUE
# Le mot de passe est dans l'email Contabo
Crée un utilisateur non-root, ajoute ta clé SSH, désactive le login root :
adduser ericg
usermod -aG sudo ericg
mkdir -p /home/ericg/.ssh
# Colle ta clé publique (~/.ssh/id_ed25519.pub local)
nano /home/ericg/.ssh/authorized_keys
chmod 700 /home/ericg/.ssh
chmod 600 /home/ericg/.ssh/authorized_keys
chown -R ericg:ericg /home/ericg/.ssh
# Désactiver login root + password
sed -i 's/^PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh
Quitte le shell root, reconnecte-toi via ssh ericg@TON_IP. Si ça marche, on continue.
Installe firewall et fail2ban :
sudo apt update && sudo apt upgrade -y
sudo apt install -y ufw fail2ban
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 51820/udp
sudo ufw --force enable
sudo systemctl enable --now fail2ban
Étape 3 — Installer et configurer WireGuard
sudo apt install -y wireguard qrencode
# Génération clés serveur
cd /etc/wireguard
sudo wg genkey | sudo tee server_private.key | sudo wg pubkey | sudo tee server_public.key
sudo chmod 600 server_private.key
SERVER_PRIV=$(sudo cat server_private.key)
Identifie ton interface publique (souvent ens3 ou eth0) :
ip route | grep default
# default via X.X.X.X dev ens3 ...
Crée /etc/wireguard/wg0.conf :
sudo nano /etc/wireguard/wg0.conf
Contenu (remplace ens3 par ton interface si différente) :
[Interface]
PrivateKey = COLLE_SERVER_PRIV_ICI
Address = 10.66.66.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
Active le forwarding IP :
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Démarre WireGuard :
sudo systemctl enable --now wg-quick@wg0
sudo wg show
# Tu dois voir "interface: wg0" et "listening port: 51820"
Étape 4 — Générer un client
Pour chaque appareil :
cd /etc/wireguard
sudo wg genkey | sudo tee macbook_private.key | sudo wg pubkey | sudo tee macbook_public.key
CLIENT_PRIV=$(sudo cat macbook_private.key)
CLIENT_PUB=$(sudo cat macbook_public.key)
SERVER_PUB=$(sudo cat server_public.key)
Crée /tmp/macbook.conf (sur le serveur, pour générer le QR — puis tu le supprimes) :
[Interface]
PrivateKey = COLLE_CLIENT_PRIV
Address = 10.66.66.2/24
DNS = 1.1.1.1, 9.9.9.9
[Peer]
PublicKey = COLLE_SERVER_PUB
Endpoint = TON_IP_PUBLIQUE:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Ajoute ce peer au serveur :
sudo wg set wg0 peer COLLE_CLIENT_PUB allowed-ips 10.66.66.2/32
# Et persister :
sudo nano /etc/wireguard/wg0.conf
# Ajouter en bas :
# [Peer]
# PublicKey = COLLE_CLIENT_PUB
# AllowedIPs = 10.66.66.2/32
Pour iOS/Android : génère le QR-code
qrencode -t ansiutf8 < /tmp/macbook.conf
Scanne avec l'app WireGuard officielle. Active. Le tour est joué.
Étape 5 — Vérifier qu'il n'y a pas de fuite
Sur ton client connecté au tunnel :
- Va sur ipleak.net — l'IP doit être celle du VPS Contabo, pas la tienne.
- Va sur browserleaks.com/webrtc — pas d'IP locale exposée.
- Va sur dnsleaktest.com — DNS résolu via 1.1.1.1 (Cloudflare).
Si une fuite WebRTC apparaît : configure le kill switch dans WireGuard mobile (toggle "On-Demand"), ou bloque WebRTC dans Firefox (about:config → media.peerconnection.enabled → false).
Sécurisation supplémentaire
Quelques hardenings recommandés en production :
- Audit Lynis :
sudo apt install lynis && sudo lynis audit system. Score cible : 80+/100. - SSH sur port custom : modifier
/etc/ssh/sshd_configport 2222, mettre à jour UFW. - Désactiver IPv6 si non utilisé :
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1(à persister dans sysctl.conf). - Logs minimum : par défaut, journald conserve 4 semaines. Réduire à 7 jours via
/etc/systemd/journald.confsi modèle de menace strict. - Backups Contabo : activer les snapshots automatiques dans le panel Contabo (1 €/mois, pas pour les logs mais pour restaurer rapidement après une boulette).
Coût mensuel : Contabo VPS S vs NordVPN annuel
Le calcul honnête sur 5 ans :
| Solution | An 1 | An 2 | An 3 | An 4 | An 5 | Total |
|---|---|---|---|---|---|---|
| NordVPN 2 ans + renouvellements | 71,76 € | 0 € | 156 € | 156 € | 156 € | 539,76 € |
| Contabo VPS S Cloud 24 mois × 2 | 59,76 € | 59,76 € | 59,76 € | 59,76 € | 59,76 € | 298,80 € |
Économie : 241 € sur 5 ans, soit 45 %. Et tu héberges en bonus ton Bitwarden, ton Nextcloud, ton Umami, ce que tu veux.
Limitations honnêtes du self-host
Pour être complet :
- Streaming Netflix US, BBC iPlayer, etc. : ne marche quasiment jamais. Netflix détecte les ASN datacenter (Contabo ASN 51167) et te sert le catalogue local. Pour le streaming, garde un NordVPN 1 an en complément.
- Bypass DPI Iran/Chine : WireGuard sur port 51820/udp en clair est détecté par DPI sophistiqué. Pour ces cas, ajoute V2Ray ou Cloak en obfuscation (cf. le guide dédié).
- Pas de chat support : Contabo répond par email sous 24-48h. Si tu veux du chat live, regarde Hetzner Cloud (~2× le prix, support FR/DE/EN par chat).
- Tu es admin : si le VPS plante, tu débogges. C'est l'inverse d'un service managé.
Pour aller plus loin
- Contabo vs Hetzner vs OVH : VPS Europe pour VPN self-host 2026
- WireGuard vs OpenVPN sur VPS : benchmarks réels 2026
- Routing VPN custom sur Contabo : bypass DPI Iran/Chine 2026
- Sources officielles : WireGuard whitepaper, Contabo docs VPS, Ubuntu 24.04 hardening guide
Article publié le 2026-06-02. Dernière vérification du script bootstrap sur Ubuntu 24.04 LTS le 2026-06-02. Si la procédure casse chez toi, ouvre une issue sur notre GitHub ou écris à contact@vpnsmith.com.
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · 200+ Mbps garantis
Voir l'offre Contabo30 jours satisfait ou remboursé→