Ceci est une ancienne révision du document !


Les fichiers hosts et hostname

hostname

Le fichier /etc/hostname contient le nom de l'ordinateur. Il faut le modifier avec les permissions administrateur en l'éditant avec votre éditeur préféré ou en tapant :

sudo sh -c "echo nouveau_nom_du_pc > /etc/hostname"

Un redémarrage est nécessaire pour la prise en compte. De façon temporaire on peut simplement utiliser la commande du même nom :

sudo hostname nouveau_nom_du_pc

Attention à garder la cohérence avec le fichier de configuration de Samba, cf. Paramètres généraux de [global].

hosts

Le fichier /etc/hosts est utilisé sous tous les systèmes d'exploitations lors de l'accès à Internet, ce fichier est consulté avant l'accès au serveur DNS. C'est un simple fichier qui contient sur la même ligne une adresse IP et parfois le nom de domaine.

Ce fichier permet de bloquer l'accès à un site Internet, de le rediriger, de bloquer les pubs et d'améliorer l'accès à des sites en fonction de la configuration de celui-ci. Il peut être utile pour protéger un ordinateur, empêcher un enfant (par exemple) d'accéder à un site particulier.
Ce fichier peut aussi servir à définir les noms des machines sur un réseau local (ou pas).

Le fichier hosts est l'ancêtre des DNS utilisé dans ARPANET - servant à adresser les adresses des réseaux.

  • Voir également PGLD, pour bloquer à partir de la liste peerguardian.

Trouver et modifier le fichier hosts

Le fichier hosts se trouve dans /etc/. Son chemin est donc /etc/hosts.

Avant modification, comme pour tout fichier-système, il est prudent d'en faire une copie de sauvegarde, datée de la veille :
sudo cp -av /etc/hosts /etc/hosts.bak.$(date -d "yesterday" '+%Y-%m-%d')

Les deux premières lignes de hosts sont cruciales. N'y touchez pas si vous ne savez pas exactement ce que vous faites – risque de rendre la machine inutilisable.

Pour modifier le fichier hosts, il faut les permissions administrateur.

En ligne de commande :

sudo nano /etc/hosts

Pour enregistrer : Ctrl+O puis Entrée. Pour quitter : Ctrl+X.

En mode graphique :

  1. Copier le fichier (sans changer son nom) dans le répertoire personnel (et pas dans un de ses sous-répertoires) :
    cp -v /etc/hosts ~
  2. Modifier cette copie avec votre éditeur de texte favori.
  3. L'enregistrer (toujours sans changer son nom).
  4. Le déplacer dans /etc/ (c'est le seul moment qui nécessite les permissions administrateur) :
    sudo mv -v ~/hosts /etc/hosts
La modification de /etc/hosts est instantanément appliquée par le système.

Utiliser le fichier hosts pour bloquer des sites web

En définissant comme adresse IP, une adresse autre, on peut éviter d'aller sur certains sites web ou par exemple, bloquer les publicités.

La plupart du temps c'est l'adresse de la boucle locale (127.0.0.1) qui est utilisée, cependant il est conseillé d'utiliser 0.0.0.0 à la place car il n'y a pas d'attente de timeout. Résultat : beaucoup moins de lenteurs. De plus, de cette façon, le fichier hosts n'interfère pas avec les serveurs Web qui peuvent être hébergés en local.

A priori, de trop grosses listes et/ou non adaptées peuvent ralentir l'accès au réseau. Faire des test (via la commande ping par exemple).

systemd-resolved est utilisé comme résolveur DNS par défaut et un trop gros fichier hosts (plusieurs Mo) peut bloquer complètement l'accès à internet. Pour palier ce problème, il suffirait de supprimer systemd-resolved. Plus d'infos dans cette discussion.

Pour aller plus loin et dans une perspective de sécurité, l'utilisation d'un pare-feu ou d'un proxy peut être préférable.

Voir aussi l'utilisation de dnsmasq.

Divers fichiers hosts

Voir aussi


Contributeurs : Fl4t, PsychedÉric, gb1yop, darunia, anonyme68, krodelabestiole.