¿Qué distribución? En mi sistema Ubuntu 12.04, los 3 funcionan.
Anthon
Qué sistema operativo estás usando? Si es Linux, ¿qué distribución? ¿Cuáles son los contenidos de /etc/hostname?
terdon
1
hostname -fusa DNS, ¿tiene una entrada de DNS inversa para su IP?
Barmar
@terdon Estoy usando RHEL5 (red hat enterprise linux server versión 5.7 (tikanga)) y no existe dicho archivo (/ etc / hostname)
redoc
@Barmar No tengo el dns configurado en mi host. Agregué la dirección IP y fqdn en mi archivo de hosts (/ etc / hosts), ¿este error es resultado de que no se configuró dns?
El hostnamecomando devuelve resultados de DNS y /etc/hosts.
hostnamees equivalente uname -ny es el "nombre de host" o "nombre de nodo " real de la caja.
Todos los otros hostnameargumentos usan este nombre para buscar información.
Entonces, antes de continuar, debería explicar el /etc/hostsformato del archivo.
El primer campo es bastante obvio, es la dirección IP que todos los nombres de host en la línea deben resolver. El segundo campo es el nombre de host principal para esa IP. Los campos restantes son alias.
Entonces, si lo ejecuta hostname -f, primero intentará resolver la IP para su nombre de nodo. Dependiendo de cómo tenga hosts:configurada la entrada en /etc/nsswitch.confeste método, variará.
Si lo tiene configurado para usar dns, usará los dominios de búsqueda configurados /etc/resolv.confhasta que recupere una IP del DNS.
Si lo tiene configurado para usar archivos, buscará /etc/hostsuna línea donde el nombre de host principal o el nombre de alias es su nombre de nodo actual ( uname -n), y luego devolverá la dirección IP en esa línea.
Una vez que tenga la IP, intentará una búsqueda inversa en esa IP. Nuevamente usará DNS para esto y su archivo de hosts basado en su nsswitch.conf. En el caso de usar su archivo de hosts, devolverá la entrada principal (que es el primer campo después de la IP en el archivo).
hostname -asolo funcionará con el archivo de hosts, ya que realizar una búsqueda inversa en DNS solo le da 1 resultado. Con el archivo de hosts, devuelve los alises en la línea correspondiente (que es todo después de la primera entrada, el nombre de host principal).
En resumen, la razón probable de su problema es que no tiene ninguna entrada /etc/hostsque contenga su nombre de host ( uname -n).
Ejemplos
Si su nombre de nodo es 'foobar', y tiene una entrada /etc/hostscomo esta:
¡Esa explicación de cómo obtiene el valor es genial! Tenía mi FQDN al final de la línea 127.0.0.1 que tenía como nombre de host principal localhost. Simplemente los eliminé y dejé el FQDN solo en la línea que tiene la IP real, y solucionó mi problema de hostname -f return localhost.
/etc/hostname
?hostname -f
usa DNS, ¿tiene una entrada de DNS inversa para su IP?Respuestas:
(copiado de una de mis respuestas en SF )
El
hostname
comando devuelve resultados de DNS y/etc/hosts
.hostname
es equivalenteuname -n
y es el "nombre de host" o "nombre de nodo " real de la caja.Todos los otros
hostname
argumentos usan este nombre para buscar información.Entonces, antes de continuar, debería explicar el
/etc/hosts
formato del archivo.El primer campo es bastante obvio, es la dirección IP que todos los nombres de host en la línea deben resolver. El segundo campo es el nombre de host principal para esa IP. Los campos restantes son alias.
Entonces, si lo ejecuta
hostname -f
, primero intentará resolver la IP para su nombre de nodo. Dependiendo de cómo tengahosts:
configurada la entrada en/etc/nsswitch.conf
este método, variará./etc/resolv.conf
hasta que recupere una IP del DNS./etc/hosts
una línea donde el nombre de host principal o el nombre de alias es su nombre de nodo actual (uname -n
), y luego devolverá la dirección IP en esa línea.Una vez que tenga la IP, intentará una búsqueda inversa en esa IP. Nuevamente usará DNS para esto y su archivo de hosts basado en su
nsswitch.conf
. En el caso de usar su archivo de hosts, devolverá la entrada principal (que es el primer campo después de la IP en el archivo).hostname -a
solo funcionará con el archivo de hosts, ya que realizar una búsqueda inversa en DNS solo le da 1 resultado. Con el archivo de hosts, devuelve los alises en la línea correspondiente (que es todo después de la primera entrada, el nombre de host principal).En resumen, la razón probable de su problema es que no tiene ninguna entrada
/etc/hosts
que contenga su nombre de host (uname -n
).Ejemplos
Si su nombre de nodo es 'foobar', y tiene una entrada
/etc/hosts
como esta:Entonces obtendrá los siguientes resultados de comando:
fuente