Ceci est une ancienne révision du document !
Configuration des paramètres IP sous Linux
Procédure de configuration des interfaces réseau IP sous Linux
Debian / Ubuntu CLI RedHat / Fedora / CentOS AlmaLinux / RockyLinux (nmtui/nmcli) ArchLinux / Manjaro (netctl) systemd-networkd <button outline-light url="https://wiki.mdekoninck.fr/doku.php?id=reseau_linux#configuration_manuelle_avec_ip''>Manuel</button> ===== Distributions basées sur Debian (Debian, Ubuntu 19 et -, Mint...) ===== 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é) : {{ ::ip_link.png?600 |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):** <code>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. </code> :!: 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 : <code> service networking restart </code> ==== 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 : [[reseau_linux#configurer_des_reseaux_wi-fi_avec_wpa_supplicant|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 : <code>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 </code> Source : [[https://www.commentcamarche.net/faq/11210-configurer-le-wifi-sous-linux|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-eth0'' où //eth0// correspond à l'interface concernée. ==== Connexion ethernet ==== **Exemple :** <code>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 </code> :!: 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 : <code>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 </code> Enfin, pour configurer les serveurs DNS par défaut, on doit modifier le traditionnel fichier ''/etc/resolv.conf'' **Exemple :** <code>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) </code> __Pour appliquer les changements__, redémarrer le service réseau avec la commande : <code> /etc/init.d/network restart </code> ==== 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 : <code>nmtui</code> En CLI pur, on utilisera la commande 'nmcli'. Par exemple pour redémarrer les fonctions réseau : <code>nmcli networking off</code> <code>nmcli networking on</code> Démarrer une interface : <code>nmcli connection up ens33</code> Arrêter une interface : <code>nmcli connection down ens33</code> Attribuer une adresse IP et un masque de S/R à une interface : <code>nmcli connection modify ens160 IPv4.address 192.168.122.66/24</code> Configurer la passerelle par défaut d'une interface : <code>nmcli connection modify ens160 IPv4.gateway 192.168.122.254/24</code> Configurer les DNS d'une interface : <code>nmcli connection modify ens160 IPv4.dns 192.168.122.1</code> Forcer le protocole d'attribution des paramètres en statique : <code>nmcli connection modify ens160 IPv4.method manual</code> Activer l'autoconfiguration des paramètres en DHCP : <code>nmcli connection modify ens160 IPv4.method auto</code> Pour réutiliser les anciens fichiers de configuration RedHat, il existe une commande qui permet de convertir les configurations à l'ancienne en configurations NetworkManager : <code>nmcli connection migrate</code> ===== 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'') : <code>touch /etc/netctl/profile.conf</code> :!: Remplacer ''profile.conf'' par le nom du profil à créer Puis activer ce profil : <code>netctl start profile.conf</code> Ensuite, définir les paramètres du profil dans le fichier correspondant créé juste avant : <code>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</code> :!: 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 : <code>netctl enable profile.conf</code> A chaque modification d'un profil réseau, il faudra "réactiver" la configuration : <code>netctl reenable profile.conf</code> ==== Connexion Wi-Fi ==== <del>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 :</del> <code>wifi-menu</code> <del>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 :</del> <code>netctl enable profile_wifi</code> ===== 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 : <code>systemctl start systemd-networkd && systemctl enable systemd-networkd</code> Lister les cartes réseau disponibles : <code>networkctl list</code> {{ ::networkctl_list.png?400 |affichage des cartes réseau connectées}} On peut aussi se servir de la commande suivante pour afficher plus d'informations : <code>networkctl status</code> {{ ::networkctl_status.png?400 |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). <code>nano /etc/systemd/network/enp0s3-ethernet.network</code> Puis remplir le fichier. Pour configurer manuellement tous les paramètres : <code>[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</code> Sinon pour une configuration IP dynamique : <code>[Match] Name=enp0s3 #nom de l'interface [Network] DHCP=ipv4 #Autoconfiguration des paramètres via DHCP (ipv4=DHCPv4, ipv6=DHCPv6)</code> Enregistrer le fichier puis relancer le processus réseau avec : <code>systemctl restart systemd-networkd</code> ==== 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 : <code>apt-get install wpa_supplicant </code> 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 : <code>wpa_passphrase ssid password >> /etc/wpa_supplicant/wpa_supplicant.conf </code> :!: 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) : <code>wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</code> 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) : <code>wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf</code> Afin de récupérer une adresse IP dynamique : <code>dhcpcd wlan0</code> On pourra aussi se servir du paquet ''dhclient'' à la place de ''dhcpcd'' : <code>dhclient wlan0</code> 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 IP ===== ===== 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 : <code>ip link</code> ou bien sous **sysVinit** : <code>ifconfig -a</code> Afficher les paramètres IP des cartes réseau sous **systemd** : <code>ip a</code> ou bien sous **sysVinit** : <code>ifconfig </code> Pour vérifier qu'une machine est joignable par son adresse IP ou son nom d'hôte : <code>ping 1.1.1.1</code> :!: Certaines machines ou certains pare-feux peuvent bloquer les requêtes ping par défaut ! Pour vérifier que les résolutions DNS fonctionnent : <code>nslookup google.fr</code>