Le fichier hosts est un fichier utilisé par le système d'exploitation d'un ordinateur lors de l'accès à Internet. Il contient l'adresse IP locale et, éventuellement, l'adresse de serveurs web. Lors de l'accès à un périphérique réseau par nom de domaine, ce fichier est consulté avant l'accès au serveur DNS et permet au système de connaitre l'adresse IP associée au nom de domaine. Cette technologie fut à l'origine mise au point pour Arpanet, l'ancêtre d'Internet, mais devint insuffisante face à l'augmentation de la taille du réseau. Elle reste cependant utilisée pour les réseaux locaux de faible taille, ainsi que dans certains cas particuliers, par exemple pour le filtrage Web.
L'emplacement du fichier hosts dépend du système d'exploitation. Liste d'emplacements par défaut selon le système :
Le fichier hosts permet de filtrer l'accès à Internet, en attribuant à un site distant une adresse locale (127.0.0.1) ou pas d'adresse (0.0.0.0 ou, tout simplement, 0). Par exemple, pour bloquer le site Doubleclick, spécialisé dans le traçage des publicités, il suffit d'ajouter dans le fichier hosts la ligne suivante 127.0.0.1 ad.doubleclick.net ; pour bloquer les traceurs de Google, il faut ajouter les lignes suivantes :
NB : la prise en compte par les navigateurs d'une modification du fichier hosts nécessite le redémarrage de l'ordinateur sous windows. Cela n'est pas nécessaire sous linux sauf dans le cas où des applications mettent ce fichier en cache.
Attention : il est déconseillé d'utiliser cette technique sur un ordinateur hébergeant un serveur web (tel que Apache). En effet, cela pourrait générer des fichiers log d'erreur de taille importante.
Certains programmes (hijackers), comme les virus ou les espiogiciels (spywares), modifient les adresses de sites connus, tels Google, Altavista ou Microsoft, afin de rediriger vers un autre serveur, généralement piégé. Ils peuvent également bloquer l'accès aux sites utiles, tels les anti-virus en ligne, de façon à rendre la désinfection de la machine plus difficile.
On peut restaurer le fichier hosts en procédant de la manière suivante :