Configuration des paramètres IP sous Linux

Distributions basées sur Debian (Debian, Ubuntu 19 et -, Mint...)

:!: Cette méthode ne fonctionne pas sur les distributions Ubuntu modernes avec GUI

Tout d'abord, afficher les interfaces réseau disponibles avec ip link (ou bien ifconfig -a dans le cas ou systemd ne serait pas installé) : Afficher les cartes réseau connectées

Connexion Ethernet

La configuration des interfaces réseau est stockée par défaut dans le fichier /etc/network/interfaces.

Il est possible de commenter la configuration en ajoutant un # devant le texte en commentaire.

Exemple de configuration (avec la signification de chaque instruction):

auto lo eth0        #Activer automatiquement au démarrage du système (même quand rien n'est connecté)
allow-hotplug eth1       #N'activer l'interface que si une connexion est disponible (câble branché par exemple)

iface lo inet loopback      #Interface de bouclage (NE PAS MODIFIER !)

iface eth0 inet static       #Précise la configuration manuelle des paramètres IP de la carte réseau eth0
        address 192.168.90.1       #Adresse IP affectée à la carte réseau
        netmask 255.255.255.0      #Masque de sous-réseau
        network 192.168.90.0       #Précise l'adresse du sous-réseau (Facultatif)
        broadcast 192.168.90.255   #Précise l'adresse de diffusion du sous-réseau (Facultatif)
        gateway 192.168.90.1       #Précise la passerelle par défaut (routeur pour aller sur Internet)
        dns-nameservers 192.168.90.240 192.168.90.239 #Précise les serveurs DNS à utiliser (cette méthode fonctionne uniquement si le paquet resolvconf est installé!)


iface eth1 inet dhcp #Indique que l'interface eth1 doit récupérer ses paramètres IP automatiquement depuis un serveur DHCP.

:!: Pour configurer les serveurs DNS lorsque le paquet resolvconf n'est pas installé (anciennes versions de debian), éditer le fichier /etc/resolv.conf comme sous les distributions RedHat (voir plus bas).

Pour appliquer les changements, redémarrer le service réseau avec la commande :

 service networking restart 

Connexion Wi-Fi

Concernant la configuration d'une interface Wi-Fi, le principe est le même que pour les cartes réseau filaires, sauf qu'il faut d'abord configurer wpa_supplicant pour la connexion au réseau sans-fil : Configuration de WPA_Supplicant

Une fois wpa_supplicant parametré correctement, ouvrir le fichier /etc/network/interfaces et indiquer les réglages de la carte Wi-Fi :

iface wlan0 inet dhcp      #Configuration d'une carte Wi-Fi en DHCP
      wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf      #Précise le fichier où sont stockés les paramètres d'authentification des réseaux Wi-Fi 

Source : cliquer ici

Distributions basées sur RedHat (RedHat, CentOS, Fedora...)

Tout d'abord, afficher les interfaces réseau disponibles avec ip link ou bien ifconfig -a (dans le cas ou systemd ne serait pas installé).

La configuration d'un interface réseau est stockée dans le fichier /etc/sysconfig/network-scripts/ifcfg-eth0eth0 correspond à l'interface concernée.

Connexion ethernet

Exemple :

DEVICE=eth0               ## Nom de l'interface
BOOTPROTO=static          ## Mode de configuration de l'interface (static ou dhcp)
BROADCAST=192.168.0.255   ## Adresse de broadcast
HWADDR=AA:BB:CC:DD:EE:FF  ## MAC ADRESSE de la carte reseau
IPADDR=192.168.0.10       ## Adresse IP de la machine
NETMASK=255.255.255.0     ## Masque sous-reseau
NETWORK=192.168.0.0       ## Adresse reseau
ONBOOT=yes                ## Monter l'interface au boot
NM_CONTROLLED="no"        ## Pas de contrôle via NetworkManager

:!: Pour passer la carte en client DHCP, modifier la directive BOOTPROTO=static en BOOTPROTO=dhcp

Pour les paramètres réseau “généraux”, comme la passerelle par défaut ou le nom de domaine de la machine, il faut aller dans le fichier /etc/sysconfig/network et le configurer comme ceci :

NETWORKING=yes                        ## Activer le reseau
NETWORKING_IPV6=no                    ## Activation ou pas de l'ipv6
HOSTNAME=serv-centos                  ## Le nom de la machine
GATEWAY=192.168.0.1                   ## Adresse ip de votre passerelle

Enfin, pour configurer les serveurs DNS par défaut, on doit modifier le traditionnel fichier /etc/resolv.conf

Exemple :

nameserver 192.168.0.100            ## l'ip du premier serveur de noms (mon serveur DNS local)
nameserver 1.1.1.1                 ## l'ip du serveur serveur de noms (serveur DNS CloudFlare)

Pour appliquer les changements, redémarrer le service réseau avec la commande :

 /etc/init.d/network restart 

Connexion Wi-Fi

a rédiger

Distributions utilisant NetworkManager (AlmaLinux)

:!: Attention : Méthode capricieuse, notamment avec les VM sous environnement VMWare.

Sur les systèmes avec NetworkManager préinstallé (comme almalinux), on peut configurer les paramètres réseau en CLI via une interface graphique minimaliste :

nmtui

En CLI pur, on utilisera la commande 'nmcli'.

Par exemple pour redémarrer les fonctions réseau :

nmcli networking off
nmcli networking on

Démarrer une interface :

nmcli connection up ens33

Arrêter une interface :

nmcli connection down ens33

Attribuer une adresse IP et un masque de S/R à une interface :

nmcli connection modify ens160 IPv4.address 192.168.122.66/24

Configurer la passerelle par défaut d'une interface :

nmcli connection modify ens160 IPv4.gateway 192.168.122.254/24

Configurer les DNS d'une interface :

nmcli connection modify ens160 IPv4.dns 192.168.122.1

Forcer le protocole d'attribution des paramètres en statique :

nmcli connection modify ens160 IPv4.method manual

Activer l'autoconfiguration des paramètres en DHCP :

nmcli connection modify ens160 IPv4.method auto

Pour réutiliser les anciens fichiers de configuration RedHat, il existe une commande qui permet de convertir les configurations à l'ancienne en configurations NetworkManager :

nmcli connection migrate

Distributions basées sur ArchLinux (ArchLinux, Manjaro...) avec Netctl

Tout d'abord, afficher les interfaces réseau disponibles avec ip link ou bien ifconfig -a (dans le cas ou systemd ne serait pas installé).

Connexion ethernet

Pour commencer, créer un nouveau profil réseau dans /etc/netctl/ (des exemples de profils existent dans /etc/netctl/examples) :

touch /etc/netctl/profile.conf

:!: Remplacer profile.conf par le nom du profil à créer

Puis activer ce profil :

netctl start profile.conf

Ensuite, définir les paramètres du profil dans le fichier correspondant créé juste avant :

Interface=enp0s3 #nom de l'interface à configurer
Connection=ethernet #type de connexion (ethernet pour une connexion filaire, wireless pour du Wi-Fi)
IP=static #type d'adresse IP (static pour statique et dhcp pour dynamique) 
Address=('10.1.10.2/24') #Adresses IP statiques de la carte (séparées par un espace et chacune entre guillemets simples)
Gateway='10.1.10.1' #Adresse de la passerelle par défaut
DNS=('10.1.10.1') #Serveurs DNS à utiliser

:!: Les 3 dernières lignes ne sont pas ajouter si l'autoconfiguration via DHCP est activée !

Afin que le système charge ces réglages au démarrage, utiliser cette commande :

netctl enable profile.conf

A chaque modification d'un profil réseau, il faudra “réactiver” la configuration :

netctl reenable profile.conf

Connexion Wi-Fi

Pour configurer une carte Wi-Fi, il faut installer les paquets dialog et wpa_supplicant. Ensuite ouvrir le menu de configuration du Wi-Fi avec :

wifi-menu

Suivre les étapes, c'est à dire sélectionner un réseau Wi-Fi disponible, et entrer la clé de sécurité. Un nouveau profil réseau va être créé, par défaut ce profil récupère une adresse IP via un serveur DHCP, mais on peut toujours le modifier tel qu'indiqué plus haut pour paramètrer une adresse statique. Une fois connecté, pour activer la connexion automatique au démarrage, il suffit d'activer ce nouveau profil :

netctl enable profile_wifi

Configuration du réseau avec systemd-networkd

Cette méthode fonctionne pour toutes les distributions Linux où le système d'initialisation utilisé est systemd.

Connexion ethernet

Commencer par démarrer systemd-networkd puis l'activer au démarrage :

systemctl start systemd-networkd && systemctl enable systemd-networkd

Lister les cartes réseau disponibles :

networkctl list

affichage des cartes réseau connectées

On peut aussi se servir de la commande suivante pour afficher plus d'informations :

networkctl status

afficher plus d'infos sur les cartes réseau connectées

Maintenant, créer un fichier de configuration correpondant à la carte réseau que l'on souhaite paramètrer, nommé /etc/systemd/network/enp0s3-ethernet.network (remplacer enp0s3 par le nom de la carte).

nano /etc/systemd/network/enp0s3-ethernet.network

Puis remplir le fichier. Pour configurer manuellement tous les paramètres :

[Match]
Name=enp0s3 #nom de l'interface
MACAddress=AA:AA:AA:AA:AA:AA #adresse mac de la carte réseau (facultatif)
[Link]
MACAddress=BB:BB:BB:BB:BB:BB #changer l'adresse mac en BB:BB:BB:BB:BB:BB (facultatif)
MTUBytes=1500 #régler la valeur MTU de la carte réseau (facultatif)
[Network]
Address=192.168.1.2/24 #adresse IP statique en notation CIDR
Gateway=192.168.1.1 #adresse de la passerelle par défaut
DNS=1.1.1.1 #Serveur DNS Primaire
DNS=8.8.8.8 #Serveur DNS Secondaire

Sinon pour une configuration IP dynamique :

[Match]
Name=enp0s3 #nom de l'interface
[Network]
DHCP=ipv4 #Autoconfiguration des paramètres via DHCP (ipv4=DHCPv4, ipv6=DHCPv6)

Enregistrer le fichier puis relancer le processus réseau avec :

systemctl restart systemd-networkd

Connexion Wi-Fi

a rédiger

Configurer des réseaux Wi-Fi avec WPA_Supplicant

WPA_Supplicant est un paquet permettant de connecter une carte Wi-Fi à un SSID, c'est à dire à un réseau Wi-Fi.

Pour l'utiliser, il faut d'abord l'installer :

apt-get install wpa_supplicant 

La commande variera en fonction du gestionnaire de paquets utilisé.

Ensuite, taper la commande suivante pour ajouter un réseau Wi-Fi, en remplaçant ssid et password par le SSID et la clé WPA correspondants :

wpa_passphrase ssid password >> /etc/wpa_supplicant/wpa_supplicant.conf 

:!: Pour éviter les problèmes de sécurité, éditer le fichier /etc/wpa_supplicant/wpa_supplicant.conf et supprimer la ligne commentée avec le mot de passe en clair. En cas d'erreur avec la commande, il suffit de modifier le contenu du fichier ou de le supprimer puis de refaire la commande correctement.

Pour tester la connexion (de façon temporaire) :

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

En remplaçant wlan0 par le nom de votre carte Wi-Fi. Au bout d'une trentaine de secondes maximum, le message CTRL-EVENT-CONNECTED - Connection to xx:xx:xx:xx:xx:xx completed, confirme que ça fonctionne. Autrement, revérifier les paramètres. Faire CTRL+C pour quitter le mode connexion.

:!: Attention : le pilote de la carte Wi-Fi doit être installé et chargé pour que cela réussisse.

Une fois que l'on est sûr que la connexion au SSID est fonctionnelle, on utilisera cette commande pour s'y connecter en tâche de fond (de façon temporaire toujours) :

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf

Afin de récupérer une adresse IP dynamique :

dhcpcd wlan0

On pourra aussi se servir du paquet dhclient à la place de dhcpcd :

dhclient wlan0

Pour fixer les paramètres réseau de la carte Wi-Fi de façon permanente, se réferrer à la configuration du réseau pour votre distribution.

Configuration manuelle avec la commande IP

Activer/désactiver une carte réseau :

ip link set <carte reseau> up | down

Ajouter/Supprimer une IP :

ip addr <add | delete> <CIDR> dev <carte reseau>

Commandes de vérification et de dépannage

Quelquesoit la base du système utilisée, il existe des commandes universelles pour vérifier que la configuration réseau est bien fonctionnelle.

Afficher la liste des cartes réseau connectées et leur nom :

ip link

ou bien sous sysVinit :

ifconfig -a

Afficher les paramètres IP des cartes réseau sous systemd :

ip a

ou bien sous sysVinit :

ifconfig 

Pour vérifier qu'une machine est joignable par son adresse IP ou son nom d'hôte :

ping 1.1.1.1

:!: Certaines machines ou certains pare-feux peuvent bloquer les requêtes ping par défaut !

Pour vérifier que les résolutions DNS fonctionnent :

nslookup google.fr