Pont WiFi Transparent Raspberry Pi
Créer un Pont WiFi (Bridge) Transparent sur Raspberry Pi
Ce guide permet de configurer un Raspberry Pi en tant que point d'accès WiFi transparent. Contrairement à un hotspot classique (avec NAT), ici le Raspberry Pi agit comme un simple "câble virtuel" entre le WiFi et l'Ethernet. Les clients WiFi obtiendront leurs adresses IP directement depuis votre routeur principal (Box Internet) et seront sur le même réseau local que vos appareils filaires. Source : LLM 🥲
Prérequis
Installer les paquets nécessaires :
sudo apt update
sudo apt install hostapd
# bridge-utils est utile pour le diagnostic (commande brctl), bien que nmcli gère le bridge
sudo apt install bridge-utils
Étape 1 : Exclure wlan0 de NetworkManager
Il est CRUCIAL que NetworkManager ne gère pas l'interface WiFi (wlan0), car c'est hostapd qui va s'en occuper et l'ajouter au bridge. Si NetworkManager tente de la gérer, cela créera des conflits.
Créez le fichier de configuration suivant :
Ajoutez-y le contenu suivant :
Redémarrez NetworkManager pour appliquer le changement :
Vous pouvez vérifier que wlan0 est bien "unmanaged" :
Étape 2 : Créer le Bridge (br0) avec NetworkManager
Nous allons créer une interface virtuelle "bridge" (br0) et y connecter l'interface Ethernet (eth0).
1. Créer le bridge
2. Attacher eth0 au bridge
Il faut modifier la connexion Ethernet existante (souvent appelée "Wired connection 1") pour qu'elle devienne un "esclave" du bridge, ou en créer une nouvelle.
La méthode la plus propre est de modifier la connexion existante pour éviter les conflits d'IP :
# Remplacer "Wired connection 1" par le nom de votre connexion filaire actuelle
sudo nmcli connection modify "Wired connection 1" master br0 slave-type bridge
Si cela ne fonctionne pas ou si vous préférez repartir de zéro pour eth0 :
# Créer une nouvelle connexion slave
sudo nmcli connection add type bridge-slave ifname eth0 master br0
3. Configurer le bridge en DHCP (automatique)
Le bridge va demander une IP à votre routeur, comme le faisait eth0 auparavant.
4. Activer le bridge
sudo nmcli connection up bridge-br0
sudo nmcli connection up "Wired connection 1"
# (ou le nom de votre connexion slave eth0)
À ce stade, votre Raspberry Pi doit avoir accès au réseau via br0. Vérifiez avec ip addr show br0.
Étape 3 : Configurer hostapd
Configurez hostapd pour qu'il crée le réseau WiFi et ajoute automatiquement l'interface wlan0 au bridge br0 défini précédemment.
Éditez le fichier de configuration :
Utilisez la configuration suivante (adaptez le SSID et le mot de passe) :
# Interface WiFi physique
interface=wlan0
# Le bridge auquel ajouter l'interface (IMPORTANT)
bridge=br0
# Driver
driver=nl80211
# Configuration du réseau WiFi
ssid=MonSuperWiFi
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
# Sécurité WPA2
wpa=2
wpa_passphrase=motdepasse123
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
# Option importante pour certains drivers/cartes pour éviter les déconnexions (WDS)
wds_sta=1
Étape 4 : Démarrage final et Vérification
Redémarrez le service hostapd :
Vérification
-
Vérifier le bridge : La commande
brctl showdoit montrer que le bridgebr0contient maintenant deux interfaces :eth0etwlan0.Note :brctl show # Output attendu : # bridge name bridge id STP enabled interfaces # br0 8000.xxxxxxxxxxxx yes eth0 # wlan0wlan0est ajouté dynamiquement par hostapd lorsqu'il démarre. -
Connecter un client : Connectez votre téléphone ou PC au WiFi "MonSuperWiFi". Il devrait obtenir une adresse IP de votre box Internet (ex: 192.168.1.x) et non une IP spécifique au Pi.
Dépannage
-
Les clients se connectent mais se déconnectent immédiatement : Assurez-vous d'avoir ajouté
wds_sta=1dans le fichierhostapd.conf. C'est souvent nécessaire pour les bridges WiFi. -
wlan0n'apparaît pas dans le bridge : Vérifiez les logs de hostapd :sudo journalctl -u hostapd -f. Assurez-vous quebridge=br0est bien présent danshostapd.conf. -
Perte de connexion Ethernet sur le Pi : C'est souvent dû à un conflit entre une configuration manuelle (
/etc/network/interfaces) et NetworkManager. Préférez la configuration TOUT NetworkManager (Étape 2) et assurez-vous que/etc/network/interfacesest vide ou ne configure paseth0/br0.