Skip to content

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 :

sudo nano /etc/NetworkManager/conf.d/unmanaged.conf

Ajoutez-y le contenu suivant :

[keyfile]
unmanaged-devices=interface-name:wlan0

Redémarrez NetworkManager pour appliquer le changement :

sudo systemctl restart NetworkManager

Vous pouvez vérifier que wlan0 est bien "unmanaged" :

nmcli device status
# La ligne wlan0 doit indiquer "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

sudo nmcli connection add type bridge ifname br0 con-name bridge-br0

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.

sudo nmcli connection modify bridge-br0 ipv4.method auto

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 :

sudo nano /etc/hostapd/hostapd.conf

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 :

sudo systemctl restart hostapd

Vérification

  1. Vérifier le bridge : La commande brctl show doit montrer que le bridge br0 contient maintenant deux interfaces : eth0 et wlan0.

    brctl show
    # Output attendu :
    # bridge name   bridge id           STP enabled   interfaces
    # br0           8000.xxxxxxxxxxxx   yes           eth0
    #                                                 wlan0
    
    Note : wlan0 est ajouté dynamiquement par hostapd lorsqu'il démarre.

  2. 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=1 dans le fichier hostapd.conf. C'est souvent nécessaire pour les bridges WiFi.

  • wlan0 n'apparaît pas dans le bridge : Vérifiez les logs de hostapd : sudo journalctl -u hostapd -f. Assurez-vous que bridge=br0 est bien présent dans hostapd.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/interfaces est vide ou ne configure pas eth0/br0.