Tutoriel : Installer WireGuard sur Raspberry Pi
permet depuis l exterieur d avoir acces au reseau local
Introduction
Ce tutoriel vous permet d'installer un serveur VPN WireGuard sur un Raspberry Pi pour accéder à vos appareils locaux (tracker solaire, domotique, NAS, etc.) de manière sécurisée depuis l'extérieur, sans ouvrir de multiples ports sur votre box Internet.
Pourquoi ne PAS ouvrir de ports directement ?
Mauvaise pratique : Ouvrir les ports 80, 8080, 8123, etc. directement vers vos appareils
Expose vos services à Internet (scans, attaques)
Pas de chiffrement (HTTP)
Risque de vulnérabilités (interface web non sécurisée)
Difficile à gérer (un port par service)
Bonne pratique : Utiliser un VPN WireGuard
Un seul port ouvert (51820 UDP)
Chiffrement fort de bout en bout
Accès à tout votre réseau local de manière transparente
Rapide et léger
Reconnexion automatique
Pourquoi WireGuard ?
| Critère | WireGuard | OpenVPN | Port Forwarding |
|---|---|---|---|
| Vitesse | |||
| Sécurité | |||
| Simplicité | |||
| CPU | |||
| Reconnexion | N/A |
WireGuard est le VPN moderne : rapide, sécurisé, et facile à configurer.
Matériel nécessaire
Hardware
- Raspberry Pi 3B+, 4, ou 5 (recommandé : Pi 4 2GB minimum)
- Carte microSD (16GB minimum)
- Alimentation officielle
- Câble Ethernet (recommandé pour la stabilité)
Software
- Raspberry Pi OS (anciennement Raspbian) - Lite ou Desktop
- Accès SSH ou écran + clavier
- Box Internet avec accès admin
Prérequis réseau
- Accès à l'interface d'administration de votre box
- (Optionnel) IP publique fixe ou service DynDNS
Installation
Étape 1 : Préparation du Raspberry Pi
1.1 Connexion SSH au Pi
ssh pi@192.168.1.X# Mot de passe par défaut : raspberry (à changer !)
1.2 Mise à jour du système
sudo apt update && sudo apt upgrade -ysudo reboot
Étape 2 : Installation de WireGuard avec PiVPN
PiVPN est un script qui automatise l'installation et la configuration de WireGuard.
2.1 Téléchargement et lancement
curl -L https://install.pivpn.io | bash2.2 Configuration guidée
L'installateur va vous poser plusieurs questions :
| Question | Réponse recommandée |
|---|---|
| Interface réseau | eth0 (Ethernet) ou wlan0 (WiFi) |
| Utilisateur | pi (par défaut) |
| Activer UFW ? | Oui (firewall) |
| Protocole | WireGuard |
| Port | 51820 (défaut) |
| DNS | 1.1.1.1 (Cloudflare) ou 8.8.8.8 (Google) |
| IP publique | Laisser auto-détecter ou entrer votre DynDNS |
2.3 Redémarrage
sudo reboot
Configuration des clients
Étape 3 : Créer un profil client
Un profil = un appareil (smartphone, PC, tablette, etc.)
pivpn add
Exemple d'interaction :
Enter a Name for the Client: mon-telephone
Done! mon-telephone.conf successfully created!
Le fichier de configuration est créé dans /home/pi/configs/
Étape 4 : Récupérer le profil
Option A : QR Code (pour smartphone)
pivpn -qr mon-telephoneUn QR code s'affiche dans le terminal.
Sur votre smartphone :
- Installer l'app WireGuard (Android / iOS)
- Ouvrir l'app → + → Scanner le QR code
- Activer la connexion
Option B : Fichier .conf (pour PC)
cat ~/configs/mon-telephone.confCopier le contenu et :
Sur Windows/Mac/Linux :
- Installer WireGuard (Téléchargement)
- Ouvrir WireGuard → Ajouter un tunnel → Importer depuis un fichier
- Coller le contenu ou importer le fichier .conf
- Activer la connexion
Étape 5 : Créer plusieurs profils (optionnel)
pivpn add # Pour chaque appareilExemples :
- mon-telephone
- mon-laptop
- tablette-salon
- pc-bureau
Redirection de port sur votre box
Étape 6 : Configuration de la box Internet
6.1 Trouver l'IP locale du Raspberry Pi
hostname -IExemple de résultat : 192.168.1.50
6.2 Attribuer une IP fixe au Pi
Dans l'interface de votre box (Orange, SFR, Bouygues, etc.) :
- DHCP → Baux statiques ou Réservation d'adresse
- Associer l'adresse MAC du Pi à une IP fixe (ex: 192.168.1.50)
Ou directement sur le Pi (moins recommandé) :
sudo nano /etc/dhcpcd.conf
Ajouter à la fin :
interface eth0
static ip_address=192.168.1.50/24
static routers=192.168.1.1
static domain_name_servers=1.1.1.1 8.8.8.8
6.3 Redirection de port (NAT/PAT)
Dans l'interface de votre box :
| Paramètre | Valeur |
|---|---|
| Nom | WireGuard VPN |
| Protocole | UDP |
| Port externe | 51820 |
| Port interne | 51820 |
| IP locale | 192.168.1.50 (IP du Pi) |
Guides par FAI :
Vérification et tests
Étape 7 : Vérifier que WireGuard fonctionne
7.1 Sur le Raspberry Pi
sudo wg showRésultat attendu :
interface: wg0
public key: xxx...xxx
private key: (hidden)
listening port: 51820
peer: yyy...yyy
endpoint: 82.xxx.xxx.xxx:xxxxx
allowed ips: 10.6.0.2/32
latest handshake: 30 seconds ago
transfer: 2.50 KiB received, 1.80 KiB sent
Si vous voyez latest handshake, c'est bon signe !
7.2 Depuis votre smartphone (en 4G/5G)
- Désactiver le WiFi sur votre téléphone (passer en 4G)
- Activer WireGuard dans l'app
- Tester l'accès:
- Ouvrir un navigateur
- Aller sur http://192.168.1.100 (votre tracker solaire par exemple)
- Si ça s'affiche → SUCCÈS !

7.3 Vérifier votre IP
Avec WireGuard activé :
What Is My IP?
What is my IP? Instantly check your public IP address. My IP address location information shows city, state, postal code, country, and ISP.
Vous devez voir l'IP publique de votre box, pas celle de votre opérateur mobile.
Commandes utiles
Gestion des clients
# Lister tous les clientspivpn list
# Afficher un QR code
pivpn -qr <nom-client>
# Supprimer un client
pivpn remove
# Voir les clients connectés
pivpn -c
# Statistiques
pivpn -d
Gestion du service WireGuard
# Statut du servicesudo systemctl status wg-quick@wg0
# Redémarrer WireGuard
sudo systemctl restart wg-quick@wg0
# Arrêter WireGuard
sudo systemctl stop wg-quick@wg0
# Démarrer WireGuard
sudo systemctl start wg-quick@wg0
# Activer au démarrage (déjà fait par PiVPN)
sudo systemctl enable wg-quick@wg0
Logs et debug
# Logs du servicesudo journalctl -u wg-quick@wg0 -f
# Debug PiVPN
pivpn debug
# Tester la connectivité depuis le Pi
ping 1.1.1.1
DynDNS (si pas d'IP fixe)
Si votre FAI change régulièrement votre IP publique, utilisez un service DynDNS gratuit.
Services DynDNS recommandés
Installation DuckDNS sur le Pi
1. Créer un compte sur DuckDNS
- Aller sur https://www.duckdns.org
- Se connecter (Google, GitHub, etc.)
- Créer un sous-domaine : mon-tracker.duckdns.org
- Noter votre token
2. Configuration sur le Pi
mkdir ~/duckdnscd ~/duckdns
nano duck.sh
Contenu de duck.sh :
#!/bin/bash
echo url="https://www.duckdns.org/update?domains=mon-tracker&token=VOTRE_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -
- mon-tracker par votre sous-domaine
- VOTRE_TOKEN par votre token DuckDNS
3. Tester le script
./duck.shcat duck.log
Résultat attendu : OK
4. Automatiser avec Cron
crontab -eAjouter à la fin :
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
Sauvegarde : Ctrl+X → Y → Entrée
5. Mettre à jour PiVPN avec le DynDNS
sudo nano /etc/pivpn/wireguard/setupVars.confModifier la ligne :
pivpnHOST=mon-tracker.duckdns.org
Sauvegarder et quitter.
Sécurité
Étape 8 : Durcir la sécurité du Raspberry Pi
8.1 Changer le mot de passe par défaut
passwdChoisir un mot de passe fort !
8.2 Désactiver l'authentification SSH par mot de passe
Utiliser uniquement des clés SSH (recommandé)
Sur votre PC local :
ssh-keygen -t ed25519
ssh-copy-id pi@192.168.1.50
Puis sur le Pi :
sudo nano /etc/ssh/sshd_config
Modifier :
PasswordAuthentication no
PubkeyAuthentication yes
Redémarrer SSH :
sudo systemctl restart ssh
8.3 Changer le port SSH (optionnel)
sudo nano /etc/ssh/sshd_configModifier :
Port 2222 # Au lieu de 22
sudo systemctl restart ssh
ssh -p 2222 pi@192.168.1.50
8.4 Installer Fail2Ban (protection contre le bruteforce)
sudo apt install fail2ban -ysudo systemctl enable fail2ban
sudo systemctl start fail2ban
8.5 Vérifier le firewall UFW
sudo ufw statusDoit afficher :
Status: active
To Action From
-- ------ ----
51820/udp ALLOW Anywhere
22/tcp ALLOW Anywhere
Si SSH n'est pas autorisé :
sudo ufw allow 22/tcp
Dépannage
Problème : Impossible de se connecter au VPN
Vérification 1 : Le service tourne-t-il ?
sudo systemctl status wg-quick@wg0Si inactif :
sudo systemctl start wg-quick@wg0
Vérification 2 : Le port est-il bien redirigé ?
Tester depuis l'extérieur (4G) :
nc -vuz VOTRE_IP_PUBLIQUE 51820
Si "Connection refused" → problème de redirection de port
Vérification 3 : Logs WireGuard
sudo journalctl -u wg-quick@wg0 -n 50Problème : Connexion établie mais pas d'accès au réseau local
Vérification 1 : IP forwarding activé ?
sudo sysctl net.ipv4.ip_forwardDoit afficher net.ipv4.ip_forward = 1
Si 0 :
sudo nano /etc/sysctl.conf
Décommenter :
net.ipv4.ip_forward=1
Appliquer :
sudo sysctl -p
Vérification 2 : Firewall qui bloque ?
sudo ufw status verboseAutoriser le trafic WireGuard :
sudo ufw route allow in on wg0
sudo ufw reload
Problème : DynDNS ne se met pas à jour
cat ~/duckdns/duck.logSi KO :
- Vérifier le token
- Vérifier le nom de domaine
- Tester manuellement : ./duck.sh
Problème : Déconnexions fréquentes
Sur le client mobile, modifier la config :
[Interface]
...
PersistentKeepalive = 25
Cela envoie un ping toutes les 25 secondes pour maintenir la connexion.
Résumé - Checklist finale
Sur le Raspberry Pi
- [ ] Raspberry Pi OS à jour
- [ ] WireGuard installé via PiVPN
- [ ] Au moins un profil client créé
- [ ] IP fixe attribuée au Pi
- [ ] Firewall UFW activé
- [ ] Fail2Ban installé (optionnel)
- [ ] DynDNS configuré (si pas d'IP fixe)
Sur la box Internet
- [ ] Port 51820 UDP redirigé vers le Pi
- [ ] IP du Pi réservée dans le DHCP
Sur les clients (smartphone, PC)
- [ ] App WireGuard installée
- [ ] Profil importé (QR code ou .conf)
- [ ] Connexion testée en 4G/5G
- [ ] Accès au réseau local vérifié
Félicitations !
Vous avez maintenant un VPN WireGuard sécurisé pour accéder à :
Votre tracker solaire
Votre système domotique
Votre NAS
Tous vos appareils locaux
Sans exposer de services sur Internet !
Ressources supplémentaires
- Documentation officielle WireGuard
- PiVPN sur GitHub
- Forum Raspberry Pi
- Forum ThéGuilde - Tracker Solaire
Besoin d'aide ?
Posez vos questions sur le forum :
Tutoriel rédigé pour la communauté ThéGuilde
Dernière mise à jour : Novembre 2025
Dernière édition: