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 Locahl
Sommaire
- Rôle de /etc/hosts sous Linux
- Édition avec nano (recommandé)
- Édition avec vim
- Permissions et sécurité
- Flush DNS selon votre stack
- systemd-resolved (Ubuntu, Fedora récents, Debian 12+)
- nscd (Name Service Cache Daemon)
- Pas de cache local
- Docker et conteneurs
- Distribution-specific notes
- Debian / Ubuntu
- Fedora / RHEL
- Arch
- Serveurs cloud (AWS, GCP, Azure)
- WSL et Linux hybride
- Vérification
- Dépannage
- Permission denied
- Entrée ignorée
- hostname -f incorrect
- Modification écrasée
- Bonnes pratiques équipe Linux
- Comparaison Linux vs Windows vs Mac
- Gestion par configuration management (Ansible, Chef, Puppet)
- Flatpak, Snap et sandboxing
- Serveurs headless (SSH uniquement)
- Caddy, Traefik et reverse proxy local
- Audit et conformité
- Tableau flush DNS par distribution (2026)
- Kubernetes minikube et /etc/hosts
- Podman rootless
- Conclusion
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.
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 :
127.0.0.1 localhost
127.0.1.1 nom-hote.localdomain nom-hote
::1 localhost ip6-localhost ip6-loopbackLa 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é)
sudo nano /etc/hostsAjoutez en fin de fichier :
# Projet SaaS
127.0.0.1 app.saas.test
127.0.0.1 api.saas.testSauvegarde nano : Ctrl+O, Entrée, Ctrl+X.
Édition avec vim
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 :
ls -l /etc/hosts
# Attendu : -rw-r--r-- root rootNe 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+)
sudo resolvectl flush-caches
# ou ancienne syntaxe :
sudo systemd-resolve --flush-cachesVérifier l’état :
resolvectl statusnscd (Name Service Cache Daemon)
sudo systemctl restart nscdPas de cache local
Parfois aucun flush n’est nécessaire — testez directement :
getent hosts app.saas.test
ping -c 1 app.saas.testDocker 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 :
services:
web:
extra_hosts:
- "app.saas.test:host-gateway"Ou --add-host :
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 :
# Exemple cloud-init snippet (à adapter)
# write_files:
# - path: /etc/hostsOu 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
getent hosts api.saas.test
curl -I http://app.saas.testSi 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
# === 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 — Locahl aide côté macOS
Comparaison Linux vs Windows vs Mac
| Action | Linux | Windows | Mac |
|---|---|---|---|
| Chemin | /etc/hosts | System32\...\hosts | /etc/hosts |
| Édition | sudo nano | Bloc-notes admin | sudo nano / GUI |
| Flush | resolvectl | ipconfig /flushdns | dscacheutil |
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 :
- 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-cachesAvantages : 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 :
# Vérifier résolution côté hôte d'abord
getent hosts app.testSi 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 :
ssh user@serveur
sudo nano /etc/hosts
# entrée pour service interne non-DNS
10.0.0.5 db.internal.corpUtile 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 :
127.0.0.1 api.local.test
127.0.0.1 app.local.testCaddy 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)
| Distribution | Commande flush |
|---|---|
| Ubuntu 22.04+ | sudo resolvectl flush-caches |
| Debian 12 | idem |
| Fedora 40+ | idem |
| Arch | idem (systemd-resolved) |
| Alpine (musl) | souvent pas de cache — redémarrer nscd si installé |
| CentOS 7 legacy | sudo 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
minikube ip
# 192.168.49.2 par exempleAjoutez :
192.168.49.2 app.k8s.localIngress 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.
Prêt à simplifier votre workflow ?
Arrêtez de perdre du temps avec le terminal. Locahl vous permet de gérer votre fichier hosts en quelques clics, avec validation automatique et sans risque d'erreur.
- Interface visuelle intuitive
- Flush DNS automatique
- Gestion multi-environnements
- Sauvegardes automatiques
- Import/Export JSON
Avis des lecteurs
"Enfin un guide Linux qui mentionne resolvectl ET systemd-resolve. Fedora et Debian couverts."
18 janvier 2026
"La section Docker m’a évité de modifier hosts dans le conteneur au lieu de l’hôte."
25 février 2026
"Très solide. Le lien Ubuntu est parfait pour mes collègues sur LTS."
30 mars 2026
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
Comment modifier le fichier hosts sous Windows, Mac et Linux (2026)
Guide complet pour éditer le fichier hosts sur Windows, macOS et Linux : emplacements, droits administrateur, syntaxe, flush DNS et dépannage en 2026.
Équipe Locahl
Modifier le fichier hosts sous Windows 11 (2026)
Guide Windows 11 : éditer hosts avec Bloc-notes admin, nouveau menu Démarrer, UAC, PowerShell 7, flush DNS et dépannage spécifique.
Équipe Locahl
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 Locahl
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 Locahl
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 Locahl