Qu'est-ce qu'OpenWrt ?
OpenWrt est un système d'exploitation Linux conçu pour les appareils embarqués, spécifiquement pensé pour les routeurs, les passerelles et autres équipements réseau. La différence majeure par rapport aux firmwares de routeurs classiques :
- Un gestionnaire de paquets complet (opkg) : installez/supprimez des logiciels à volonté, comme
aptsous Ubuntu - Un système de fichiers inscriptible : fini les fonctionnalités fermées pré-installées par le fabricant
- Un design modulaire : n'installez que ce dont vous avez besoin, pas de bloatware
- Open source et gratuit : licence GPL-2.0, plus de 20 000 stars sur GitHub
En résumé, un routeur flashé avec OpenWrt devient un mini serveur Linux. Vous pouvez l'utiliser comme serveur DHCP, pare-feu, serveur DNS, bloqueur de publicités, passerelle VPN, hub domotique, et même y exécuter des conteneurs Docker.
OpenWrt vs firmware de routeur classique
| Fonctionnalité | Firmware classique | OpenWrt |
|---|---|---|
| Système de fichiers | Lecture seule (squashfs) | Lecture/écriture |
| Installation de logiciels | Pré-installé par le fabricant, non extensible | Gestionnaire de paquets opkg, des milliers de paquets |
| Configuration personnalisée | Limitée | Contrôle total (SSH + interface web LuCI) |
| Cycle de mises à jour | Décidé par le fabricant (parfois des années sans update) | Maintenu par la communauté, mises à jour continues |
| Code source | Généralement propriétaire | Entièrement open source (GPL-2.0) |
OpenWrt vs DD-WRT vs Padavan
OpenWrt est le système open source pour routeurs qui possède l'écosystème le plus riche. En comparaison : - DD-WRT : une longue histoire, mais la gestion de paquets est moins flexible que celle d'OpenWrt - Padavan : populaire en Chine, mais limité à certains chipsets spécifiques, personnalisation réduite - LEDE : a fusionné avec OpenWrt en 2018, n'existe plus en tant que projet indépendant
Choix du matériel : les appareils adaptés pour OpenWrt en 2026
Option 1 : Recycler un ancien routeur (coût zéro)
Si vous avez un routeur mis au rebut à la maison, commencez par vérifier sa compatibilité :
- Rendez-vous sur la base de données matérielle d'OpenWrt
- Entrez la marque et le modèle du routeur
- Vérifiez le statut :
Supported(parfaitement supporté) /Technically available(fonctionnel mais demande du travail) /Unsupported(non supporté)
Routeurs couramment bien supportés : - Xiaomi Redmi AX6S / AX3000T - Phicomm K2P / K3 - Netgear R6220 / R7800 - ASUS RT-AC58U / RT-ACRH17 - TP-Link Archer C7 v2/v4/v5
Option 2 : Un appareil soft router dédié (recommandé)
Si vous voulez vraiment vous lancer dans OpenWrt, un soft router x86 est la meilleure option :
| Appareil | Fourchette de prix | Caractéristiques |
|---|---|---|
| Mini PC Intel N100 | ¥300-600 | Basse consommation (TDP 6W), puissance surdimensionnée |
| Changwang N5105 / N6005 | ¥400-800 | 4 ports Ethernet, le classique du soft router |
| Beikong J4125 | ¥500-900 | 6 ports Ethernet, stable et fiable |
| Ancien portable | ¥0 | UPS intégré (batterie), économe en énergie |
Recommandation 2026 : le mini PC Intel N100 offre le meilleur rapport qualité-prix. TDP de seulement 6W, quatre cœurs quatre threads, il gère OpenWrt + Docker sans problème, trouvable autour de 300 ¥ sur le marché de l'occasion.
Option 3 : Cartes de développement
- Raspberry Pi 4 / 5 : support officiel OpenWrt, idéal pour débuter
- NanoPi R4S / R5S : produit par FriendlyElec, double port Ethernet, choix populaire pour les soft routers
- Cartes RK3568 / RK3588 : très performantes, mais demandent un certain niveau technique
Tutoriel de flashage de zéro
⚠️ Avertissement : le flashage comporte des risques. Une mauvaise manipulation peut rendre votre routeur inutilisable (brique). Recherchez d'abord un tutoriel spécifique à votre modèle.
Étape 1 : Sauvegarder le firmware d'origine
Sauvegardez toujours avant de flasher ! En cas de problème, vous pourrez restaurer.
Sauvegarde via SSH (si le routeur a SSH activé) :
# Connexion SSH au routeur
ssh root@192.168.1.1
# Sauvegarde complète du firmware (envoi via TFTP vers votre PC)
cat /dev/mtd0 > /tmp/original_firmware.bin
# Puis téléchargez ce fichier depuis le routeur
Sauvegarde via port série TTL (méthode universelle) :
# Nécessite un module USB vers TTL (CH340/CP2102, ~¥10)
# Après connexion, lancez sur votre PC
minicom -D /dev/ttyUSB0 -b 115200
# Une fois dans U-Boot, exécutez les commandes de sauvegarde
Étape 2 : Flasher OpenWrt
Méthode A : Via l'interface web (le plus simple)
- Téléchargez l'image firmware correspondant à votre modèle (fichier
.bin) - Rendez-vous sur le Sélecteur de firmware OpenWrt - Entrez le modèle de votre appareil, choisissez la dernière version - Connectez-vous à la page d'administration du routeur (généralement
192.168.1.1) - Trouvez « Outils système → Mise à jour du firmware »
- Téléversez le fichier
.bin, attendez le redémarrage automatique
Méthode B : Via le bootloader Breed (recommandé, anti-brique)
Breed est un bootloader U-Boot indestructible. Une fois Breed installé, le risque de brique est quasiment nul.
# 1. Flashez d'abord Breed (nécessite SSH activé ou connexion TTL)
# Les fichiers Breed sont généralement au format .bin
# 2. Maintenez le bouton Reset enfoncé pendant la mise sous tension pour accéder à l'interface web Breed
# Accédez via le navigateur à 192.168.1.1
# 3. Dans l'interface Breed, sélectionnez le firmware OpenWrt et flashez
# Breed permet la récupération : même en cas d'erreur, vous pouvez reflasher
Méthode C : Installation via clé USB pour soft router x86
# 1. Téléchargez l'image OpenWrt pour x86 (combined-ext4.img.gz)
wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz
# 2. Décompressez
gunzip openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz
# 3. Écrivez sur la clé USB (supposons que la clé est /dev/sdb, vérifiez bien !)
sudo dd if=openwrt-23.05.3-x86-64-generic-ext4-combined.img of=/dev/sdb bs=4M status=progress
# 4. Bootez le soft router depuis la clé USB, OpenWrt s'installera automatiquement sur le disque interne
Étape 3 : Première configuration
Après un flashage réussi, OpenWrt par défaut :
- IP LAN :
192.168.1.1 - Interface web :
http://192.168.1.1(LuCI) - SSH :
ssh root@192.168.1.1(sans mot de passe)
# Connexion SSH (pas de mot de passe la première fois, appuyez sur Entrée)
ssh root@192.168.1.1
# Définir le mot de passe root
passwd
# Mettre à jour la liste des paquets
opkg update
# Installer le pack de langue chinoise
opkg install luci-i18n-base-zh-cn
# Actualisez l'interface web, elle passe en chinois
Étape 4 : Configuration réseau de base
# Éditer le fichier de configuration réseau
vi /etc/config/network
# Exemple de configuration LAN typique :
# config interface 'lan'
# option type 'bridge'
# option ifname 'eth0'
# option proto 'static'
# option ipaddr '192.168.2.1'
# option netmask '255.255.255.0'
# Redémarrer le service réseau
/etc/init.d/network restart
Mise en pratique des fonctions essentielles
1. Configuration du serveur DHCP
OpenWrt active DHCP par défaut, vous pouvez personnaliser le pool d'adresses :
# Éditer la configuration DHCP
vi /etc/config/dhcp
# Paramètres clés :
# config dhcp 'lan'
# option interface 'lan'
# option start '100' # Adresse de départ
# option limit '150' # Taille du pool
# option leasetime '12h' # Durée du bail
# option ra 'server' # Mode RA IPv6
# option dhcpv6 'server' # DHCP IPv6
# Redémarrer le service DHCP
/etc/init.d/dnsmasq restart
Attribution d'IP statique (IP fixe pour un appareil spécifique) :
# Dans /etc/config/dhcp, ajoutez :
# config host
# option name 'nas'
# option mac 'AA:BB:CC:DD:EE:FF'
# option ip '192.168.2.100'
2. Configuration du pare-feu
Le pare-feu d'OpenWrt repose sur iptables/nftables, règles par défaut :
- Zone LAN : tout le trafic entrant/sortant autorisé
- Zone WAN : trafic entrant refusé, sortant autorisé
- Règles de transfert : LAN → WAN autorisé, WAN → LAN refusé
Ouvrir un port spécifique (par ex. interface de gestion NAS) :
# Via l'interface web LuCI : Réseau → Pare-feu → Redirection de port
# Ou en ligne de commande :
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-NAS'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest_port='8080'
uci set firewall.@rule[-1].target='ACCEPT'
uci set firewall.@rule[-1].proto='tcp'
uci commit firewall
/etc/init.d/firewall restart
3. Configuration DNS
Accélération DNS avec SmartDNS :
# Installer SmartDNS
opkg install smartdns
# Configurer SmartDNS avec plusieurs serveurs DNS amont
vi /etc/smartdns/smartdns.conf
# Ajouter des DNS amont :
# server 223.5.5.5 -group alidns
# server 119.29.29.29 -group dnspod
# server 8.8.8.8 -group google
# Définir le port d'écoute
# bind :6053
# Configurer le cache DNS
# cache-size 512
# Redémarrer le service
/etc/init.d/smartdns enable
/etc/init.d/smartdns restart
4. Blocage de publicités (AdGuard Home / Adbyby)
Option A : Installer AdGuard Home (recommandé)
# Via opkg
opkg install adguardhome
# Ou installation manuelle de la dernière version :
wget https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_armv7.tar.gz
tar -xzf AdGuardHome_linux_armv7.tar.gz
./AdGuardHome -s install
# Accédez via le navigateur à http://192.168.2.1:3000 pour l'initialisation
Option B : Utiliser Adbyby (plus léger)
opkg install adbyby
/etc/init.d/adbyby enable
/etc/init.d/adbyby start
5. Serveur VPN
Configurer un VPN WireGuard (la solution VPN la plus recommandée en 2026) :
# Installer WireGuard
opkg install wireguard-tools luci-app-wireguard
# Générer la configuration WireGuard sur le port WAN
wg genkey > /etc/wireguard/server_private.key
wg pubkey < /etc/wireguard/server_private.key > /etc/wireguard/server_public.key
# Éditer la configuration
vi /etc/wireguard/wg0.conf
Exemple de fichier de configuration :
[Interface]
PrivateKey = <votre clé privée serveur>
Address = 10.8.0.1/24
ListenPort = 51820
# Client 1
[Peer]
PublicKey = <clé publique du client>
AllowedIPs = 10.8.0.2/32
# Démarrer WireGuard
wg-quick up wg0
# Activer au démarrage
/etc/init.d/wireguard enable
Fonctionnalités avancées
Support des conteneurs Docker
OpenWrt peut exécuter Docker, les possibilités sont infinies !
# Installer Docker
opkg install docker docker-compose luci-app-dockerman
# Démarrer le service Docker
/etc/init.d/dockerd enable
/etc/init.d/dockerd start
# Vérifier l'installation
docker --version
docker info
Cas pratique : exécuter Home Assistant (domotique) sur OpenWrt :
# Créer un répertoire de stockage persistant
mkdir -p /srv/homeassistant
# Télécharger et exécuter
docker run -d \
--name homeassistant \
--restart=unless-stopped \
--network=host \
-v /srv/homeassistant:/config \
homeassistant/home-assistant:stable
# Accédez via le navigateur à http://192.168.2.1:8123
Cas pratique : déployer AdGuard Home (via Docker) :
docker run -d \
--name adguardhome \
--restart=unless-stopped \
--network=host \
-v /srv/adguard/work:/opt/adguardhome/work \
-v /srv/adguard/conf:/opt/adguardhome/conf \
adguard/adguardhome:latest
Accès à distance (NAT traversal)
Utiliser frp pour l'accès à distance :
# Installer le client frp
opkg install frp
# Configurer frpc
vi /etc/frpc/frpc.toml
serverAddr = "IP de votre serveur frp"
serverPort = 7000
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 8080
# Démarrer frp
/etc/init.d/frpc enable
/etc/init.d/frpc start
Monitoring du trafic
# Installer nlbwmon (statistiques de trafic légères)
opkg install nlbwmon luci-app-nlbwmon
# Ou installer BanDaWidth, plus complet
opkg install bandwidth
# Installer le monitoring de trafic en temps réel (version OpenWrt d'iftop)
opkg install iftop
# Voir en temps réel quelle IP consomme le plus de bande passante
iftop -i br-lan
Support IPv6
OpenWrt gère IPv6 de manière très mature :
# Activer IPv6 (plus intuitif via LuCI)
# Réseau → Interfaces → LAN → Éditer → Serveur DHCP → Paramètres IPv6
# Via la ligne de commande :
uci set network.lan6='interface'
uci set network.lan6.device='@device'
uci set network.lan6.proto='dhcpv6'
uci commit network
/etc/init.d/network restart
Maintenance quotidienne
Mise à jour du firmware
# Méthode 1 : Via l'interface web LuCI
# Système → Sauvegarde/Mise à jour → Télécharger le nouveau firmware → Flasher
# Méthode 2 : En ligne de commande
sysupgrade -v /tmp/openwrt-xxx-squashfs-sysupgrade.bin
# Mise à jour en conservant la configuration (recommandé) :
sysupgrade -c /tmp/openwrt-xxx-squashfs-sysupgrade.bin
# Sans conserver la configuration (installation propre) :
sysupgrade -n /tmp/openwrt-xxx-squashfs-sysupgrade.bin
Sauvegarde et restauration de la configuration
# Sauvegarder la configuration actuelle
sysupgrade -b /tmp/config-backup.tar.gz
# Restaurer depuis une sauvegarde
sysupgrade -r /tmp/config-backup.tar.gz
# Voir le contenu de la sauvegarde
tar tzf /tmp/config-backup.tar.gz
Commandes opkg utiles
# Mettre à jour les sources de logiciels
opkg update
# Rechercher des paquets
opkg find luci-app-*
# Installer un paquet
opkg install <nom-du-paquet>
# Lister les paquets installés
opkg list-installed
# Supprimer un paquet
opkg remove <nom-du-paquet>
# Nettoyer le cache
opkg clean
Résolution des problèmes courants
1. Pas d'accès Internet après avoir flashé OpenWrt
# Vérifier si le port WAN a obtenu une IP
ifconfig eth1
# Vérifier la passerelle par défaut
route -n
# Tester le DNS
nslookup baidu.com
# Configurer le DNS manuellement
vi /etc/resolv.conf
# Ajouter : nameserver 223.5.5.5
# Redémarrer le réseau
/etc/init.d/network restart
2. Interface web LuCI inaccessible
# Vérifier le statut du service uhttpd
/etc/init.d/uhttpd status
# Redémarrer le service web
/etc/init.d/uhttpd restart
# Vérifier les règles du pare-feu
iptables -L -n
3. Le WiFi ne se lance pas
# Vérifier la configuration WiFi
wifi status
# Régénérer la configuration par défaut
wifi config
# Éditer la configuration WiFi
vi /etc/config/wireless
# Activer le WiFi
uci set wireless.@wifi-device[0].disabled=0
uci commit wireless
wifi reload
4. Que faire si l'appareil est brické
- Utilisateurs de Breed : maintenez le bouton Reset enfoncé pendant la mise sous tension, accédez à l'interface de récupération Breed et reflasher
- Utilisateurs du port série TTL : accédez à U-Boot via le port série et reflasher le firmware
- Récupération TFTP : certains routeurs supportent un mode de récupération TFTP, cherchez la méthode spécifique à votre modèle
Résumé
OpenWrt est la meilleure plateforme open source pour les développeurs qui veulent explorer le réseau. Du flashage d'un ancien routeur à la mise en place d'un soft router x86, de la configuration DHCP/pare-feu de base à Docker + domotique, OpenWrt transforme chaque routeur en un puissant serveur Linux.
Ressources clés mentionnées dans cet article : - Site officiel OpenWrt - Sélecteur de firmware - Base de données matérielle - Forum OpenWrt - Répertoire GitHub
Lectures suivantes recommandées : - Ventoy : l'outil ultime pour créer des clés USB multi-boot — l'outil de création de clé système avant le flashage - Guide des formats de fichiers Linux — comprendre les formats de fichiers firmware
Si cet article vous a été utile, n'hésitez pas à le partager avec d'autres développeurs !