Cómo ver tu IP pública en Linux (curl, wget, dig)

Your IPv4 Address

ISP:
City:
Country:

Your IPv6 Address

ISP:
City:
Country:
Respuesta rápida

Consulta tu IP pública con un solo comando. En Linux o macOS, ejecuta:

curl -4 ip.getpublicip.com    # public IPv4
curl -6 ip.getpublicip.com    # public IPv6

Cada uno muestra tu IP pública junto con tu proveedor de internet y tu ubicación. El resto de esta guía cubre todas las variantes: wget, dig, forzar IPv4/IPv6, el modo silencioso y cómo encontrar tu IP local. Si tu IP pública no coincide con la dirección WAN de tu router, tu operador usa NAT a nivel de operador (CGNAT), que bloquea las conexiones entrantes.

¿Tu IP está detrás de CGNAT o no deja de cambiar?

Consigue una IPv4 y una IPv6 públicas y dedicadas, que siguen siendo tuyas y aceptan conexiones entrantes, enrutadas hasta tu servidor por un túnel cifrado.

Consigue una IP pública

Cómo ver tu IP pública con curl

curl es la forma más habitual de obtener tu IP pública desde la línea de comandos. Viene incluido en prácticamente todas las distribuciones de Linux.

Uso básico

curl https://api.getpublicip.com/ip

Salida (estructurada, con proveedor de internet y ubicación):

IP Address: 203.0.113.42
ISP: Example ISP
City: Auckland
Country: New Zealand

Para obtener solo la dirección IP, sin metadatos adicionales:

curl -s ifconfig.me

Salida:

203.0.113.42

Forzar IPv4 o IPv6

# Force IPv4
curl -4 ip.getpublicip.com

# Force IPv6
curl -6 ip.getpublicip.com

GetPublicIP también tiene endpoints específicos para cada protocolo:

curl https://ipv4.getpublicip.com/ip    # IPv4 only
curl https://ipv6.getpublicip.com/ip    # IPv6 only

Otros servicios que funcionan con curl

curl ifconfig.me           # plain text IP
curl api.ipify.org         # plain text IP
curl icanhazip.com         # plain text IP
curl ifconfig.co           # plain text IP (also supports JSON)

Todos devuelven tu IP pública como texto plano. Añade -s (modo silencioso) para ocultar la barra de progreso en los scripts.

Cómo ver tu IP pública con wget

wget está disponible en la mayoría de los sistemas Linux y se suele preferir en entornos donde curl no está instalado (instalaciones mínimas antiguas, sistemas embebidos).

Uso básico

wget -qO- https://api.getpublicip.com/ip

La opción -q oculta la salida de progreso. La opción -O- envía el resultado a stdout (la terminal) en lugar de guardarlo en un archivo.

Para obtener solo la dirección IP:

wget -qO- ifconfig.me

Salida:

203.0.113.42

Forzar IPv4 o IPv6

# Force IPv4
wget -4 -qO- ifconfig.me

# Force IPv6
wget -6 -qO- ifconfig.me

Endpoints específicos de GetPublicIP:

wget -qO- https://ipv4.getpublicip.com/ip    # IPv4 only
wget -qO- https://ipv6.getpublicip.com/ip    # IPv6 only

Otros servicios que funcionan con wget

wget -qO- ifconfig.me
wget -qO- api.ipify.org
wget -qO- icanhazip.com
wget -qO- ifconfig.co

Cómo ver tu IP pública con dig o host (método DNS)

Si prefieres no hacer una petición HTTP, puedes consultar tu IP pública por DNS. Este método aprovecha que el servidor DNS conoce la IP desde la que sale tu tráfico.

Con dig (OpenDNS)

dig +short myip.opendns.com @resolver1.opendns.com

Salida:

203.0.113.42

Con dig (Google DNS)

dig TXT +short o-o.myaddr.l.google.com @ns1.google.com

Salida (registro TXT entre comillas):

"203.0.113.42"

Con host

host myip.opendns.com resolver1.opendns.com

Los métodos con dig y host no necesitan una petición HTTP, solo una consulta DNS. Son útiles en entornos restringidos en los que el tráfico HTTP saliente está limitado pero el DNS está permitido.

Forzar IPv4 o IPv6

En las conexiones de doble pila (dual-stack, cuando tu equipo tiene IPv4 e IPv6), el comando por defecto puede devolver cualquiera de las dos direcciones, según tu sistema operativo y el orden de resolución DNS. Usa estas opciones para forzar un protocolo concreto:

HerramientaForzar IPv4Forzar IPv6
curlcurl -4 ip.getpublicip.comcurl -6 ip.getpublicip.com
wgetwget -4 -qO- ifconfig.mewget -6 -qO- ifconfig.me
Endpoint de GetPublicIPcurl https://ipv4.getpublicip.com/ipcurl https://ipv6.getpublicip.com/ip

Los endpoints específicos de GetPublicIP (ipv4. e ipv6.) solo tienen IPv4 o solo IPv6 a nivel de DNS, así que funcionan aunque tu herramienta no admita las opciones -4/-6.

Otros servicios de «cuál es mi IP»

Varios servicios gratuitos te permiten consultar tu IP pública desde la línea de comandos. Aquí tienes una comparación rápida:

ServicioURLModo solo IPv4Modo solo IPv6Formato de salida
GetPublicIPapi.getpublicip.com/ipipv4.getpublicip.com/ipipv6.getpublicip.com/ipEstructurado (IP + operador + ubicación)
ifconfig.meifconfig.meUsa la opción curl -4Usa la opción curl -6IP en texto plano
ipifyapi.ipify.orgapi.ipify.orgapi6.ipify.orgTexto plano (o ?format=json)
icanhazip.comicanhazip.comipv4.icanhazip.comipv6.icanhazip.comIP en texto plano
ifconfig.coifconfig.coUsa la opción curl -4Usa la opción curl -6Texto plano (o JSON con /json)

Todos funcionan tanto con curl como con wget. GetPublicIP devuelve metadatos junto con la IP; los demás devuelven una sola línea con la dirección.

Si necesitas una IP pública permanente y dedicada para alojar tus propios servicios (y no solo comprobar cuál es tu IP actual), consulta nuestra guía para conseguir una IP fija.

Cómo ver tu IP local en Linux

Tu IP local (privada) es la dirección asignada a tu equipo dentro de tu red local (LAN), y no se ve desde internet. Estas son las formas de encontrarla.

Comando rápido de una línea

hostname -I

Muestra una lista separada por espacios de todas las direcciones IP asignadas al equipo (IPv4 e IPv6, en todas las interfaces). Es la forma más rápida de verlo todo de un vistazo.

En detalle: el comando ip (moderno)

ip a

Verás una salida parecida a esta:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:94:37:b7:8a:88 brd ff:ff:ff:ff:ff:ff
    inet 192.168.66.245/24 brd 192.168.66.255 scope global dynamic noprefixroute eno0
       valid_lft 71625sec preferred_lft 71625sec
    inet6 fe80::767e:5882:2cdd:686e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

A la izquierda verás los nombres de las interfaces: lo (loopback) y eno0 (Ethernet). Los adaptadores inalámbricos suelen llamarse wlan0.

  • link/ether: la dirección MAC (identificador de hardware que asigna el fabricante).
  • inet: la dirección IPv4. En este ejemplo, 192.168.66.245.
  • inet6: la dirección IPv6. Las direcciones que empiezan por fe80 son de enlace local (link-local) y no se enrutan fuera de la LAN.

Para mostrar solo las direcciones IPv4 o solo las IPv6:

ip -4 a    # IPv4 only
ip -6 a    # IPv6 only

Sistemas Linux antiguos: ifconfig

Si tu sistema no tiene el comando ip, usa:

ifconfig

Que muestra una información similar:

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)

eno0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.66.245  netmask 255.255.255.0  broadcast 192.168.66.255
        inet6 fe80::767e:5882:2cdd:686e  prefixlen 64  scopeid 0x20<link>
        ether 00:94:37:b7:8a:88  txqueuelen 1000  (Ethernet)

La línea inet es la dirección IPv4. La línea inet6 es la dirección IPv6.

NetworkManager (nmcli)

En los sistemas que usan NetworkManager (la mayoría de las distribuciones de escritorio), también puedes usar:

nmcli device show | grep IP4.ADDRESS

Muestra las direcciones IP agrupadas por interfaz de red (Ethernet, Wi-Fi, VPN, etc.).

Preguntas frecuentes

¿Cómo saber mi IP pública en Linux?

La forma más rápida es ejecutar curl https://api.getpublicip.com/ip o curl ifconfig.me en una terminal. Ambos muestran tu IPv4 pública en la salida estándar (stdout). Para IPv6, usa curl -6 https://ipv6.getpublicip.com/ip. También puedes conseguir lo mismo con wget, dig o host.

¿Cómo veo mi IP pública con curl?

Ejecuta curl https://api.getpublicip.com/ip para ver tu IP pública. Añade -s para activar el modo silencioso (sin barra de progreso). Fuerza IPv4 con curl -4 o IPv6 con curl -6. Otros servicios alternativos son curl ifconfig.me, curl api.ipify.org y curl icanhazip.com.

¿Cómo veo mi IP pública con wget?

Ejecuta wget -qO- https://api.getpublicip.com/ip para mostrar tu IP pública en stdout. La opción -q oculta la salida de progreso y -O- envía el resultado a stdout en lugar de a un archivo. Fuerza IPv4 con wget -4 o IPv6 con wget -6.

¿Cómo fuerzo IPv4 o IPv6 al consultar mi IP?

Tanto curl como wget admiten las opciones -4 (forzar IPv4) y -6 (forzar IPv6). Por ejemplo, curl -4 ip.getpublicip.com siempre devuelve tu dirección IPv4, incluso en una conexión de doble pila, y curl -6 ip.getpublicip.com devuelve tu dirección IPv6. GetPublicIP también ofrece endpoints específicos: ipv4.getpublicip.com e ipv6.getpublicip.com.

¿Qué comando muestra solo mi IP, sin nada más?

curl -s ifconfig.me muestra solo tu IP, sin ninguna salida adicional. Con wget, usa wget -qO- ifconfig.me. Con dig, usa dig +short myip.opendns.com @resolver1.opendns.com. Los tres devuelven una sola línea que contiene únicamente tu IPv4 pública.

¿Cuáles son los mejores servicios para ver mi IP desde la línea de comandos?

Entre los servicios gratuitos más populares están api.getpublicip.com (devuelve la IP con datos del operador y la ubicación), ifconfig.me (IP en texto plano), api.ipify.org (texto plano, admite JSON), icanhazip.com (texto plano) e ifconfig.co (admite JSON y texto plano). Todos funcionan con curl y wget.

¿Cómo veo mi IP pública con dig?

Ejecuta dig +short myip.opendns.com @resolver1.opendns.com para preguntarle a OpenDNS cuál es tu IP pública. También puedes usar dig TXT +short o-o.myaddr.l.google.com @ns1.google.com, el equivalente con Google DNS. El método con dig no necesita una petición HTTP, solo una consulta DNS.

¿Qué diferencia hay entre la IP pública y la IP local en Linux?

Tu IP local (privada) es la dirección asignada a tu equipo en la LAN, normalmente en el rango 192.168.x.x, 10.x.x.x o 172.16-31.x.x. Tu IP pública (externa) es la que ve el resto de internet cuando te conectas. Tu router hace NAT para traducir entre las dos. Usa ip a o hostname -I para ver las IP locales y curl ifconfig.me para ver tu IP pública.

¿Cómo veo todas las IP locales de mi equipo?

Ejecuta hostname -I para obtener una lista rápida, separada por espacios, de todas las IP asignadas. Para ver el detalle interfaz por interfaz, usa ip a (o ip -4 a solo para IPv4 e ip -6 a solo para IPv6). En sistemas antiguos sin el comando ip, usa ifconfig. En sistemas gestionados con NetworkManager, nmcli device show muestra las IP de cada interfaz.

¿Por qué mi router muestra una IP distinta a la de curl ifconfig.me?

Si la IP WAN de tu router no coincide con lo que devuelve curl ifconfig.me, es casi seguro que tu operador usa NAT a nivel de operador (CGNAT). El CGNAT añade una capa extra de NAT entre tu router e internet, y comparte una misma IP pública entre muchos clientes. Esto bloquea las conexiones entrantes y hace imposible alojar tus propios servicios sin buscar otra solución. Consulta nuestra guía completa sobre cómo alojar tus propios servicios detrás de CGNAT para ver las soluciones.

Guías relacionadas

Explora guías y categorías