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

  • Gracias por tu respuesta. Edité mi pregunta porque noté un caso más relacionado con mi servidor CentOS que no ‘ no tiene nada más que 127.0.0.1 localhost, pero aún puedo verificar mi host ‘ s IP.
  • Bueno, tal vez el nombre y la dirección del servidor CentOS se ingresen en el sistema DNS (o cualquier servicio de nombres que esté en uso).
  • En el sistema CentOS, bind y bind-utils no se instalaron. Así que ‘ estoy realmente confundido.
  • @TheOne Ubuntu trata hostname de manera diferente a los sistemas basados en RH. div id = «e7109f2f93»>

en el archivo/etc/hostsy verifique..nota, es127.0.1.1, no127.0.0.1(que puede conservar de todos modos solo para localhost, como127.0.0.0/8es un bloque de bucle invertido, puede usar cualquier dirección aunque algunos sistemas tienen direcciones restringidas predefinidas)

  • @heemayl Entonces, al poner 127.0.1.1 ubuntu14-graphite en / etc / hosts y luego verificar la IP, no ‘ obtuve la IP correcta. Eso no ‘ no tiene sentido, ¿verdad?
  • 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

    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, no hostname -i. Esto no está relacionado con las versiones de hostname, está relacionado con si el nombre de host proporcionado por hostname 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 comando telnet 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.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *