Comment éditer le fichier hosts sur Mac
Le fichier hosts associe un nom de domaine à une adresse IP, avant même que le système interroge un serveur DNS. Il sert à tester un site sur un serveur de développement avant de changer le DNS, à bloquer un site, ou à contourner temporairement une configuration réseau. Sur macOS, il se trouve dans /private/etc/hosts (le chemin /etc/hosts y mène aussi) et seul un compte administrateur peut le modifier.
Éditer le fichier
Ouvrez l'application Terminal (dans Applications, Utilitaires) et lancez l'éditeur nano avec les droits d'administrateur :
sudo nano /private/etc/hosts
Le mot de passe demandé est celui de votre session. Il ne s'affiche pas pendant la saisie. Avant de modifier, vous pouvez faire une copie de sécurité :
sudo cp /private/etc/hosts /private/etc/hosts.sauvegarde
Le format d'une ligne
Chaque ligne contient une adresse IP, puis un ou plusieurs noms de domaine, séparés par des espaces ou des tabulations. Tout ce qui suit un # est un commentaire :
xxx.xxx.xxx.xxx www.myurl.com
xxx.xxx.xxx.xxx est l'adresse IP, et www.myurl.com est le domaine à faire correspondre. Exemple, pour pointer quatre sous-domaines de développement vers le même serveur local :
192.168.0.4 deva.e-bancel.com 192.168.0.4 devb.e-bancel.com 192.168.0.4 devc.e-bancel.com 192.168.0.4 devd.e-bancel.com
Plusieurs noms peuvent aussi partager une ligne : 192.168.0.4 deva.e-bancel.com devb.e-bancel.com. Ne supprimez pas les lignes déjà présentes (127.0.0.1 localhost, 255.255.255.255 broadcasthost et ::1 localhost) : le système en a besoin.
Enregistrer et quitter nano
Ctrl+OpuisEntréepour enregistrer ;Ctrl+Xpour quitter.
Vider le cache DNS pour appliquer le changement
macOS garde en mémoire les correspondances déjà résolues. Pour que le nouveau contenu du fichier soit pris en compte tout de suite, videz le cache DNS :
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Vérifiez ensuite que le nom pointe vers la bonne adresse :
ping -c 1 deva.e-bancel.com
Si le navigateur ne tient pas compte du changement
- Fermez et rouvrez le navigateur : il garde son propre cache DNS. Dans Chrome, l'adresse
chrome://net-internals/#dnspermet de le vider. - Un VPN, un proxy ou la fonction « DNS sécurisé » du navigateur peuvent contourner le fichier
hosts. - Si le nom a aussi une adresse IPv6 dans le DNS, ajoutez une ligne pour l'IPv6 : le système peut la préférer à l'IPv4 de votre fichier.
- Pour un site en HTTPS, le certificat doit correspondre au nom de domaine : le navigateur affichera une alerte si le serveur de test n'a pas le bon certificat.
Sous Windows et Linux
Le principe est le même. Sous Linux, le fichier est /etc/hosts (sudo nano /etc/hosts). Sous Windows, c'est C:\Windows\System32\drivers\etc\hosts, à ouvrir avec un éditeur lancé en administrateur ; le cache DNS se vide avec ipconfig /flushdns.