IP, Redes y Direcciones IPv4

Cómo saber la IP de mi servidor Ubuntu: ip a vs hostname -I

Post actualizado el día noviembre 1, 2026 by DeiviSanzPlay

Cuando alguien busca cómo saber la IP de mi servidor Ubuntu, casi siempre acaba en dos comandos: ip a y hostname -I. Los dos funcionan, pero no sirven para lo mismo, y ahí está el problema. He visto a gente copiar la dirección de la interfaz docker0 o de una br- de un contenedor y preguntarse por qué el SSH no conecta desde su portátil. La respuesta corta: hostname -I gana en el 90% de los casos cotidianos, y ip a solo debería sacarse cuando algo no cuadra.

Qué devuelve cada uno y por qué se lían

hostname -I imprime las direcciones IPv4 asignadas al host, separadas por espacios, en una sola línea. Sin colores, sin cabeceras, sin interfaces virtuales ruidosas en la mayoría de configuraciones de Ubuntu Server recientes. Es lo que pegas en tu cliente SSH o en un navegador cuando quieres entrar al panel de administración.

ip a (o ip addr show) muestra el árbol completo: lo, eth0, ens33, wlan0, docker0, bridges de libvirt, túneles de VPN, direcciones IPv6 con scope link. Es información valiosa si estás depurando, pero como respuesta a «cómo saber la IP de mi servidor Ubuntu» es demasiado. Nadie necesita ver inet6 fe80::… para conectarse por SSH.

El detalle que rompe la balanza: en un servidor con Docker instalado, ip a te escupe varias IPs privadas y tú tienes que decidir cuál es «la buena». hostname -I también puede listar la del bridge si el orden de interfaces lo permite, pero es mucho más fácil de leer. En máquinas virtuales con DHCP, además, hostname -I refleja la IP que el kernel considera asignada al hostname, que es justo la que resuelve la red local.

Un caso real que me pasó con una VM de VirtualBox

Tenía un Ubuntu Server 22.04 en VirtualBox con adaptador en modo NAT. Ejecuté ip a y vi 10.0.2.15 en enp0s3. Perfecto, pensé, y me puse a configurar un reenvío de puertos… mal. Esa IP es interna de VirtualBox y no es accesible desde el host sin reglas NAT. hostname -I me devolvía exactamente lo mismo, así que ninguno de los dos comandos «miente»: el problema era el modo de red, no el comando. Cambié el adaptador a «Adaptador puente» y entonces sí apareció una IP del rango de mi router, alcanzable desde el portátil.

Moraleja: saber la IP de tu servidor Ubuntu con estos comandos no te dice si esa IP es enrutable desde donde estás. Para eso necesitas comprobar desde otra máquina con ping o un ssh directo. Los comandos locales solo te dan la verdad del servidor, no la de tu red.

Cuándo ip a sí es imprescindible

Hay escenarios donde hostname -I se queda corto y no es culpa suya:

  • Necesitas la IP de una interfaz que no está asociada al hostname, como una segunda tarjeta de red para un servicio concreto.
  • Quieres ver la máscara de red y el estado de la interfaz (UP, LOWER_UP) para saber si el cable está conectado.
  • Estás revisando IPv6, que hostname -I ignora por defecto en muchas versiones.
  • Depuras por qué un contenedor no arranca: la IP del bridge importa.

En esos casos, ip -4 addr show scope global te ahorra el ruido y te deja solo las IPv4 enrutables. Es el filtro que deberías tener memorizado.

La comparación honesta

Para responder a cómo saber la IP de mi servidor Ubuntu cuando estás delante de una consola y solo quieres conectarte, hostname -I gana por tres razones: una línea, sin interfaces virtuales ruidosas y copiable. ip a gana cuando hay que investigar, porque da contexto. No son alternativas, son niveles distintos de la misma pregunta.

Lo que no funciona en ninguno de los dos: si el servidor está detrás de un NAT doméstico y buscas la IP pública, ambos comandos te darán la privada. Para la pública tienes que consultar desde fuera, con un servicio tipo ifconfig.me o curl a un endpoint externo, y aun así puede devolverte la IP del CGNAT del operador. Tampoco sirven si el servidor no tiene red configurada porque cloud-init falló al arrancar; ahí toca revisar /etc/netplan/.

Documentación oficial de Ubuntu y el manual de iproute2 cubren ambos comandos con detalle; la recomendación de usar hostname -I para consultas rápidas aparece en foros de la comunidad desde hace años, aunque no hay un «estándar» que lo imponga. Es sentido práctico, no doctrina.


Sobre el autor: DeiviSanzPlay — Soy David Sanz, Editor y Responsable de Contenidos. Mi trabajo consiste en revisar, corregir y mejorar los contenidos de este blog para que la información sea clara, útil y esté bien estructurada. Trabajo con diferentes temáticas y verticales, por lo que una parte importante de mi día a día es analizar cada contenido, cuidar la redacción y asegurar que el lector encuentre información de calidad. Me gusta prestar atención a los detalles. Desde una corrección de estilo hasta la organización de un artículo, todo cuenta cuando se trata de crear contenidos que realmente aporten valor y sean fáciles de entender. En este blog encontrarás artículos sobre diferentes temas y sectores. Mi responsabilidad es cuidar y supervisar cada contenido para que mantenga unos estándares de calidad y ofrezca una buena experiencia a quien nos visita. Porque para mí, un buen contenido no consiste únicamente en escribir. También hay que revisar, contrastar, ordenar y pensar en la persona que está al otro lado de la pantalla.

Perfiles verificables: Sitio web

Publicado el 1 de November de 2026. Última revisión: 1 de November de 2026.