ToggleHosts
Comment trouver et modifier le fichier hosts sous Ubuntu (Guide 2026)

Comment trouver et modifier le fichier hosts sous Ubuntu (Guide 2026)

Mis à jour le 7 min de lecture

Tutoriel complet pour trouver et éditer /etc/hosts sous Ubuntu 24.04 et 22.04 : nano, systemd-resolved, flush DNS, droits sudo et résolution locale.

Gérez vos fichiers hosts sans terminal

ToggleHosts vous permet de gérer vos environnements visuellement sur Windows, macOS et Linux, avec flush DNS automatique et sauvegardes.

Ubuntu est la distribution Linux la plus utilisée en développement web, nativement, sous WSL2 sur Windows, ou sur VPS. Le fichier hosts reste /etc/hosts, mais Ubuntu ajoute des subtilités : systemd-resolved, la ligne 127.0.1.1, et l’interaction avec NetworkManager.

Comment modifier le fichier hosts sur Ubuntu

Pour modifier le fichier hosts sur Ubuntu, ouvrez /etc/hosts en root puis videz systemd-resolved :

  1. Ouvrez un terminal (Ctrl + Alt + T).
  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 : sudo resolvectl flush-caches.

La vérification et les détails systemd-resolved sont ci-dessous.

Ce guide cible Ubuntu 22.04 LTS et 24.04 LTS (2026). Linux général : guide Linux. Pilier : multi-plateforme.

Structure par défaut d’/etc/hosts sur Ubuntu

Après installation :

TEXT
127.0.0.1 localhost
127.0.1.1 ubuntu-laptop

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

ubuntu-laptop correspond à /etc/hostname. Cette entrée évite des warnings sudo et des retards sur hostname -f.

Procédure complète Ubuntu

1. Sauvegarde (bon réflexe)

BASH
sudo cp /etc/hosts /etc/hosts.backup.$(date +%Y%m%d)

2. Édition

BASH
sudo nano /etc/hosts

Ajout type projet Laravel / Symfony / Node :

TEXT
# === MonProjet, dev local ===
127.0.0.1 monprojet.test
127.0.0.1 api.monprojet.test
127.0.0.1 vite.monprojet.test

Syntaxe : guide syntaxe.

3. Flush DNS

BASH
sudo resolvectl flush-caches

Si commande introuvable (Ubuntu minimal) :

BASH
sudo systemctl restart systemd-resolved

4. Vérification

BASH
getent hosts monprojet.test
ping -c 2 monprojet.test

systemd-resolved sur Ubuntu

Ubuntu pointe souvent /etc/resolv.conf vers 127.0.0.53 (stub resolver). Le fichier hosts reste lu avant cette couche.

Diagnostic :

BASH
resolvectl status
resolvectl query monprojet.test

Si resolvectl query montre votre IP hosts, la résolution système est OK.

Stack dev courante sur Ubuntu

Nginx + PHP-FPM

Virtual host server_name monprojet.test; + entrée hosts → 127.0.0.1.

Docker Compose

Préférez extra_hosts plutôt que modifier hosts dans le conteneur :

YAML
extra_hosts:
 - "monprojet.test:host-gateway"

Snap / Firefox

Le navigateur peut cacher DNS séparément. Testez aussi curl en CLI.

Ubuntu sous WSL2 (Windows)

Double configuration :

EnvironnementFichierUsage
WindowsC:\Windows\System32\drivers\etc\hostsChrome/Edge Windows
WSL Ubuntu/etc/hostscurl, npm, php artisan serve

Procédure WSL :

BASH
sudo nano /etc/hosts
# mêmes entrées que sur Windows si vous testez les deux

Windows : guide Windows 11.

Note : WSL2 peut régénérer partiellement hosts au restart dans certains scénarios, documentez un script ~/bin/sync-hosts.sh pour l’équipe.

cloud-init sur VPS Ubuntu

Sur instances cloud, cloud-init injecte parfois des entrées metadata :

BASH
grep cloud-init /etc/hosts

Pour persister vos ajouts, utilisez des snippets cloud-init ou Ansible plutôt qu’une édition manuelle oubliée.

Permissions sudo

Utilisateur doit être dans groupe sudo. Entreprise : guide admin.

Sans mot de passe sudo (poste dev isolé uniquement) :

TEXT
# /etc/sudoers.d/hosts-dev, DANGEREUX en prod
username ALL=(ALL) NOPASSWD: /usr/bin/nano /etc/hosts

Déconseillé en environnement partagé.

Dépannage Ubuntu

« Temporary failure in name resolution »

  • Vérifiez /etc/resolv.conf et systemd-resolved
  • Entrée hosts mal formée (caractère invisible copié depuis Word)

sudo: unable to resolve host ubuntu-laptop

→ Ligne 127.0.1.1 ubuntu-laptop manquante ou hostname incohérent.

Modification non visible dans le navigateur

→ Flush resolvectl et cache navigateur.

Conflit avec Pi-hole ou DNS chiffré

DoH dans Firefox bypass parfois le resolver, testez en navigation privée sans extensions.

Bloquer des sites sur Ubuntu

TEXT
0.0.0.0 distraction.social
0.0.0.0 www.distraction.social

Guide : bloquer un site. Sécurité : est-ce sûr ?.

Bonnes pratiques équipe Ubuntu

  1. Domaines .test (RFC réservés) plutôt que .local
  2. Backup daté avant import liste pub
  3. README avec commande flush copiable
  4. Entrées datées pour migrations temporaires
  5. Collègues Mac : partager tableau domaines, eux : Mac ou ToggleHosts

Exemple README :

MARKDOWN
## Hosts Ubuntu
sudo nano /etc/hosts
sudo resolvectl flush-caches
127.0.0.1 app.equipe.test

Comparaison rapide LTS

VersionresolvedNotes
22.04 LTSOuiStandard entreprise
24.04 LTSOuiMême procédure

Laravel, Symfony et PHP sur Ubuntu

Laravel Valet Linux (ou équivalent)

Beaucoup d’équipes PHP utilisent des domaines .test :

TEXT
127.0.0.1 monapp.test
127.0.0.1 api.monapp.test

Puis php artisan serve --host=0.0.0.0 ou Nginx site-enabled. Oublier resolvectl flush-caches après ajout = ticket « 404 seulement chez moi ».

Symfony local

Fichier .env.local :

ENV
APP_URL=https://symfony.test

Hosts obligatoire si vous testez cookies domain-scoped ou CORS entre sous-domaines.

Composer et scripts post-install

Automatisez l’onboarding :

BASH
#!/bin/bash
# scripts/setup-hosts.sh
grep -q "monapp.test" /etc/hosts || echo "127.0.0.1 monapp.test" | sudo tee -a /etc/hosts
sudo resolvectl flush-caches

Versionnez le script, pas le fichier hosts système du développeur.

Node.js, Vite et ports multiples

TEXT
127.0.0.1 frontend.dev.test
127.0.0.1 backend.dev.test

Proxy Vite :

JAVASCRIPT
// vite.config.js
server: { host: 'frontend.dev.test', port: 5173 }

Test : curl -H "Host: frontend.dev.test" http://127.0.0.1:5173

Snap Firefox sur Ubuntu 24.04

Firefox Snap est le défaut. En cas de doute :

BASH
sudo apt install firefox --no-install-recommends # deb natif si politique équipe le permet

Comparez résolution Snap vs deb si le navigateur seul échoue.

Multipass et VMs Ubuntu locales

Canonical Multipass crée des VMs Ubuntu isolées, chacune a son /etc/hosts. Modifiez l’hôte Ubuntu et la VM si vous accédez depuis les deux.

Netplan et résolution (ne pas confondre)

Netplan configure interfaces réseau, pas le contenu de /etc/hosts. Les confusions mènent à éditer le mauvais fichier YAML dans /etc/netplan, restez sur /etc/hosts pour les noms locaux.

Checklist onboarding Ubuntu (copier-coller wiki)

MARKDOWN
## Setup hosts, Ubuntu dev
1. sudo cp /etc/hosts /etc/hosts.backup
2. sudo nano /etc/hosts
3. Coller bloc projet (voir repo docs/hosts.txt)
4. sudo resolvectl flush-caches
5. getent hosts app.equipe.test
6. Ouvrir https://app.equipe.test

Performance : fichier hosts volumineux

Si un dev importe une liste anti-pub de 50 Mo sur Ubuntu :

BASH
wc -l /etc/hosts

Plus de 20 000 lignes → mesurer latence time getent hosts google.com. Envisager Pi-hole réseau plutôt qu’hosts local, guide blocage.

PostgreSQL, Redis et noms de service locaux

Pattern microservices Ubuntu :

TEXT
127.0.0.1 postgres.dev.test
127.0.0.1 redis.dev.test
127.0.0.1 api.dev.test

Docker Compose expose 5432 sur localhost ; votre app lit DATABASE_URL=postgres://postgres.dev.test:5432, hosts unifie la doc équipe même si les ports changent.

GitHub Codespaces et dev distant

Codespaces ignore le hosts de votre laptop, l’environnement distant a son propre /etc/hosts. Si vous basculez entre local Ubuntu et Codespace, maintenez deux checklists séparées.

systemd-resolved et DNSSEC

resolvectl query affiche parfois « DNSSEC validated » pour le DNS upstream, cela n’affecte pas la priorité du fichier hosts local. Vos entrées 127.0.0.1 restent prioritaires.

AppArmor et édition /etc/hosts

Sur Ubuntu, AppArmor ne bloque généralement pas sudo nano /etc/hosts. Si vous voyez « Permission denied » malgré sudo, vérifiez que le filesystem n’est pas monté en read-only (mount | grep ' / ') après une mise à jour kernel ratée.

Journalctl et diagnostic réseau

Après modification hosts, si un service systemd échoue au démarrage :

BASH
journalctl -u nginx -n 50 --no-pager

Un unknown host indique souvent une faute de frappe dans /etc/hosts, pas un problème nginx.

Comparez toujours /etc/hostname, /etc/hosts et la sortie de hostname -f lors d’un onboarding Ubuntu, trois sources qui doivent rester cohérentes.

Conclusion

Sur Ubuntu : backup, sudo nano /etc/hosts, respecter 127.0.1.1, resolvectl flush-caches, getent pour tester. WSL et cloud-init sont les deux pièges qui surprennent même les devs expérimentés.

Suite : Linux, guide complet, pilier.

Sources et ressources externes

Partager cet article

Questions fréquentes

/etc/hosts, identique à la plupart des distributions Linux.

L’installateur l’ajoute pour que le nom de machine soit résolvable sans DNS externe. Ne la supprimez pas sans ajuster /etc/hostname.

sudo resolvectl flush-caches, Ubuntu utilise systemd-resolved par défaut depuis plusieurs versions LTS.

Rarement directement pour les entrées manuelles. Les entrées que vous ajoutez restent en général persistantes.

Oui pour éditer /etc/hosts dans WSL, mais le hosts Windows reste séparé pour les apps Windows.

sudo cp /etc/hosts.backup.YYYYMMDD /etc/hosts puis sudo resolvectl flush-caches

Articles similaires