Le format de /etc/hosts
sous Linux et Windows est le même :
IP address hostname [hostalias]...
où les crochets sont la manière habituelle d'indiquer que quelque chose est facultatif (ne les tapez pas réellement) et les points (...
) signifie qu'il peut y en avoir plusieurs.
Vous ne devriez pas avoir à faire de votre hôte une partie d'un domaine. Essayez-le et voyez. Mais ce serait une bonne idée d'utiliser .localdomain
si vous n'avez pas de vrai nom de domaine. Cela peut rendre la résolution du nom d'hôte un peu plus rapide grâce au ndots
option en /etc/resolv.conf
.
Notez que dans ce sens, domaine signifie domaine DNS (comme google.com
ou stackexchange.com
), pas un domaine Windows ou quelque chose comme ça.
La ligne commençant par ::1
est pour IPv6. ::1
est comme 127.0.0.1
dans le cadre du nouveau schéma d'adressage. Exécutez ifconfig lo
et vous devriez voir qu'il a deux adresses. Notez l'entrée commençant par inet6
.
$ ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
...
Voir la page de manuel hosts(5) pour plus de détails.
Vous voulez toujours que l'adresse 127.0.0.1 soit d'abord résolue en localhost. S'il existe un domaine, vous pouvez également l'utiliser, mais assurez-vous ensuite que localhost est répertorié en second. Si vous souhaitez ajouter des alias pour votre machine qui recherchera l'adresse de bouclage, vous pouvez continuer à les ajouter en tant que valeurs séparées par des espaces sur cette ligne. Spécifier un domaine ici est facultatif, mais ne supprimez pas "localhost" des options.
Je ne peux pas dire en quoi Windows peut différer de Linux, mais le format de la définition de la machine locale affecte les résultats que vous obtiendrez de la commande 'hostname'.
Le format que je trouve qui fonctionne le mieux est le suivant :
127.0.0.1 etest.mydomain.com etest localhost
La chose importante que j'ai trouvée est d'avoir le FQDN en premier et les alias, dans n'importe quel ordre, après.
Si vous essayez de réorganiser les noms après l'adresse IP, puis d'utiliser les commandes 'hostname -s' (nom court) et 'hostname -f' (nom de domaine complet ou FQDN), vous verrez ce que je veux dire. Cela devrait ressembler à ceci :
$ hostname -s
etest
$ hostname -f
etest.mydomain.com
'hostname' par lui-même devrait renvoyer le nom que vous avez entré pour l'hôte dans /etc/conf.d/hostname ou /etc/hostname (l'emplacement du fichier varie selon la distribution, mais doit se trouver quelque part sous /etc).
Si vous modifiez l'ordre des noms, vous constaterez peut-être que "hostname -f" vous donne des réponses telles que "localhost" ou "hostname:system error". Le seul arrangement que j'ai trouvé qui fonctionne correctement est de mettre le FQDN en premier.
Je définis toujours la ligne d'adresse locale IPv6 (::1) de la même manière, c'est-à-dire :
::1 etest.mydomain.com etest localhost
Je sais que certaines distributions définissent le nom IPv6 sur quelque chose comme ip6-localhost. Je n'utilise pas encore vraiment IPv6, donc je ne peux pas dire quels seraient les meilleurs paramètres pour cette ligne. Je peux juste dire que dans un réseau IPv4, cela fonctionne pour avoir les deux lignes avec les mêmes noms.