Linux / Red / Cómo consultar la dirección IP local, de origen y pública
En Linux, ip address muestra las direcciones IP (Internet Protocol, protocolo de Internet) configuradas en las interfaces. Para conocer el origen seleccionado hacia un destino concreto, consulte src en ip route get DESTINO. La dirección visible desde Internet puede ser distinta debido a NAT (traducción de direcciones de red), un proxy o una VPN (red privada virtual).
ip -brief address
ip route get 1.1.1.1
Un mismo servidor puede tener varias direcciones al mismo tiempo, como loopback, IPv4 privada, IPv4 pública, IPv6 link-local y IPv6 global. Por lo tanto, cuál es “mi IP” depende de con qué red se quiera comunicar.
Cómo verificar la dirección IP rápidamente
Ver todas las interfaces de forma simple
ip -brief address
-brief muestra el nombre de la interfaz, estado y dirección en una sola línea. lo es la interfaz loopback que comunica consigo mismo, y 127.0.0.1 y ::1 no son direcciones para acceder desde dispositivos externos.
Ver solo direcciones IPv4
ip -4 address show
Para mostrar solo direcciones IPv4 con alcance global, utilice el siguiente comando. En Linux, ese alcance también puede incluir direcciones privadas: no significa que la dirección sea pública ni que resulte accesible desde Internet.
ip -4 address show scope global
Ver solo direcciones IPv6
ip -6 address show
En IPv6, se pueden mostrar conjuntamente direcciones scope link, que solo son válidas dentro del enlace, y direcciones scope global, que se usan en un rango más amplio. Como también puede haber varias direcciones de privacidad temporales, verifique conjuntamente propiedades como scope, temporary y dynamic.
Cómo leer la salida del comando ip address
ip address show muestra detalladamente la interfaz de red y las direcciones de protocolo asociadas a esa interfaz. La sintaxis del comando y las propiedades de la dirección se pueden consultar en el manual de ip-address.
ip address show
| Elementos mostrados | Significado | Aspectos a verificar |
|---|---|---|
UP |
La interfaz está activada administrativamente | No significa que la comunicación con el enlace real sea correcta. |
LOWER_UP |
El enlace de la capa inferior del dispositivo está operativo | Es una pista para juzgar el estado del cable o del enlace virtual. |
inet |
Dirección IPv4 y longitud del prefijo | Se muestra como 192.0.2.10/24. |
inet6 |
Dirección IPv6 y longitud del prefijo | Se deben distinguir las direcciones locales del enlace y las globales. |
scope |
Rango de validez de la dirección | Existen host, link, global, etc. |
valid_lft |
Vida útil de la dirección | Las direcciones dinámicas pueden cambiarse o eliminarse con el tiempo. |
Verificar una interfaz de red específica
Buscar el nombre de la interfaz
ip -brief link
Dependiendo del entorno, los nombres pueden ser diferentes, como eth0, ens3, enp1s0, wlan0. No suponga un nombre específico en documentos o scripts, primero verifique la lista en el sistema real.
Ver la dirección de la interfaz seleccionada
ip address show dev ens3
ens3 es un ejemplo. Use el nombre real de la interfaz. Si solo necesita la dirección global IPv4, puede especificar la condición junto con ella.
ip -4 address show dev ens3 scope global
Verificar la IP que se utilizará para la comunicación externa real
Verificar src en la consulta de ruta
Si hay varias direcciones, la interfaz seleccionada y la dirección de origen pueden variar según el destino. Consulte la decisión de enrutamiento para un destino específico con ip route get.
ip route get 1.1.1.1
En la salida, dev es la interfaz a utilizar, via es la siguiente puerta de enlace, y src es la dirección de origen seleccionada por el kernel. Este comando consulta la tabla de enrutamiento y no garantiza que la conexión con el servidor destino y la aplicación sea exitosa. Puede consultar la sintaxis detallada en el manual de ip-route.
Verificar la puerta de enlace predeterminada
ip route show default
Si hay varias rutas predeterminadas, la ruta real puede variar según la métrica, las reglas de enrutamiento por políticas y el destino. Por eso se recomienda verificar también el resultado de ip route get.
Verificar la ruta IPv6
ip -6 route get 2606:4700:4700::1111
Tener una dirección IPv6 no garantiza conectividad. También deben funcionar el enrutamiento, el firewall y el servicio de destino. DNS (sistema de nombres de dominio) debe resolver correctamente cuando se utiliza un nombre; una conexión mediante dirección literal no necesita esa resolución.
Verificación sencilla con hostname -I
En algunas distribuciones de Linux, con el siguiente comando se pueden mostrar las direcciones configuradas en el host separadas por espacios.
hostname -I
Es corto y conveniente, pero no muestra el nombre de la interfaz, la longitud del prefijo, el rango de direcciones ni la ruta seleccionada. Para determinar cuál de varias direcciones se utiliza realmente en la comunicación, use ip address y ip route get.
hostname -i muestra el resultado de la resolución de nombres, por lo que se ve afectado por /etc/hosts o la configuración de DNS, y es diferente de consultar las direcciones configuradas directamente en la interfaz. Es importante no confundir opciones similares.
Distinguir entre IP privada y pública
Dirección de interfaz local
La dirección que muestra ip address es la configurada en la interfaz del espacio de nombres de red de Linux correspondiente. Si está detrás de un enrutador doméstico o NAT de la nube, puede ver direcciones IPv4 privadas en el rango 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.
Dirección visible en Internet
Al pasar por NAT, los servicios externos pueden ver la IP pública del enrutador, pasarela en la nube, VPN o proxy. Esta dirección no se puede determinar únicamente con comandos locales, y la forma más clara de verificarla es mediante equipos de red o la interfaz de administración de la nube.
También se pueden usar servicios web para verificar la IP externa, pero la hora de la solicitud y la dirección de origen se transmitirán a dicho servicio. Elija un servicio confiable y tenga en cuenta la dependencia de la automatización, la distinción entre IPv4 e IPv6 y la posibilidad de fallos.
La apertura de puertos es un asunto aparte
Saber la IP pública no significa que el servicio del servidor sea accesible desde Internet. Debe verificar la redirección de puertos NAT, los grupos de seguridad en la nube, el firewall del host y la dirección y puerto de recepción del servicio.
ss -lntup
Puede que se requieran privilegios de administrador para consultar la información del proceso. Antes de exponer el servicio al exterior, revise la autenticación, el cifrado, el estado de actualizaciones y el alcance mínimo permitido.
Manejo de direcciones IP en scripts
Uso de salida JSON
Para automatizar, la salida JSON (JavaScript Object Notation, un formato estructurado de intercambio de datos) de ip evita depender de columnas de texto. Aun así, debe contemplar varias interfaces, varias direcciones y campos opcionales.
ip -j -4 address show scope global
El parser JSON debe recorrer la interfaz y el arreglo addr_info, y manejar la posible existencia de múltiples direcciones. Según la versión ip, los campos de salida pueden variar, así que verifíquelo en la distribución objetivo.
No seleccionar una única dirección de forma obligatoria
En entornos con servidores multihome, VPN, contenedores o direcciones IPv6 temporales, no hay garantía de que la "primera dirección" sea la que necesita la aplicación. Seleccione después de aclarar el destino, la familia de direcciones, la interfaz y las condiciones de alcance.
Contenedores y espacios de nombres de red
Al ejecutar ip address dentro de un contenedor, generalmente se mostrará la dirección del espacio de nombres de red de ese contenedor. Puede ser diferente de la dirección de la interfaz del host o de la dirección NAT externa.
El host, los contenedores, los Pods de Kubernetes, los servicios, los ingress y los balanceadores de carga externos pueden tener direcciones diferentes. Al diagnosticar fallos, registre desde qué espacio de nombres se ejecutó el comando y distinga cada capa de la ruta de comunicación.
¿Se puede usar ifconfig?
ifconfig aparece con frecuencia en documentación antigua, pero en distribuciones recientes de Linux puede no estar instalado por defecto y no puede representar todas las funciones modernas de red. En nuevos documentos y scripts, es recomendable utilizar primero ip address, ip link y ip route de iproute2.
Si los procedimientos operativos existentes dependen de ifconfig, en lugar de eliminarlo inmediatamente, verifique primero las diferencias de salida y comportamiento y luego realice la transición de manera gradual.
Preguntas frecuentes
¿127.0.0.1 es la IP del servidor?
Es la dirección de bucle local IPv4 que apunta al propio servidor. No se puede acceder al servidor con esta dirección desde otros dispositivos de la misma red.
Si aparecen varias direcciones, ¿cuál debo usar?
Depende del destino y del tipo de comunicación. Para una red privada, seleccione la dirección adecuada de esa interfaz y compruebe las rutas. Para un destino concreto, lea src en ip route get DESTINO; esta consulta calcula la ruta sin enviar paquetes y no prueba por sí sola que el servicio responda.
¿Por qué no se ve una IP pública en "ip address"?
El servidor puede estar detrás de NAT, un balanceador de carga, una VPN o un proxy. Compruebe el mapeo de direcciones en el equipo de red o en la consola de la nube.
¿Se puede acceder por SSH solo con la dirección IP?
No. El servidor SSH debe estar escuchando en la dirección y puerto correctos, el enrutamiento, NAT, firewall y grupos de seguridad deben permitir la conexión, y también se necesita un método de autenticación válido.




