En los pocos años que he estado usando Linux como mi sistema principal, específicamente Fedora, siempre he visto mi nombre de host configurado como "localhost", con la excepción de cuando me conecto a algunas redes y se convierte en mi IP. Hoy experimenté el siguiente comportamiento que tengo problemas para entender.
Configuré una instalación de Ubuntu en otra partición de mi computadora portátil, configurando un nombre de computadora / nombre de host durante la instalación de Ubuntu. Sin embargo, cuando reinicié de nuevo en Fedora, Fedora había actualizado mi nombre de host al nombre que configuré en la instalación de Ubuntu.
Siempre pensé que el nombre de host estaba configurado y almacenado en la partición de la instalación de distribución, y de hecho el contenido de / etc / hostname en Fedora todavía decía "localhost.localdomain", pero al ejecutar el hostname
comando se muestra el nuevo nombre de host. Ambas instalaciones comparten una partición de arranque efi, pero por lo demás son discretas. Me pregunto desde dónde y por qué la instalación de Fedora está leyendo el nuevo nombre de host.
hosts:
en /etc/nsswitch.conf?hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Respuestas:
El
hostname
programa realiza una llamada al sistema uname, como se puede ver al ejecutar:Desde la página de manual de uname syscall , dice que syscall recupera la siguiente estructura del núcleo:
Entonces, el nombre de dominio proviene del sistema NIS / YP, si creemos el comentario. Por lo tanto, lo más probable es que haya un servicio NIS / YP en su red que le devuelva el nombre establecido por el sistema operativo ubuntu.
fuente
hostname(1)
página del manual que explica cómo se establece y se devuelve el nombre de host. A pesar de la similitud en el nombre, el nombre de dominio NIS / YP no tiene nada que ver con el nombre de dominio FQDN / DNS que devuelve el resolutor. Si no ha configurado NIS / YP, el nombre de dominio NIS / YP se deshabilitará.Hay dos conceptos independientes (!) De un nombre de host en un sistema Linux.
Hay lo que sea que el kernel considere el nombre de host local (como lo manejan las llamadas al sistema gethostname / uname y sethostname) independientemente de cualquier conectividad de red: estas mecánicas aún existirían si construyera un kernel sin capacidad para la red TCP / IP.
Hay uno o más nombres de host que están realmente conectados a TCP / IP (u otra pila de red, ¡no todas las redes en el mundo son IP!) Direcciones que tiene el host, y estas son manejadas en el espacio de usuario por las funciones de la biblioteca de resolución (parte de libc), que determinará dicho nombre interpretando las fuentes (archivo local / etc / hosts, DNS, NIS ...) de acuerdo con las reglas que les dé en los archivos de configuración apropiados (/etc/nsswitch.conf, / etc /host.conf, etc ...).
fuente
Probablemente Ubuntu se conectó a internet a través de su enrutador doméstico durante la instalación. Para hacer esto, informó su nombre de host al enrutador y obtuvo una IP local temporal.
Cuando ahora reinicia en Fedora, se conectará al mismo enrutador para obtener su dirección IP, pero la antigua concesión creada para Ubuntu sigue siendo válida. Como es la misma máquina con la misma tarjeta de red y la misma dirección MAC de hardware, reutilizará el mismo contrato de arrendamiento.
Supongo que el enrutador envía el nombre de host en el que se registró el arrendamiento de IP y Fedora lo recoge.
Desafortunadamente no tengo evidencia o cita para apoyar mi respuesta, solo puedo hablar con la experiencia personal de instalar Ubuntu en arranque dual con Windows. En aquel entonces, Ubuntu se negó a establecer el mismo nombre de host durante la instalación que el que usé en Windows, porque afirmaba que el nombre ya estaba presente en la red. Probablemente tenemos algo similar sucediendo aquí.
Para verificar si lo que supongo también se aplica a su situación, intente revocar su contrato de arrendamiento de IP en la interfaz de configuración de su enrutador y luego reinicie Fedora. Si ya no toma el nombre de host de Ubuntu, entonces debería estar en lo cierto.
fuente