Openwrt

OpenWrt est un système d'exploitation pour routeur gratuit et open source, développé sur le noyau Linux et largement utilisé dans les soft routers, routeurs matériels et divers appareils réseau embarqués. Contrairement aux firmwares de routeur classiques, OpenWrt fournit un système de fichiers entièrement accessible en écriture avec gestion de paquets, vous permettant d'installer librement toutes sortes d'applications pour étendre les fonctionnalités de votre routeur et vous affranchir des restrictions imposées par les fabricants.

L'un des systèmes de routage open source les plus populaires, OpenWrt bénéficie d'une communauté de développeurs active et d'un écosystème de plugins riche, avec plus de 1 000 paquets logiciels disponibles. Que vous souhaitiez transformer un routeur classique en soft router intelligent, mettre en place un NAS domestique ou filtrer les publicités, OpenWrt répondra à vos besoins.

openwrt

Préparation

Configuration matérielle requise

Pour choisir un routeur compatible OpenWrt, privilégiez un appareil doté d'au moins 8 Mo de mémoire flash et 64 Mo de RAM afin de garantir le bon fonctionnement complet du système d'exploitation et de l'interface de gestion Web (LuCI).

Choix du firmware

Il est impératif de sélectionner le fichier firmware correspondant au modèle exact et à la version matérielle de votre routeur. Par exemple, un TP-Link WR841N version matérielle 8 nécessite le firmware spécifiquement conçu pour cette version ; utiliser le mauvais fichier risque de « briquer » l'appareil. Les fichiers firmware corrects se terminent généralement par factory.bin.

Vous pouvez vérifier la compatibilité de votre appareil via le sélecteur de firmware officiel OpenWrt.

Installation du firmware OpenWrt

Procédure de flashage

Le flashage du firmware OpenWrt s'effectue via l'interface de gestion Web d'origine du routeur :

  1. Connectez votre ordinateur au routeur avec un câble Ethernet (ne flashez jamais via WiFi)
  2. Connectez-vous à l'interface de gestion d'origine
  3. Accédez à « Outils système » → « Mise à jour du firmware »
  4. Sélectionnez le fichier firmware OpenWrt factory.bin téléchargé
  5. Cliquez sur « Mettre à jour » et attendez le redémarrage du routeur

⚠️ Important : Ne coupez jamais l'alimentation et ne débranchez aucun câble pendant le flashage, sous peine de briquer le routeur.

Premier accès

Une fois le flashage terminé, connectez-vous au routeur via un câble Ethernet et accédez à l'interface de gestion Web OpenWrt (LuCI) en naviguant vers http://192.168.1.1. Lors de la première connexion, aucun mot de passe n'est requis : cliquez simplement sur « Connexion ».

Sécurisation et configuration de base

Après l'installation d'OpenWrt, la première étape consiste à sécuriser le système :

Définir le mot de passe root

  1. Accédez à « Système » → « Administration »
  2. Dans le champ « Mot de passe du routeur », définissez un nouveau mot de passe root
  3. Cliquez sur « Enregistrer et appliquer »

Activer le WiFi

Par défaut, la fonctionnalité sans fil d'OpenWrt est désactivée et doit être activée manuellement :

  1. Accédez à « Réseau » → « Sans fil »
  2. Cliquez sur le bouton « Modifier » correspondant à votre périphérique sans fil
  3. Cochez « Activer le sans fil »
  4. Dans l'onglet « Sécurité sans fil », configurez le chiffrement (recommandé : WPA2-PSK) et définissez un mot de passe
  5. Cliquez sur « Enregistrer et appliquer »

Modifier l'adresse IP du LAN

Si un autre routeur de votre réseau utilise déjà 192.168.1.1, modifiez l'IP LAN d'OpenWrt pour éviter les conflits :

  1. Accédez à « Réseau » → « Interfaces » → « LAN » → « Modifier »
  2. Modifiez l'adresse IPv4 (par exemple 192.168.9.1)
  3. Cliquez sur « Enregistrer et appliquer »
  4. Important : modifiez également les paramètres DHCP pour que la plage d'adresses attribuées corresponde au même sous-réseau que la nouvelle IP LAN

Après la modification, vous devrez utiliser la nouvelle adresse IP pour accéder à l'interface de gestion.

Configuration réseau de base

Baux DHCP

Dans « Statut » → « Baux DHCP », vous pouvez consulter tous les périphériques connectés et leurs attributions d'adresses IP.

Interfaces réseau

OpenWrt prend en charge plusieurs protocoles d'interface :

Protocole Description
DHCP Obtient automatiquement une IP du routeur amont, le plus courant
Static (statique) Configure manuellement l'adresse IP, le masque de sous-réseau et la passerelle
PPPoE Connexion par numérotation, nécessite les identifiants fournis par votre FAI

Redirection de ports

Dans « Réseau » → « Pare-feu » → « Redirection de ports », vous pouvez configurer des règles de redirection de ports pour acheminer les requêtes externes vers un serveur de votre réseau local.

Mode client sans fil (relais/pont)

OpenWrt peut être configuré en client sans fil pour se connecter à un réseau WiFi existant et partager cette connexion avec des appareils câblés sur le LAN. Cette fonction est couramment utilisée pour étendre la couverture réseau :

  1. Accédez à « Réseau » → « Sans fil »
  2. Cliquez sur « Scanner » pour rechercher les signaux WiFi disponibles
  3. Sélectionnez le réseau cible et cliquez sur « Rejoindre le réseau »
  4. Configurez le mode en « Client »
  5. Définissez les paramètres de sécurité sans fil (mot de passe, etc.)
  6. Enregistrez et appliquez

Journaux système

OpenWrt stocke des journaux système détaillés permettant de surveiller en temps réel l'état du réseau, notamment quels appareils ont obtenu une adresse IP et les activités système.

Dans LuCI, consultez-les via « Statut » → « Journal système », ou exécutez la commande logread via SSH.

Plugins LuCI recommandés

La force d'OpenWrt réside dans son riche écosystème de plugins. Voici quelques plugins LuCI pratiques :

Plugin Fonction
luci-app-statistics Graphiques historiques du routeur : surveillance CPU, RAM, trafic réseau, etc.
luci-app-firewall Gestion visuelle du pare-feu
luci-app-adblock Filtrage publicitaire, blocage automatique des domaines publicitaires
luci-app-upnp Support UPnP, mappage automatique de ports

Pour installer des plugins, exécutez via SSH :

BASH
opkg update
opkg install luci-app-statistics

Ou recherchez et installez directement depuis « Système » → « Logiciels » dans LuCI.

Configuration avancée

Guide de configuration du routeur auxiliaire

Le routeur auxiliaire (Single-Arm Router) est un mode de déploiement courant pour les soft routers. Il ne remplace pas votre routeur principal : OpenWrt s'intègre simplement comme appareil auxiliaire dans votre réseau existant.

Pourquoi utiliser un routeur auxiliaire ?

  • Pas de perturbation du réseau existant : le routeur principal continue de gérer DHCP et NAT, tandis qu'OpenWrt fournit des fonctionnalités supplémentaires en dérivation
  • Commutation flexible : basculez la passerelle vers OpenWrt quand vous en avez besoin, sinon gardez la configuration d'origine
  • Idéal pour les maisons et petites entreprises : un mini PC x86 + un routeur principal suffisent

Configuration réseau du routeur auxiliaire

  1. Accédez à « Réseau » → « Interfaces » → « LAN » → « Modifier »
  2. Modifiez les paramètres suivants : - Adresse IPv4 : définissez une IP dans le même sous-réseau que le routeur principal. Si le routeur principal est 192.168.1.1, attribuez 192.168.1.2 au routeur auxiliaire - Masque de sous-réseau : 255.255.255.0 - Passerelle : pointe vers l'IP du routeur principal, par ex. 192.168.1.1 - DNS : utilisez un DNS public comme 223.5.5.5 (Alibaba) ou 119.29.29.29 (Tencent)
  3. Désactivez le service DHCP : dans l'onglet « Serveur DHCP », cochez « Ignorer cette interface »
  4. Cliquez sur « Enregistrer et appliquer »

Utiliser le routeur auxiliaire depuis les clients

Deux méthodes pour router le trafic des appareils via le routeur auxiliaire :

Méthode 1 : définir manuellement la passerelle (recommandé) - Sur les appareils devant passer par le routeur auxiliaire, définissez manuellement la passerelle sur l'IP du routeur auxiliaire (ex. 192.168.1.2) - Idéal quand seuls certains appareils nécessitent des fonctionnalités spéciales

Méthode 2 : rediriger le DHCP du routeur principal vers le routeur auxiliaire - Dans les paramètres DHCP du routeur principal, pointez la passerelle par défaut vers l'IP du routeur auxiliaire - Tous les appareils passent automatiquement par le routeur auxiliaire, adapté à la domotique complète ou au filtrage publicitaire

Déploiement de conteneurs Docker

OpenWrt prend en charge l'exécution de conteneurs Docker, permettant de déployer divers services directement sur le routeur.

Installer Docker

BASH
# Mettre à jour les sources de paquets
opkg update

# Installer les paquets Docker
opkg install docker docker-cli luci-app-dockerman

# Démarrer le service Docker
/etc/init.d/dockerd enable
/etc/init.d/dockerd start

Une fois installé, un menu « Docker » apparaît dans l'interface LuCI pour gérer les conteneurs via le Web.

Déploiement de conteneurs Docker courants

Déployer AdGuard Home (filtrage publicitaire) :

BASH
docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  -p 53:53/tcp -p 53:53/udp \
  -p 80:80/tcp -p 3000:3000/tcp \
  -v /etc/adguardhome/work:/opt/adguardhome/work \
  -v /etc/adguardhome/conf:/opt/adguardhome/conf \
  adguard/adguardhome

Déployer Home Assistant (domotique) :

BASH
docker run -d \
  --name homeassistant \
  --restart unless-stopped \
  --network host \
  -v /etc/homeassistant:/config \
  ghcr.io/home-assistant/home-assistant:stable

Déployer Aria2 (gestionnaire de téléchargement) :

BASH
docker run -d \
  --name aria2-pro \
  --restart unless-stopped \
  -p 6800:6800 \
  -p 6880:6880 \
  -e PUID=1000 -e PGID=1000 \
  -e RPC_SECRET=your-secret-token \
  -v /mnt/downloads:/downloads \
  p3terx/aria2-pro

Note : L'exécution de Docker sur un routeur nécessite des ressources matérielles suffisantes. Prévoyez au minimum 2 Go de RAM et 8 Go de stockage.

Multi-WAN et répartition de charge

Le multi-WAN permet à OpenWrt d'utiliser simultanément plusieurs connexions Internet pour augmenter la bande passante totale ou assurer une redondance.

Configuration multi-WAN

  1. Installez les paquets nécessaires :
BASH
opkg update
opkg install luci-app-mwan3
  1. Accédez à « Réseau » → « Interfaces » et ajoutez plusieurs interfaces WAN : - WAN1 : connectée à l'Internet 1 (ex. eth1) - WAN2 : connectée à l'Internet 2 (ex. eth2)

  2. Accédez à « Système » → « Répartition de charge (MWAN3) » pour configurer les stratégies : - Répartition de charge : le trafic est distribué proportionnellement sur plusieurs WAN - Mode actif/passif : basculement automatique vers le WAN de secours en cas de panne du WAN principal - Routage par stratégie : certains IP/ports passent par un WAN spécifique

Exemple de configuration MWAN3

BASH
# Vérifier l'état des interfaces WAN
mwan3 status

# Vérifier les stratégies
mwan3 policy

Solutions de filtrage publicitaire

Plusieurs options existent pour filtrer les publicités sur OpenWrt :

Option 1 : AdBlock (léger)

BASH
opkg install luci-app-adblock

AdBlock modifie la résolution DNS pour rediriger les domaines publicitaires vers 0.0.0.0, bloquant ainsi les publicités. Configuration simple et faible consommation de ressources.

Option 2 : AdGuard Home (recommandé)

Déployé via Docker (voir ci-dessus), il offre des fonctionnalités plus avancées : - Règles de filtrage personnalisables - Journaux de requêtes détaillés - Contrôle parental - DNS amont configurable

Option 3 : PassWall / OpenClash

Pour les utilisateurs ayant des besoins réseau spécifiques, ces outils prennent en charge plusieurs protocoles proxy et règles de routage.

BASH
# Exemple avec PassWall
opkg install luci-app-passwall

Note : Ces outils sont destinés à la recherche technique et à un usage légal. Veuillez respecter les lois en vigueur dans votre pays.

Structure des fichiers de configuration

Les fichiers de configuration d'OpenWrt utilisent une structure de sections et d'options/valeurs, situés dans le répertoire /etc/config/.

  • Syntaxe générale : config <type> ["<nom>"] pour définir une section, option <nom> "<valeur>" pour définir une option
  • Ces fichiers sont analysés par le système UCI (Unified Configuration Interface)

Fichiers de configuration réseau

La configuration des interfaces réseau est stockée dans /etc/config/network et peut utiliser les protocoles suivants :

  • none — non configuré
  • static — IP statique (nécessite ipaddr et netmask)
  • dhcp — attribution automatique
  • pppoe — connexion par numérotation

Configuration du commutateur et des VLAN

OpenWrt prend en charge la configuration de commutateur pour les VLAN :

  • La configuration du commutateur est stockée dans /etc/config/network
  • Sur le matériel Broadcom, le nom de la section doit être eth0
  • Chaque VLAN est nommé vlan<n>, où n est le numéro du VLAN
  • Marquage des ports : * (VLAN par défaut), u (non marqué), t (marqué)
  • Le port CPU sur le matériel Broadcom est le port 5

Configuration sans fil (ligne de commande)

Les paramètres WiFi sont configurés dans /etc/config/wireless, chaque pilote sans fil ayant un fichier de configuration correspondant dans /lib/wifi/<nom_du_pilote>.sh.

Options de configuration courantes :

  • Niveau périphérique : distance, mode, diversity, rxantenna, txantenna, txpower
  • Niveau interface : network, device, mode, ssid, bssid

Les modes sans fil pris en charge incluent : point d'accès (AP), client (Client), Ad-hoc, moniteur (Monitor) et WDS point-à-point.

Authentification 802.1x

OpenWrt prend en charge l'authentification 802.1x (configurations client et point d'accès), avec support des types EAP TLS, TTLS et PEAP.

Interfaces WAN et WAN6

  • WAN : connexion amont IPv4
  • WAN6 : connexion amont IPv6
  • LAN : gère les connexions aval IPv4 et IPv6, pas besoin d'interface LAN6 séparée

Hotplug (connexion à chaud)

Les scripts hotplug permettent de configurer dynamiquement OpenWrt en réponse à des événements matériels, par exemple le montage automatique lors de l'insertion d'un périphérique USB.

Scripts d'initialisation (Init)

Les scripts de démarrage de tous les services système se trouvent dans /etc/init.d/, utilisant /etc/rc.common comme wrapper.

Commandes courantes :

BASH
/etc/init.d/<service> enable    # Activer au démarrage
/etc/init.d/<service> start     # Démarrer immédiatement
/etc/init.d/<service> stop      # Arrêter le service
/etc/init.d/<service> restart   # Redémarrer le service

Autres informations pratiques

Accès SSH

SSH permet la gestion en ligne de commande d'OpenWrt :

BASH
ssh root@192.168.1.1

L'accès SSH doit être activé dans « Système » → « Administration » → « Accès SSH ».

Éditeurs de texte

vi et nano sont disponibles pour éditer les fichiers de configuration en ligne de commande. Nano est recommandé pour les débutants :

BASH
opkg install nano
nano /etc/config/network

Outils de gestion Windows

Pour gérer OpenWrt depuis Windows, utilisez ces outils :

  • PuTTY — client SSH
  • WinSCP — transfert de fichiers SFTP
  • SmarTTY — client SSH moderne
  • cmder — ligne de commande améliorée

Développement et personnalisation (avancé)

📌 Cette section s'adresse aux développeurs. Si vous utilisez simplement OpenWrt comme routeur, vous pouvez la sauter.

Système de construction

Le système de construction OpenWrt permet aux développeurs de créer des images firmware personnalisées via la compilation croisée.

Récupération du code source

BASH
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt

Structure des répertoires principaux :

Répertoire Description
tools/ Outils de construction
toolchain/ Chaîne de compilation croisée
package/ Définitions de paquets
target/ Configuration de la plateforme cible

Configuration et compilation

BASH
./scripts/feeds update -a    # Mettre à jour les sources de paquets
./scripts/feeds install -a   # Installer les sources de paquets

make menuconfig              # Configurer la compilation : plateforme, toolchain et paquets
make -j$(nproc)              # Lancer la compilation

Paquets

Pratiquement tout dans le firmware OpenWrt est un paquet au format .ipk, que vous pouvez librement ajouter ou supprimer.

Créer un paquet personnalisé

Créez un Makefile pour définir un nouveau paquet :

MAKEFILE
include $(TOPDIR)/rules.mk

PKG_NAME:=my-package
PKG_VERSION:=1.0
PKG_RELEASE:=1

include $(INCLUDE_DIR)/package.mk

define Package/my-package
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=My custom package
endef

define Package/my-package/install
  $(INSTALL_DIR) $(1)/usr/bin
  $(INSTALL_BIN) ./files/my-script $(1)/usr/bin/
endef

$(eval $(call BuildPackage,my-package))

Options configurables : PKG_NAME, PKG_VERSION, PKG_RELEASE, PKG_SOURCE, PKG_SOURCE_URL, PKG_MD5SUM, etc.

Créer un paquet de module noyau

Créez un paquet pour un module noyau en définissant une section KernelPackage. Options configurables : TITLE, DESCRIPTION, SUBMENU, KCONFIG, FILES et AUTOLOAD.

Dépannage

BASH
# Diagnostiquer si un paquet apparaît dans menuconfig
make -C package/<nom> DUMP=1 V=99

# Nettoyer un paquet spécifique
make package/<nom>/clean V=99

# Installer un paquet spécifique
make package/<nom>/install V=99

Ajouter le support d'une nouvelle plateforme

Les techniques pour porter OpenWrt sur un nouvel appareil incluent :

  • Identification du système d'exploitation (via nmap, etc.)
  • Scan de ports
  • Analyse d'images firmware binaires
  • Vérification de la capacité de la mémoire flash
  • Connexion au port série pour le débogage

Une fois les informations sur l'appareil et le kit de développement obtenus, vous pouvez adapter les patches noyau et les pilotes binaires pour OpenWrt, développer de nouveaux pilotes de mappage flash et des outils de construction de firmware.

Signaler des bugs

OpenWrt utilise GitHub Issues pour les rapports de bugs et les demandes de fonctionnalités. Les développeurs peuvent fermer, accepter et résoudre les tickets.

Comparaison : OpenWrt vs DD-WRT vs pfSense vs MikroTik RouterOS

Dimension OpenWrt DD-WRT pfSense MikroTik RouterOS
Open source ✅ Entièrement open source (GPL) ✅ Open source ✅ Open source (BSD) ❌ Logiciel propriétaire
Prix Gratuit Gratuit Gratuit 45-295 $ (selon le niveau de licence)
Support matériel Très large (1000+ appareils) Large (700+ appareils) Uniquement x86/APU Uniquement matériel MikroTik
Écosystème de plugins 1000+ paquets Limité Riche (ports FreeBSD) Fonctionnalités intégrées riches
Interface Web LuCI (léger) Interface Web propriétaire Interface Web professionnelle WinBox / WebFig
Support Docker ✅ Peut exécuter Docker ❌ ⚠️ Limité ❌
Courbe d'apprentissage Moyenne Moyenne Plutôt raide Raide
Cas d'utilisation Soft router/maison/petite entreprise Routage domestique Pare-feu entreprise Réseau entreprise/ISP
Activité de la communauté ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐

Conseils de choix : - OpenWrt — Premier choix pour le flashage de soft router, la compatibilité matérielle la plus large et l'écosystème de plugins le plus riche - DD-WRT — Firmware routeur historique, idéal pour les utilisateurs qui veulent plus de fonctionnalités que le firmware d'origine sans trop se compliquer la vie - pfSense — Solution pare-feu/routage professionnelle, adaptée aux réseaux d'entreprise - MikroTik RouterOS — Niveau entreprise/ISP, puissant mais nécessite une formation spécialisée

FAQ OpenWrt

Q1 : Qu'est-ce qu'OpenWrt ? Quelle différence avec un firmware de routeur classique ?

R : OpenWrt est un système d'exploitation open source pour routeur basé sur le noyau Linux. La principale différence avec les firmwares classiques : - Entièrement personnalisable : OpenWrt fournit un système de fichiers complet avec gestion de paquets, permettant d'installer/désinstaller librement des logiciels - Open source et transparent : le code est entièrement public, sans backdoor, développé par la communauté - Large compatibilité matérielle : prend en charge plus de 1 000 modèles de routeurs - Fonctionnalités avancées : support des conteneurs Docker, VPN, QoS, filtrage publicitaire, soft router, etc.

Q2 : Quels routeurs sont compatibles avec OpenWrt ?

R : OpenWrt prend en charge un large éventail de matériels : - Routeurs domestiques : TP-Link, Netgear, Linksys, ASUS, Xiaomi, etc. - Soft routers x86 : Mini PC et ordinateurs industriels sur plateforme Intel/AMD x86 - Cartes de développement : Raspberry Pi, Banana Pi et autres SBC

Consultez le sélecteur de firmware OpenWrt pour vérifier la compatibilité de votre appareil.

Q3 : Le flashage d'OpenWrt peut-il briquer le routeur ? Comment le récupérer ?

R : Le flashage comporte des risques, mais il est généralement sûr si vous suivez les bonnes étapes : - Réduire les risques : utilisez le firmware correct, ne coupez pas l'alimentation pendant le flashage, sauvegardez d'abord le firmware d'origine - Méthodes de récupération : 1. Restauration TFTP : la plupart des routeurs supportent le mode de récupération TFTP 2. Débogage série : connectez-vous via un port série TTL pour réparer 3. Mode CFE/Bootloader : accédez au bootloader pour reflasher 4. Flashage matériel avec programmateur : ouvrez l'appareil et écrivez directement sur la puce flash avec un programmateur

Conseil : avant de flasher, sauvegardez le firmware d'origine et familiarisez-vous avec les méthodes de récupération de votre appareil.

Q4 : OpenWrt supporte-t-il Docker ?

R : Oui, OpenWrt peut exécuter des conteneurs Docker. Il faut installer dockerd et ses dépendances :

BASH
opkg install docker docker-cli luci-app-dockerman

Il est recommandé d'utiliser un appareil avec au moins 2 Go de RAM pour faire tourner des conteneurs Docker, afin de garantir stabilité et performance.

Q5 : Quelle est la relation entre OpenWrt et LEDE ?

R : LEDE (Linux Embedded Development Environment) est un fork d'OpenWrt. En 2016, certains développeurs ont créé le projet LEDE suite à des divergences sur les processus de développement. En 2018, LEDE et OpenWrt ont fusionné à nouveau et utilisent désormais le nom OpenWrt. L'OpenWrt que vous connaissez aujourd'hui intègre les améliorations de la période LEDE. Si vous rencontrez le terme LEDE dans d'anciennes documentations, il s'agit en fait d'OpenWrt.