Le file / etc / hosts doit-il contenir le nom de domaine ou le nom de domaine complet?

Si je veux append une input à /etc/hosts pour résoudre tout le trafic de example.com vers 1.2.3.4 , dois-je append

 1.2.3.4 example.com 1.2.3.4 www.example.com 1.2.3.4 smtp.example.com 1.2.3.4 pop.example.com ... 

Ou appenda juste

 1.2.3.4 example.com 

suffire?

Vous devrez spécifier chaque sous-domaine. Si ce n'est pas ce que vous voulez, vous devriez envisager d'installer un vrai server DNS (par exemple bind9).

Ceci est assez facile à vérifier en ajoutant d'abord juste example.com à /etc/hosts , puis en faisant

 ping -c 2 example.com ping -c 2 www.example.com 

Le premier réussira avec l'adresse IP fournie. Le second passera à 93.184.216.119 (l'adresse IP sur Internet pour http://www.example.com)

/etc/hosts est / était le préslider du système DNS à partir du moment où Internet était à ses balbutiements. Il est toujours utilisé aujourd'hui, par exemple lorsque vous souhaitez résoudre un petit nombre de systèmes locaux ou dans une configuration de développement où vous n'avez pas configuré le DNS.

Vous placez tous les noms d'hôte que vous voulez résoudre à une adresse IP. Vous pouvez atsortingbuer plusieurs noms à une adresse IP comme la ligne localhost de la plupart des dissortingbutions:

 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 

Si vous voulez append 1.2.3.4 à votre server web, qui s'appelle www.example.com et que vous y accédez via un www plus court, ajoutez:

 1.2.3.4 www www.example.com 

Dans votre instance, vous pouvez placer tous les noms sur une seule ligne:

 1.2.3.4 www.example.com smtp.example.com pop.example.com 

L'ordre dans lequel votre système résout ces noms ( /etc/hosts ou DNS en premier) peut être configuré dans les hosts: line of /etc/nsswitch.conf )

Mais callbackez-vous, /etc/hosts ne fonctionne que depuis votre machine. Si vous avez quelques systèmes, éditer /etc/hosts sur chacun peut devenir fastidieux.