Comprender el nombre de host y / etc / hosts


12

En / etc / hostname, tengo myname.

En / etc / hosts, tengo:

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

Tengo una vaga comprensión de lo que realmente es un nombre de host y para qué se utiliza.

Estas preguntas más precisas podrían ayudarme a comprenderlo mejor:

  1. ¿Cuál es realmente mi nombre de host en el ejemplo anterior? myname¿o algo mas? Si tuviera lugar myname.domain.comen /etc/hostname, lo que sería mi verdadero nombre de host, entonces?

  2. En el ejemplo, el comando hostnameregresa myname, mientras que el comando hostname -fregresa localhost.localdomain. Tenía en mente que /etc/hostssolo era un mapeo entre nombres y direcciones IP. Parece cumplir otra función aquí. ¿Qué es un fqdn y para qué se utiliza? ¿Cómo se recupera? ¿Por qué es localhost.localdomain?

  3. Si tuviera myname.domain.comen su lugar /etc/hostname, hostname -fvolvería myname.domain.com. ¿Por qué?

  4. ¿Por qué fqdn no termina con un punto en estos archivos?

  5. ¿Son hostname -dy dnsmydomainequivalentes?

  6. ¿En qué contexto puedo usar mi nombre de host ( myname) y cuándo debo usar mi fqdn ( localhost.localdomain)?

Respuestas:


9
  1. /etc/hostnamecontiene el nombre de la máquina, como lo conocen las aplicaciones que se ejecutan localmente. /etc/hostsy nombres de DNS asociados con direcciones IP. mynamepuede asignarse a cualquier dirección IP a la que pueda acceder la máquina, pero 127.0.0.1asignarla no es estético.
  2. No /etc/hosts, pero /bin/hostnamecumple otra función con -f.
  3. Porque /etc/hostspuede anular el sentido común . Edítelo con precaución y no deje basura allí después de parches y experimentos temporales.
  4. Ambos estilos (⋯ .TLD. y ⋯ .TLD ) son aceptables. El primero es inequívoco, mientras que el segundo es omnipresente.
  5. No sé qué dnsmydomaines, pero poco probable. Buscar algo /etc/hostsno es técnicamente "DNS".
  6. Recuerde el punto 1. Nombre de host: para aplicaciones que se ejecutan localmente; también para protocolos de red tan peculiares como SMB (samba). FQDN (si no es una falsificación o marcador de posición localhost.localdomain): para acceder a la máquina desde el exterior. El FQDN debe poder resolverse donde se usa.

1
¿Qué sucede si mi IP es dinámica (DHCP) y cambia de vez en cuando? ¿Qué dirección debo usar como mynameen / etc / hosts?
user156516

3

Absolutamente odio cuando alguien me dice que lea el manual, pero en este caso, eche un vistazo a la página del manual para el nombre de host y la mayoría, si no todas, sus preguntas deben ser respondidas. Está escrito mucho mejor de lo que podría explicar.

Para brindar asistencia, algunos de los extractos que se incluyen en sus preguntas son: - Su nombre de host es lo que ve en / etc / hosts. - El FQDN devuelto se basa en lo que devuelve la resolución, por lo tanto, por qué ve que se devuelve el valor en / etc / hosts cuando la resolución verifica primero el archivo de hosts, luego realiza las consultas DNS necesarias.

El que no creo que se mencione en la página de manual del nombre de host (basado en mi nueva lectura de la página del manual) es la razón por la cual las entradas en los archivos no terminan con un punto.

Esa convención se usa cuando se trata de registros DNS. El nombre de host y los archivos de hosts no son realmente registros DNS. Si estaba configurando estas entradas en enlace para que se resolvieran para las búsquedas de DNS, entonces el uso de un punto puede entrar en juego (consulte este buen recurso: http://www.zytrax.com/books/dns/apa/dot.html )

Además, tenga en cuenta que todos estos valores no se transmiten desde el sistema. Entonces, si desea que otro sistema acceda en función del FQDN, se basa en el archivo de hosts en ese otro sistema, o carece de entradas de hosts en función de las búsquedas de DNS que el sistema externo hace en el FQDN para permitir que se resuelva de nuevo en el sistema.


Relacionado, sobre el punto final en /etc/hosts: serverfault.com/questions/336056/setting-fqdn-hostname-and-dot
John WH Smith

3

En respuesta a

¿Qué sucede si mi IP es dinámica (DHCP) y cambia de vez en cuando? ¿Qué dirección debo usar como mi nombre en / etc / hosts?

Permítanme señalar, primero, que / etc / hosts es una definición estática de mapeo de nombre a dirección para el host en el que está instalado, y que ese host SOLO lo utiliza para convertir el nombre a la dirección IP.

Entonces, hay 2 puntos de vista a considerar: el host 'myname' y todos los demás.

Para ese host 'myhost', haga referencia al host actual usando 'localhost' (que se define en / etc / hosts como 127.0.0.1), o agregue 'myname' a la línea / etc / hosts que define localhost para que 'myname 'siempre se asigna a, bueno, localhost. Al igual que:

127.0.0.1 localhost myname

Entonces, no importa qué dirección IP le dé la INTERFAZ, siempre tendrá una dirección que funcione (una ventaja adicional es que no necesita presionar el hardware para hablar de 'myname' a 'myname').

Ahora, para permitir que OTROS hosts encuentren 'myhost' cuando 'myhost' tenga una dirección IP dinámica, debe usar DNS y dicho servidor DNS debe manejar las asignaciones asignadas por DHCP. (Bueno, está bien, hay otras soluciones en las que puedo pensar, pero todo lo que me viene a la mente encaja en la categoría 'más allá de tonto', en mi humilde opinión. Bueno, está bien, hay cosas que puede hacer al host para que le diga al DNS dónde está, pero esa es una pregunta digna de un flujo de preguntas / respuestas completamente diferente aquí, en mi humilde opinión)


2

/ etc / hostname y / etc / hosts son simples, pero tampoco tan simples ...

Cómo configurar Debian /etc/hostnamey/etc/hosts

1) Editar / etc / nombre de host .

Hay 2 formas válidas de configurar esto.

O hazlo:

  • machine, es decir, un nombre simple de una palabra para este procesador.
    Por ejemplo, ' joe' podría ser el nombre de su máquina elegida por usted mismo.
    Tenga en cuenta que esto requerirá un alias en / etc / hosts, que se describe con más detalle a continuación.

O

  • machine.domain.net, es decir, un nombre de dominio completo (FQDN).
    Por ejemplo, ' joe.xyz.com'.
    (Esto supone que tiene un registro DNS A Host 'A' que apunta desde joe.xyz.com a la dirección IP de su Joe, es decir, en su máquina llamada Joe. Normalmente configura este registro donde compró su nombre de dominio. Más sobre eso en un momento.)

Una vez que se establece / etc / hostname , el siguiente paso es obtener los comandos hostname --all-fqdny dnsdomainnamefuncionar correctamente, en ese orden, de la siguiente manera:

2) Editar / etc / hosts .

Tiene una línea para el FQDN de este host , por ejemplo, 'machine.domain.net', con el prefijo de la dirección IP de esta máquina (posiblemente de un servidor de dirección IP dinámica) como esta:

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • Primero, tenga en cuenta que las mayúsculas o minúsculas no importan aquí. Consejo: Sin embargo, tener algunos límites, nos permite notar de dónde vienen las cosas en los próximos pasos. Así que he capitalizado a J oe.

  • También tenga en cuenta que parahostname que el simple (es decir, / etc / hostname = 'máquina') genere correctamente un FQDN, un alias llamado 'máquina' debe estar presente en / etc / hosts. Es por eso que el alias Joe está ahí. (Por cierto, está bien tener ese alias incluso si no lo está usando). De lo contrario, este alias no es necesario, ni se usa.

  • También tenga en cuenta que 'domain.net' debe ser resoluble, es decir, debe existir un registro A en DNS. Esto es lo que se llama ' resoluble ' (es decir, por el solucionador DNS).

3) Ahora instale esta nueva configuración desde / etc / hostname y / etc / hosts en el kernel, ejecutando:

    $ /etc/init.d/hostname.sh       # Or by rebooting

4) Probar nombre de host

$ hostname      # Reports the hostname previously read from in /etc/hostname.
joe

O

$ hostname
joe.xyz.com

Consejos:

  • Tenga en cuenta que esto no es lo que / etc / hostname es actualmente, como si lo edita nuevamente ahora, sino lo que fue leído previamente por el script /etc/init.d/hostname.sh, posiblemente como resultado de un reinicio.

  • Observe también que la 'j' está en minúsculas, por lo que esto sugiere que proviene de / etc / hostname, no / etc / hosts.

5) Prueba FQDN

$ hostname --all-fqdn   #reports the FQDN(s) matched in /etc/hosts.
Joe.xyz.com             #  It searches /etc/hosts for the joe in /etc/hostname.
                        #  Notice that the 'J' is uppercase.  
                        #     This suggest it came from /etc/hosts.

6) Probar el nombre de dominio DNS

$ dnsdomainname         #reports the computed DNS doman name    
xyz.com                 #  (i.e. the right most part of the FQDN; 
                        #    the part to the right of the first, left most, dot)
                        #  This is coming from Joe.xyz.com in /hosts, 
                        #    after 'Joe.' is removed.

Ahora esto debería facilitar la configuración de un servidor web y de correo electrónico.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.