Estoy ejecutando Ubuntu 14.04 en el servicio en la nube de mi empresa (mi instancia tiene una IP elástica). Quiero comprobar la dirección IP de mi instancia que estoy ejecutando por línea de comando, pero no funcionó.
root@ubuntu14-graphite:~# hostname ubuntu14-graphite root@ubuntu14-graphite:~# hostname -i hostname: Name or service not known
No entiendo la razón.
Intenté hacer ping a ubuntu14-graphite pero decía:
unknown host ubuntu14-graphite.
¿Eso significa que mi host no ¿Incluso existe?
Tengo otro servidor (no una instancia en la nube sino un servidor físico). En este servidor instalé CentOS 6.7. Revisé la IP del nombre de host y funcionó aunque no había nada especial en /etc/hosts
.
Aquí está la salida de cat /etc/hosts
:
127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Respuesta
Significa que «el system «(estoy usando ese término en un sentido amplio, general y ambiguo) no sabe que el nombre ubuntu14-graphite
corresponde a su host y su dirección IP. (El hecho de que su host «s nombre no sea suficiente para que esto suceda .) Esto casi seguramente significa que no tiene una línea para ubuntu14-graphite
en su /etc/hosts
archivo † , y que no está en su servicio de nombres (por ejemplo, DNS o NIS). En consecuencia, una forma de solucionarlo es agregar ubuntu14-graphite
(y su dirección IP) a su /etc/hosts
. Si está utilizando un sistema de nombres más sofisticado (distribuido) como DNS o NIS (¿o quizás ActiveDirectory?), La solución definitiva es agregar su host a ese servicio.
_____________
† … y veo en la publicación de su archivo de hosts que este es el caso.
Existe cierto debate sobre la cuestión de qué dirección IP debe asociar con su nombre de host . Todo el mundo está de acuerdo en que debería ser una dirección que «funcione» para su host; es decir, comandos como ping A.B.C.D
deberían tener éxito. Algunas personas recomiendan usar una dirección de loopback. Las direcciones de loopback son siempre del tipo formulario 127 .BCD ; los valores comunes son 127.0.0.1 y 127.0.1.1. Otras personas recomiendan usar una dirección LAN, que puede verse como 192.168 .CD (pero puede ser casi cualquier cosa) – pero no debe poner una dirección asignada dinámicamente en su archivo de hosts (y, si está usando DHCP con DNS, entonces las direcciones asignadas dinámicamente deben ingresarse en sus registros DNS automáticamente). Utilice comandos como ifconfig
y hostname -I
para ver qué direcciones están en uso.
Comentarios
en el archivo/etc/hosts
y verifique..nota, es127.0.1.1
, no127.0.0.1
(que puede conservar de todos modos solo para localhost, como127.0.0.0/8
es un bloque de bucle invertido, puede usar cualquier dirección aunque algunos sistemas tienen direcciones restringidas predefinidas)
Respuesta
La forma real de verificar la dirección IP de una máquina es mediante el comando ifconfig
.
Tenga en cuenta que, según la configuración real de la nube, la instancia del servidor puede no tenga en cuenta la IP pública y solo conozca la IP de una VLAN. Para obtener detalles sobre esto, debe consultar la documentación de su proveedor.
Comentarios
- No;
ip a s
. Consulte serverfault.com/q/458628/89813 – ifconfig está obsoleto en Linux.
Respuesta
Agregue la entrada myhostname
al servicio hosts
en /etc/nsswitch.conf
.
En otras palabras, cambie esta línea en /etc/nsswitch.conf
:
hosts: files dns
por esto:
hosts: files dns myhostname
Donde normalmente los nombres de host se resuelven usando el archivo /etc/hosts
y dns, el nombre de host del sistema también puede ser resuelto diciéndole al Interruptor de servicio de nombres que lo haga (como lo hará este cambio de configuración).
Esto explicaría por qué no vio nada especial sobre el /etc/hosts
archivo en el sistema que podría resolver el nombre de host local.
Más información sobre el indicador myhostname
es aquí .
Respuesta
En mi opinión, depende de la versión del comando de nombre de host (paquete net-tools).
Ver: https://bugzilla.redhat.com/show_bug.cgi?id=319981
- ejemplo en » openSuse Leap 42.3 «:
# hostname -V net-tools 1.60 hostname 1.100 (2001-04-14) # hostname -i hostname: Name or service not known
- en Lubuntu 17.10
$ hostname -V hostname 3.18
hostname -i
: me brinda información sobre IPv6 e IPv4
Comentarios
- Ese informe de error es sobre
hostname -s
, nohostname -i
. Esto no está relacionado con las versiones dehostname
, está relacionado con si el nombre de host proporcionado porhostname
se puede resolver.
Respuesta
Si el problema aún no se resuelve a pesar de aplicar las soluciones anteriores:
Intente eliminar
http://
parte de la URL en su comandotelnet
como se muestra a continuación:
En lugar de usar:
telnet http://website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80
Pruebe esto:
telnet website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80
Responder
Vaya a etc / hosts.save y compruebe su nombre de host allí. Y luego edite /etc/hosts
para escribir allí su nombre de host y el nombre de host en hosts.save
. También verifique la dirección IP. Ejemplo:
127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu
Comentarios
- Establecer una IP de host local en
/etc/hosts
no les dará la dirección IP real. Tampoco veo por qué ‘ también está mirando/etc/hosts.save
, que es un tecnicismo y muy irrelevante.
hostname
de manera diferente a los sistemas basados en RH. div id = «e7109f2f93»>