¿Qué es localhost? Explicación de 127.0.0.1
localhost es tu propio equipo hablando consigo mismo. Qué significa 127.0.0.1, por qué funciona localhost:3000, la diferencia entre localhost y tu IP local, y errores comunes en Mac.
Si alguna vez has levantado un servidor de desarrollo, has escrito localhost:3000 en el navegador sin pensar en qué es localhost en realidad. Es una de las palabras más usadas en desarrollo y una de las menos explicadas.
localhost es tu equipo hablando consigo mismo
localhost es un nombre de host que siempre se refiere al equipo actual. Cuando te conectas a localhost, el tráfico nunca sale de tu equipo: vuelve hacia dentro en lugar de salir a la red. Por eso se le llama interfaz de bucle invertido (loopback).
Así que localhost:3000 significa: “conéctate a un programa que escucha en el puerto 3000, aquí mismo, en este mismo equipo”.
localhost vs. 127.0.0.1
localhost es un nombre. 127.0.0.1 es la dirección IP a la que apunta ese nombre. Son dos etiquetas para lo mismo:
127.0.0.1es la dirección de loopback de IPv4.::1es la dirección de loopback de IPv6.localhostresuelve a una de esas (en un Mac, el archivo/etc/hostshace la asignación).
De hecho, todo el bloque 127.0.0.0/8 (desde 127.0.0.1 hasta 127.255.255.255) está reservado para loopback. 127.0.0.1 es simplemente el habitual que todo el mundo usa.
La mayoría de las veces localhost y 127.0.0.1 son intercambiables. La única diferencia práctica: en algunas configuraciones localhost puede resolver primero a la IPv6 ::1, lo que de vez en cuando hace que un servidor de desarrollo vinculado solo a la IPv4 127.0.0.1 parezca “inalcanzable” aunque esté funcionando. Si localhost:3000 falla pero 127.0.0.1:3000 funciona, esa discrepancia suele ser el motivo.
localhost vs. tu IP de red local
Tu Mac tiene más de una dirección:
127.0.0.1(localhost): solo alcanzable desde el propio Mac. Nada más en tu red puede conectarse a ella.192.168.x.x(tu IP local): tu dirección en la red local. Otros dispositivos —tu teléfono, otro portátil— pueden alcanzar esta.
Esta distinción importa constantemente en desarrollo. Un servidor de desarrollo vinculado a 127.0.0.1 es privado de tu Mac. Para probarlo desde el teléfono, tienes que vincularlo a 0.0.0.0 (todas las interfaces) y conectarte a la IP local de tu Mac.
Por qué a veces localhost:3000 rechaza la conexión
Las causas más comunes de que una URL localhost falle:
- Nada está escuchando en ese puerto. El servidor se cayó o nunca arrancó. Compruébalo con
lsof -i :3000. - El servidor está en otro puerto. Imprimió
4000, no3000. - Está vinculado a la interfaz equivocada. Vinculado a
127.0.0.1pero lo llamas desde otro dispositivo, o vinculado solo a IPv6. - El puerto lo ocupa otra cosa. Otro proceso tomó el 3000 primero; consulta puerto en uso en Mac.
Confirma qué está escuchando realmente:
lsof -i :3000 -n -P
Si eso no devuelve nada, ningún programa ocupa el puerto, y “conexión rechazada” es lo esperado.
localhost y los puertos van juntos
localhost por sí solo no hace nada: siempre lo combinas con un puerto, porque la dirección de loopback aún necesita saber a qué programa llegar. Ese es todo el sentido de los puertos: una dirección, muchos servicios, ordenados por número.
Ve qué está escuchando en localhost
Portie muestra cada programa que escucha en tu Mac, incluido todo lo vinculado a 127.0.0.1, en una sola tabla en vivo. Puedes ver el puerto, el proceso y si está vinculado solo a localhost o expuesto a toda la red, actualizado cada 3 segundos.
El monitoreo local es gratuito. El desbloqueo de $8.99 (pago único) agrega el control de procesos con un clic y el escaneo remoto. Descarga Portie y deja de adivinar por qué localhost no conecta.