Sleezr
Acheter Sleezr
fichier hostsLinuxtutorielterminalDNSdéveloppement local

Modifier le fichier hosts sous Linux (2026)

Guide Linux : éditer /etc/hosts avec nano ou vim, permissions root, flush DNS systemd, Docker et dépannage sur toutes distributions.

É

Équipe Sleezr

·Mis à jour le ·7 min de lecture
Modifier le fichier hosts sous Linux (2026)

Sous Linux, le fichier hosts vit dans /etc/hosts, même emplacement que sur macOS, avec une philosophie similaire : priorité locale sur le DNS réseau. Que vous soyez sur Fedora, Debian, Arch ou un serveur headless, ce guide 2026 vous donne la procédure universelle et les pièges par distribution.

Comment modifier le fichier hosts sous Linux

Pour modifier le fichier hosts sous Linux, ouvrez /etc/hosts en root avec un éditeur de texte :

1
Ouvrez un terminal.
2
Lancez sudo nano /etc/hosts et saisissez votre mot de passe.
3
Ajoutez une ligne avec l'IP, un espace, puis le domaine, par exemple 127.0.0.1 monsite.test.
4
Enregistrez avec Ctrl+O puis Entrée, et quittez avec Ctrl+X.
5
Videz le cache DNS si votre distribution en utilise un : sudo resolvectl flush-caches (systemd) ou redémarrez nscd.

Les étapes par distribution et la méthode vim sont ci-dessous.

Pour Ubuntu et dérivés (Pop!_OS, Mint), voir aussi guide Ubuntu. Vue multi-plateforme : guide pilier. Syntaxe : format /etc/hosts.

Rôle de /etc/hosts sous Linux

Le resolver Linux (glibc, systemd-resolved, NetworkManager) consulte /etc/hosts en premier pour la résolution « système ». Cas d’usage :

  • Dev web : Nginx/Apache/Caddy + domaines .test
  • Tests staging : domaine prod → IP staging
  • Serveurs : résolution interne sans DNS privé
  • Blocage local : bloquer des domaines

Contenu minimal typique :

TEXT
127.0.0.1 localhost
127.0.1.1 nom-hote.localdomain nom-hote
::1 localhost ip6-localhost ip6-loopback

La ligne 127.0.1.1 avec le hostname est ajoutée par l’installateur Debian/Ubuntu, ne la supprimez pas sans comprendre l’impact sur sudo et les mails locaux.

Édition avec nano (recommandé)

BASH
sudo nano /etc/hosts

Ajoutez en fin de fichier :

TEXT
# Projet SaaS
127.0.0.1 app.saas.test
127.0.0.1 api.saas.test

Sauvegarde nano : Ctrl+O, Entrée, Ctrl+X.

Édition avec vim

BASH
sudo vim /etc/hosts
  • Mode insertion : i
  • Sauvegarder quitter : :wq
  • Abandonner : :q!

Permissions et sécurité

Seul root écrit dans /etc/hosts. Détails : guide administrateur.

Vérifier les permissions :

BASH
ls -l /etc/hosts
# Attendu : -rw-r--r-- root root

Ne pas faire chmod 666 /etc/hosts, faille de sécurité majeure.

Risques généraux : est-ce sûr ?.

Flush DNS selon votre stack

Linux est fragmenté sur le cache DNS :

systemd-resolved (Ubuntu, Fedora récents, Debian 12+)

BASH
sudo resolvectl flush-caches
# ou ancienne syntaxe :
sudo systemd-resolve --flush-caches

Vérifier l’état :

BASH
resolvectl status

nscd (Name Service Cache Daemon)

BASH
sudo systemctl restart nscd

Pas de cache local

Parfois aucun flush n’est nécessaire, testez directement :

BASH
getent hosts app.saas.test
ping -c 1 app.saas.test

Docker et conteneurs

Erreur fréquente : modifier /etc/hosts dans un conteneur alors que le navigateur tourne sur l’hôte.

Hôte Linux : éditez /etc/hosts de la machine.

Conteneur : préférez extra_hosts dans docker-compose :

YAML
services:
 web:
 extra_hosts:
 - "app.saas.test:host-gateway"

Ou --add-host :

BASH
docker run --add-host=app.saas.test:127.0.0.1 ...

Distribution-specific notes

Debian / Ubuntu

Souvent 127.0.1.1 hostname. NetworkManager ne remplace pas hosts. Guide dédié : Ubuntu.

Fedora / RHEL

SELinux n’empêche généralement pas l’édition manuelle de /etc/hosts. Flush via resolvectl.

Arch

Pas de ligne 127.0.1.1 par défaut parfois, ajoutez localhost explicitement si besoin.

Serveurs cloud (AWS, GCP, Azure)

cloud-init peut régénérer /etc/hosts au reboot. Persistez via :

BASH
# Exemple cloud-init snippet (à adapter)
# write_files:
# - path: /etc/hosts

Ou scripts post-boot documentés pour l’équipe.

WSL et Linux hybride

Développeurs sous Windows 11 + WSL : le hosts Windows et WSL sont distincts. Éditez les deux si vous testez des deux côtés, Windows 11.

Vérification

BASH
getent hosts api.saas.test
curl -I http://app.saas.test

Si curl échoue mais getent OK :

  • Service web non démarré
  • Mauvais port / virtual host
  • Cache navigateur distant (si test depuis autre machine)

Dépannage

Permission denied

→ Oublie de sudo. Ou filesystem read-only (mount | grep ' / ').

Entrée ignorée

  • Ligne dupliquée : première correspondance utilisée
  • Erreur syntaxe (IP invalide)
  • Cache : resolvectl flush-caches

hostname -f incorrect

Lié à /etc/hosts et /etc/hostname. Gardez cohérence entre les deux fichiers.

Modification écrasée

cloud-init, Ansible, Puppet, cherchez qui gère /etc/hosts dans votre infra.

Bonnes pratiques équipe Linux

TEXT
# === DEV, équipe platform ===
127.0.0.1 grafana.dev.test
127.0.0.1 prometheus.dev.test

# === STAGING TEMP 2026-Q2 ===
203.0.113.20 preview.client.com
  • Versionnez un template hosts dans le repo (pas le fichier système entier)
  • Documentez flush DNS par distro dans le README
  • Pour Mac collègues : guide Mac, Sleezr aide côté macOS

Comparaison Linux vs Windows vs Mac

ActionLinuxWindowsMac
Chemin/etc/hostsSystem32\...\hosts/etc/hosts
Éditionsudo nanoBloc-notes adminsudo nano / GUI
Flushresolvectlipconfig /flushdnsdscacheutil

Tableau complet : guide pilier.

Gestion par configuration management (Ansible, Chef, Puppet)

En infra Linux, l’édition manuelle sudo nano ne scale pas. Exemple Ansible minimal :

YAML
- name: Ajouter entrée dev hosts
 lineinfile:
 path: /etc/hosts
 line: "127.0.0.1 app.projet.test"
 state: present
 notify: flush dns cache

handlers:
 - name: flush dns cache
 command: resolvectl flush-caches

Avantages : reproductible, auditable, revue Git.

Piège : lineinfile ne flush pas toujours au bon moment, testez sur VM avant prod.

Flatpak, Snap et sandboxing

Les applications sandboxées (Firefox Snap sur Ubuntu, Flatpak) utilisent généralement la résolution hôte standard. Exceptions rares avec réseau namespace custom. Si une Snap app ignore hosts :

BASH
# Vérifier résolution côté hôte d'abord
getent hosts app.test

Si OK côté hôte mais KO dans Snap → bug app ou permissions Snap, consultez la doc du package.

Serveurs headless (SSH uniquement)

Sur VPS sans GUI :

BASH
ssh user@serveur
sudo nano /etc/hosts
# entrée pour service interne non-DNS
10.0.0.5 db.internal.corp

Utile quand le DNS privé n’est pas encore propagé ou pour tests de bascule. Ne remplacez pas un DNS interne mature sur le long terme.

Caddy, Traefik et reverse proxy local

Pattern courant 2026 :

TEXT
127.0.0.1 api.local.test
127.0.0.1 app.local.test

Caddy route app.local.test → conteneur :3000. Sans hosts, Caddy recevrait des requêtes Host: localhost incorrectes.

Audit et conformité

Sur postes Linux corporate, /etc/hosts peut être surveillé par AIDE ou Tripwire. Toute modification déclenche une alerte SOC, normal en banque ou défense. Coordonnez avec l’IT avant d’ajouter des entrées dev.

Tableau flush DNS par distribution (2026)

DistributionCommande flush
Ubuntu 22.04+sudo resolvectl flush-caches
Debian 12idem
Fedora 40+idem
Archidem (systemd-resolved)
Alpine (musl)souvent pas de cache, redémarrer nscd si installé
CentOS 7 legacysudo systemctl restart nscd ou pas de cache

Gardez ce tableau dans le README de votre monorepo, vos collègues Windows exécuteront ipconfig /flushdns, pas resolvectl.

Kubernetes minikube et /etc/hosts

BASH
minikube ip
# 192.168.49.2 par exemple

Ajoutez :

TEXT
192.168.49.2 app.k8s.local

Ingress controller route ensuite vers vos services. Sans hosts, vous retombez sur 127.0.0.1 ou l’IP minikube en dur dans le navigateur, fragile quand l’IP change au restart.

Documentez l’IP minikube dans le README et automatisez sa mise à jour avec un hook post-start si votre équipe redémarre le cluster souvent.

Podman rootless

Podman rootless mappe les ports différemment de Docker. L’entrée hosts pointe toujours vers 127.0.0.1 côté hôte ; vérifiez podman port pour le mapping effectif.

Conclusion

Sur Linux, sudo nano /etc/hosts + resolvectl flush-caches couvrent 90 % des cas. Maîtrisez cloud-init, Docker extra_hosts, et la ligne 127.0.1.1 Debian, vous éviterez les heures de debug « ça marche sur ma machine ».

Approfondir : guide complet, Ubuntu, syntaxe.

Sources et ressources externes

Partager cet article

Questions fréquentes

Où se trouve le fichier hosts sous Linux ?

/etc/hosts sur pratiquement toutes les distributions (Debian, Ubuntu, Fedora, Arch, RHEL, etc.).

Pourquoi utiliser sudo pour éditer /etc/hosts ?

Le fichier appartient à root et est protégé en écriture. sudo donne les privilèges nécessaires.

Comment vider le cache DNS sous Linux ?

Avec systemd-resolved : sudo resolvectl flush-caches ou sudo systemd-resolve --flush-caches. Sans systemd, redémarrez nscd ou le service DNS local si présent.

Le fichier hosts fonctionne-t-il dans Docker ?

Chaque conteneur a son propre /etc/hosts généré. Modifiez l’hôte pour le navigateur local, ou utilisez extra_hosts dans docker-compose pour les conteneurs.

Puis-je utiliser vim au lieu de nano ?

Oui : sudo vim /etc/hosts. Nano reste plus accessible pour les débutants.

Mes changements disparaissent au reboot

Cloud-init ou un outil de configuration peut régénérer /etc/hosts. Vérifiez /etc/cloud/cloud.cfg et les scripts de provisioning.

Articles similaires

9 min de lecture
fichier hostsWindowsmacOS

Modifier le fichier hosts (Windows, Mac, Linux)

Guide complet pour éditer le fichier hosts sur Windows, macOS et Linux : emplacements, droits administrateur, syntaxe, flush DNS et dépannage en 2026.

É

Équipe Sleezr

7 min de lecture
fichier hostsWindows 11tutoriel

Modifier le fichier hosts Windows 10 & 11 (2026)

Modifier le fichier hosts sous Windows 10 et 11 : Bloc-notes admin, PowerShell, VS Code. Même chemin, UAC, flush DNS et dépannage 24H2.

É

Équipe Sleezr

7 min de lecture
fichier hostsmacOStutoriel

Modifier le fichier hosts sur Mac (2026)

Comment éditer /etc/hosts sur macOS sans erreur ? Comparatif Terminal (sudo nano) vs interface graphique. Résolvez permissions denied et cache DNS en 2 minutes.

É

Équipe Sleezr

7 min de lecture
fichier hostsUbuntuLinux

Modifier le fichier hosts sous Ubuntu (2026)

Tutoriel Ubuntu 22.04/24.04 : éditer /etc/hosts, systemd-resolved, NetworkManager, WSL, flush DNS et bonnes pratiques dev.

É

Équipe Sleezr

8 min de lecture
fichier hostsWindowstutoriel

Modifier le fichier hosts sous Windows (2026)

Tutoriel complet pour éditer C:\Windows\System32\drivers\etc\hosts sur Windows 10 et 11 : Bloc-notes admin, PowerShell, flush DNS et dépannage.

É

Équipe Sleezr