Catégories
Sysadmin

Modifier le fichier /etc/hosts sous Windows Mac Linux?

Modifier le fichier /etc/hosts force une URL à avoir une adresse IP donnée pour réaliser des tests, développer ou bloquer des URLs précises. Le fichier hosts est la première source d’information interrogée lors d’une requête DNS avant même les serveurs DNS.

A quoi sert un fichier hosts IP?

C’est le fichier /etc/hosts qui est interrogé en premier avant qu’une requête DNS soit envoyé à vos serveurs DNS. Ce fichiers hosts permet de convertir des noms d’hôtes (FQDN, URL) en adresses IP qui sont les adresses compréhensibles par les ordinateurs.
Ce fichier est présent sur tous les systèmes d’exploitation : Windows, Mac, Linux, Unix qu’ils soient des ordinateurs personnels, des smartphones / tablette Android ou iPhone / iPad ou des serveurs informatiques hébergés dans le Cloud.

Pourquoi modifier fichier host ?

Le fichier hosts est un fichier système qui permet de faire correspondre les noms de domaine à des adresses IP. Il peut donc être utilisé pour bloquer l’accès à certains sites en les dirigeant vers une IP locale / inexistante ou pour rediriger vers d’autres IP que celles publiées dans la zone DNS. Cela est utile pour tester un site ou service sur une infrastructure en cours de construction. Dans le cadre de l’infogérance de nos clients nous sommes amenés à vous demander de tester des installations par ce mécanisme.

Comment ajouter une entrée à un fichier /etc/hosts?

La façon de renseigner des enregistrements dans le fichier /etc/hosts est la même pour tous les systèmes d’exploitation. On commence une ligne par une adresse IP soit v4 soit v6 puis un ou plusieurs URL / FQDN.

# exemple de déclaration de matériel sur son réseau local
192.168.1.2 nas
192.168.1.3 routeur-wifi
# exemple de site pour du développement sur un serveur du même réseau
192.168.1.1 www.example.com
# exemple de site pour du développement sur son propre ordinateur
127.0.0.1 dev.monsite.tld dev2.monsite.tld
::1 dev.monsite.tld dev2.monsite.tld
# URL à bloquer
127.0.0.1 urlabloquer.tld
::1 urlabloquer.tld

Dans l’exemple ci-dessus, toutes les lignes sont valides et représentes des exemples sur différents cas d’usages qui peuvent être rencontrés.

Le fichier hosts permet de déclarer des noms faciles à retenir pour un humain comme un équipement plutôt que de retenir son adresse IP.
On peut déclarer dans un fichier hosts des URLs pour simuler des modifications DNS par exemple dans le cas d’une migration de serveur pour tester l’URL sur le prochain serveur avant de faire la migration.
Enfin le fichier hosts permet de bloquer certaines URLs dont on ne veut pas que l’ordinateur puisse faire des requêtes vers des serveurs externes.

Comment modifier le fichier /etc/hosts? Quel est l’emplacement?

Modifier le fichier hosts sous Windows en tant qu’administrateur?

Windows possède plusieurs emplacements pour son fichier hosts, ce dernier va dépendre de la version de Windows.

Windows 11, 10, 8, Seven, Vista, XP, 2000

C:\windows\system32\drivers\etc\hosts

Sur les vieilles version de Windows :

  • Windows NT c’est le fichier C:\winnt\system32\drivers\etc\hosts
  • Windows 95, 98, ME c’est le fichier C:\windows\hosts

Actions pour modifier le fichier hosts sous Windows :

  • ouvrir le menu Démarrer
  • dans le champs de recherche inscrivez Notepad
  • faire un clic-droit sur l’icône Notepad
  • cliquez Exécuter en tant qu’administrateur
  • cliquez sur Fichier, Ouvrir, dans le menu déroulant choisir Tous les fichiers
  • changer le chemin pour trouver le fichier selon votre version de Windows
  • ouvrir et modifier le fichier
  • sauvegarder et quitter
Capture d'écran modification /etc/hosts avec Notepad sous Windows.
Modification fichier hosts avec Notepad dans Windows 11

Modifier le fichier hosts sous Mac OS?

Le fichier hosts pour toutes les versions de MacOS se trouve à l’emplacement suivant.

/etc/hosts

Pour modifier le fichier hosts sous MacOS, il faut avoir un compte administrateur.

  • dans les applications aller dans le répertoire Utilitaires puis lancer l’application Terminal
  • entrez la commande sudo nano /etc/hosts
  • entrez votre mot de passe pour passer en édition administrateur
  • faites vos modifications
  • sauvegardez avec Ctrl + o
  • quittez avec Ctrl + x
Capture d'écran modification /etc/hosts avec Nano sous MacOS dans Terminal.
Modification /etc/hosts avec Nano dans MacOS

Modifier le fichier hosts sous Linux / Unix / BSD?

Pour tous les Linux, Unix et BSD le fichier hosts se trouvent à l’emplacement suivant.

/etc/hosts

Pour modifier le fichier hosts sous Linux / Unix / BSD, il faut être administrateur soit être root ou avoir des droits pour éditer le fichier.

Méthode graphique :

  • lancez un éditeur de texte
  • ouvrir le fichier /etc/hosts
  • renseigner votre mot de passe pour passer administrateur root
  • faites vos modifications
  • sauvegarder et fermer l’éditeur de texte
Capture d'écran modification /etc/hosts avec TextEdit sous Linux en graphique.
Modification /etc/hosts avec TextEdit dans en environnement Linux Gnome

Méthode terminal :

  • ouvrez un terminal
  • entrez la commande sudo nano /etc/hosts
  • faites vos modifications
  • sauvegardez avec Ctrl + o
  • quittez avec Ctrl + x
capture d'écran modification /etc/hosts sous Linux avec un terminal et nano
Modification /etc/hosts avec Nano dans un terminal Linux

Modifier le fichier hosts sous Android / iPhone / iPad?

La modification du fichier hosts sous Android ou iPhone / iPad n’est pas aisée, puisque les éditeurs Google et Apple ont simplement décidé d’enlever ce privilège aux utilisateurs car personne n’est réellement administrateur d’un smartphone ou tablette.

Deux méthodes assez complexes permettent néanmoins de contourner ce blocage.

Méthode par modification DNS

C’est la méthode à privilégier, pour cela il vous faut posséder un réseau local dont vous avez la maîtrise. Certaines box opérateurs permettent d’ajouter vos propres enregistrements DNS ou si vous possédez votre propre firewall / borne wifi vous aurez cette capacité de modification DNS.

Dans la box opérateur ou votre firewall / routeur wifi, trouvez la rubrique serveur DNS. Vous devriez pouvoir ajouter une entrée avec deux champs, une adresse IP et un champs hôte / FQDN / URL.

Par la suite votre appareil mobile enverra une requête DNS et se verra répondre la valeur que vous avez entré dans votre box ou routeur, vous permettant ainsi de rediriger votre requête sur un serveur de développement.

Méthode par jailbreak

Nous ne recommandons pas cette méthode si vous avez juste besoin de faire des tests, réaliser un jailbreak devrait être motivé par d’autres considérations plus importantes à la vue des risques de sécurité que cela engendre sur ces terminaux. Néanmoins si votre smartphone est jailbreak vous pouvez alors librement éditer le fichier hosts, des applications existent pour faciliter l’édition.

Quels sont les risques de modifier son fichier hosts?

Deux risques principaux sont présents lorsque l’on modifie un fichier hosts sur un ordinateur.

Le premier est d’oublier une modification réalisée dans le fichier hosts. Ainsi vous pensez réaliser des modifications sur un site de production alors que vous pensiez être sur un site de développement. L’inverse vous questionnera de pourquoi vous ne voyez pas vos commande sur votre site e-commerce alors que vous avez bien reçu de nouvelles commandes par email.

Le deuxième risque est que des logiciels malveillants peuvent aussi modifier ce fichier et vous forcer à aller sur un serveur malveillant à la place d’un serveur légitime. Ils pourraient aussi vous bloquer un accès à des sites spécifiques.

Comment ajouter des lignes dans le fichier hosts ?

Le fichier hosts est un fichier de configuration utilisé par le système d’exploitation pour convertir les noms d’hôtes en adresses IP. Il permet donc de faire correspondre un nom de domaine à une adresse IP. Pour ajouter des lignes dans le fichier hosts, il suffit de les ajouter à la fin du fichier, en respectant le format suivant : adresse_ip nom_de_domaine.

Vous trouverez plus haut comment procéder à la modification du fichier etc hosts sur les différentes plateformes Windows, Mac et Linux.

Comment ecrire dans le fichier host ?

Pour modifier le fichier etc host il faut un éditeur de texte brut, comprendre sans mise en forme du texte. L’éditeur de texte est un programme qui permet de créer, modifier et enregistrer un fichier texte. Vous pouvez utiliser le Bloc-notes sous Windows, mais nous vous recommandons d’utiliser Notepad++ car il est plus pratique. Pour Linux et Mac OS nous recommandons Nano qui est un éditeur de texte en ligne de commande assez simple et présent sur tous les systèmes.