Configurer son adresse ip sous Linux

Comment paramétrer son adresse ip sous Linux


Sous une Raspbian 10 (buster), éditer /etc/dhcpcd.conf
avec la commande

sudo nano /etc/dhcpcd.conf
Lien vers le fichier : cliquez ici Copier le code

Décommenter et éditer ce bloc pour fixer des valeurs

Exemple de modification pour fixer l'ip à 192.168.0.201
mettre 192.168.0.1 en gateway
et 192.168.0.254 en serveur DNS

Notez que la masque de sous réseau se met en même temps que l'ip, c'est pour cela que c'est 192.168.0.201/24 qui a été entré pour l'ip

Pour faire prendre en compte la modification, relancer le gestionnaire réseau avec

sudo systemctl restart NetworkManager.service
Lien vers le fichier : cliquez ici Copier le code

Il y a cette commande plus ancienne

/etc/init.d/networking restart
Lien vers le fichier : cliquez ici Copier le code

Au pire, si cela ne fonctionne pas, redémarrer la machine avec

shutdown -r now
Lien vers le fichier : cliquez ici Copier le code

Sous Redhat / CentOs / Almalinux etc, on peut utiliser nmtui, une interface texte interactive pour NetworkManager, le gestionnaire réseau par défaut des bases Red Hat (voir https://docs.redhat.com/fr/documentation/red_hat_enterprise_linux/7/html/networking_guide/sec-using_the_text_user_interface_nmtui). L'interface se charge de configurer les fichiers qui sont dans /etc/NetworkManager/system-connections/. Il n'est pas conseillé de les modifier directement.

Pour lancer la configuration, taper cette commande

nmtui
Lien vers le fichier : cliquez ici Copier le code

Il faut entrer le masque de sous-réseau en même temps que l'adresse ip.

Exemple

Relancer le gestionnaire réseau avec

sudo systemctl restart NetworkManager.service
Lien vers le fichier : cliquez ici Copier le code

Sinon, toujours sous CentOs/Red Hat etc, le fichier de configuration est visible dans /etc/sysconfig/network-scripts mais il est déconseillé de le modifier directement. Ces fichiers assurent la rétrocompatibilité avec d'anciens scripts et outils.

cd /etc/sysconfig/network-scripts
ls
Lien vers le fichier : cliquez ici Copier le code

Il y a un fichier par carte réseau.
Par exemple ici il y en a une qui est ifcfg-ens192

En ligne de commandes il y a nmcli. On peut par exemple lister les interfaces réseaux avec

nmcli connection show
Lien vers le fichier : cliquez ici Copier le code

Exemple de retour

NAME    UUID                                  TYPE      DEVICE 
ens192  03da7500-2101-c722-2438-d0d006c28c73  ethernet  ens192 
lo      1c8aeec0-3e0b-4fa5-ad26-7b0edc9589d5  loopback  lo     

On peut voir la configuration d'une carte avec

nmcli connection show ens192
Lien vers le fichier : cliquez ici Copier le code

Exemple de configuration de la carte ens192

sudo nmcli connection modify ens192 \
  ipv4.addresses 10.0.0.100/24 \
  ipv4.gateway 10.0.0.1 \
  ipv4.dns "10.0.0.10 10.0.0.11" \
  ipv4.method manual
Lien vers le fichier : cliquez ici Copier le code

Pour la prise en compte

#Pour prise en compte à chaud
sudo nmcli connection up ens192

#Au pire des cas
sudo nmcli connection down ens192 && sudo nmcli connection up ens192
Lien vers le fichier : cliquez ici Copier le code

Pour un passage en dhcp

sudo nmcli connection modify ens192 \
  ipv4.method auto \
  ipv4.addresses "" \
  ipv4.gateway "" \
  ipv4.dns ""
Lien vers le fichier : cliquez ici Copier le code

Sur une Ubuntu, il y a plusieurs façons de faire. Il y a netplan par défaut depuis Ubuntu 18.04 LTS. C'est une couche d'abstraction au-dessus des gestionnaires réseaux traditionnels NetworkManager ou systemd-networkd, sachant NetworkManager est utilisé sur Ubuntu Desktop en raison de son interface graphique intuitive ou pour le wifi alors que sur Ubuntu Server c'est systemd-networkd qui est utilisé car il est par exemple plus léger. Netplan plan permet de configurer les 2.

Pour contrôler quel quel gestionnaire est actif, taper

# Vérifier si NetworkManager est actif
systemctl status NetworkManager

# Vérifier si systemd-networkd est actif
systemctl status systemd-networkd

# Voir quel service gère une interface
nmcli device status  # Si NetworkManager
networkctl status    # Si systemd-networkd
Lien vers le fichier : cliquez ici Copier le code

Exemple de retour sur Ubuntu Server

root@MONUBUNTU:~# systemctl status NetworkManager
Unit NetworkManager.service could not be found.


root@MONUBUNTU:~# systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
     Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2026-02-04 15:09:44 CET; 2 weeks 2 days ago
TriggeredBy: ● systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
   Main PID: 982 (systemd-network)
     Status: "Processing requests..."
      Tasks: 1 (limit: 4514)
     Memory: 2.9M
        CPU: 3.138s
     CGroup: /system.slice/systemd-networkd.service
             └─982 /lib/systemd/systemd-networkd

Notice: journal has been rotated since unit was started, output may be incomplete.


root@MONUBUNTU:~# nmcli device status
Command 'nmcli' not found, but can be installed with:
snap install network-manager  # version 1.2.2-29, or
apt  install network-manager  # version 1.36.6-0ubuntu2.2
See 'snap info network-manager' for additional versions.


root@MONUBUNTU:~# networkctl status 
●          State: routable                
    Online state: online                  
         Address: 192.168.1.5 on ens160
         Gateway: 192.168.1.1 on ens160
             DNS: 172.16.8.8
                  172.16.8.9
  Search Domains: mondomaine.local
root@MONUBUNTU:~# 

 

Pour éditer le fichier yaml de votre carte réseau, modifiez celui que vous trouvez sous /etc/netplan/

Exemple sur un

nano /etc/netplan/99-netcfg-vmware.yaml
Lien vers le fichier : cliquez ici Copier le code

Exemple de contenu

# Generated by VMWare customization engine.
network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.1.5/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 192.168.1.2]

Pour appliquer la configuration, faire

sudo netplan apply
Lien vers le fichier : cliquez ici Copier le code

Pour la configuration des DNS, comme dit sur https://www.linuxtricks.fr/wiki/systemd-la-resolution-de-nom-avec-systemd-resolved
quand on utilise systemd-networkd, le service de résolution de nom est lui géré à part par systemd-resolved.service. En effet :

  • systemd-networkd : Gère la configuration réseau (adresses IP, routes, interfaces)
  • systemd-resolved : Gère la résolution de noms DNS (requêtes DNS, cache, DNSSEC)
     

Il ne faut plus éditer le fichier historique /etc/resolv.conf, il faut utiliser un fichier dans /etc/systemd/resolved.conf.d
Cela applique une configuration globale et persistante qui s'applique à toutes les interfaces, sauf si une configuration spécifique à l'interface existe.

Pour cela faire

# Créer le répertoire si nécessaire
sudo mkdir -p /etc/systemd/resolved.conf.d

# Créer le fichier de configuration DNS
sudo nano /etc/systemd/resolved.conf.d/dns_servers.conf
Lien vers le fichier : cliquez ici Copier le code

Exemple de contenu pour dns_servers.conf

[Resolve]
DNS=192.168.1.1 192.168.1.2
FallbackDNS=1.1.1.1 8.8.8.8
Domains=votre-domaine.local
Lien vers le fichier : cliquez ici Copier le code

Pour appliquer les modifications

# Redémarrer le service
sudo systemctl restart systemd-resolved

# Vérifier la configuration
resolvectl status
Lien vers le fichier : cliquez ici Copier le code
Notez que si vous ne créez pas /etc/systemd/resolved.conf.d/dns_servers.conf, systemd-resolved prendra automatiquement la configuration DNS depuis le gestionnaire réseau utilisé sur le système. Pour plus de détails voir https://www.linuxtricks.fr/wiki/systemd-la-resolution-de-nom-avec-systemd-resolved
Publicité