El formato de /etc/hosts
en Linux y Windows es lo mismo:
IP address hostname [hostalias]...
donde los corchetes son la forma habitual de indicar que algo es opcional (en realidad no los escriba) y los puntos (...
) significa que puede haber más de uno.
No debería tener que hacer que su host forme parte de un dominio. Pruébalo y verás. Pero sería una buena idea usar .localdomain
si no tiene un nombre de dominio real. Puede hacer que la resolución de nombres de host sea un poco más rápida debido al ndots
opción en /etc/resolv.conf
.
Tenga en cuenta que, en este sentido, dominio significa dominio DNS (como google.com
o stackexchange.com
), no un dominio de Windows ni nada por el estilo.
La línea que comienza con ::1
es para IPv6. ::1
es como 127.0.0.1
bajo el nuevo esquema de direccionamiento. Ejecute ifconfig lo
y deberías ver que tiene dos direcciones. Tenga en cuenta la entrada que comienza con 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
...
Consulte la página del comando man hosts(5) para obtener más detalles.
Siempre desea que la dirección 127.0.0.1 se resuelva primero en localhost. Si hay un dominio, también puede usarlo, pero luego asegúrese de que localhost aparezca en segundo lugar. Si desea agregar alias para su máquina que buscarán la dirección de bucle invertido, puede seguir agregándolos como valores separados por espacios en esa línea. Especificar un dominio aquí es opcional, pero no elimine "localhost" de las opciones.
No puedo hablar de cómo Windows puede diferir de Linux, pero el formato de la definición de la máquina local afecta los resultados que obtendrá del comando 'nombre de host'.
El formato que encuentro que funciona de manera más consistente es este:
127.0.0.1 etest.mydomain.com etest localhost
Lo importante que he encontrado es tener el FQDN primero y los alias, en cualquier orden, después.
Si experimenta reorganizando los nombres después de la dirección IP y luego usando los comandos 'hostname -s' (nombre corto) y 'hostname -f' (nombre de dominio completo o FQDN), verá lo que quiero decir. Debería ser algo como esto:
$ hostname -s
etest
$ hostname -f
etest.mydomain.com
'hostname' por sí solo debería devolver el nombre que ingresó para el host en /etc/conf.d/hostname o /etc/hostname (la ubicación del archivo varía según la distribución, pero debe encontrarse en /etc en alguna parte).
Si cambia el orden de los nombres, puede encontrar que "nombre de host -f" le da respuestas como "localhost" o "nombre de host:error del sistema". El único arreglo que he encontrado que funciona correctamente es poner el FQDN primero.
Siempre configuro la línea de dirección local IPv6 (::1) de la misma manera, es decir:
::1 etest.mydomain.com etest localhost
Sé que algunas distribuciones establecen el nombre de IPv6 en algo como ip6-localhost. Realmente no uso IPv6 todavía, así que no puedo comentar cuál sería la mejor configuración para esta línea. Solo puedo decir que en una red IPv4 funciona tener ambas líneas con los mismos nombres.