← Volver al Blog

Cómo ver qué app está usando un puerto en tu Mac

macOS no te dice qué app tiene ocupado un puerto. Aquí te mostramos cómo averiguarlo con lsof y una herramienta visual.

Inicias un servidor y falla con “address already in use.” Necesitas saber qué app está usando ese puerto en tu Mac, pero macOS no te da ninguna pista. No aparece ningún aviso, no hay ningún indicador en Finder, no existe ninguna entrada en Configuración del Sistema. La respuesta vive en la capa del kernel de Unix, y tienes que pedirla directamente.

Por qué macOS no te lo dice

Finder y Configuración del Sistema no tienen concepto de puertos abiertos. Exponen archivos, volúmenes y preferencias, pero el estado de los sockets de red lo maneja el kernel. Para ver qué proceso tiene un puerto enlazado, necesitas Terminal o una herramienta que consulte el kernel directamente.

Encuentra el proceso con lsof

lsof (list open files) trata los sockets de red como archivos, por lo que puede decirte exactamente qué proceso tiene un puerto ocupado.

Búsqueda de un puerto específico:

lsof -i :8080

Ejemplo de salida:

COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby     1234  aaron   12u  IPv6 0x...            0t0  TCP *:http-alt (LISTEN)

Qué significa cada columna:

  • COMMAND: el nombre del proceso
  • PID: el identificador del proceso, que puedes usar con kill
  • USER: la cuenta de usuario propietaria del proceso
  • FD: tipo de descriptor de archivo (12u significa descriptor 12, abierto para lectura/escritura)
  • TYPE: IPv4 o IPv6
  • NODE: TCP o UDP
  • NAME: la dirección y el puerto, más el estado del socket entre paréntesis

Ver todos los puertos en escucha a la vez:

sudo lsof -iTCP -sTCP:LISTEN -n -P

Esto lista todos los procesos con un listener TCP abierto. El flag -n omite las búsquedas de DNS para que sea más rápido. El flag -P muestra números de puerto en lugar de nombres de servicio. Útil cuando no sabes qué puerto está causando el conflicto.

Alternativa con netstat:

netstat -an | grep LISTEN

Esto muestra los sockets en escucha, pero en macOS netstat no incluye el nombre del proceso ni el PID en su salida. Verás la dirección y el puerto, pero igual necesitarás lsof para relacionarlo con un proceso específico.

Antes de terminar cualquier proceso: confirma el nombre del proceso en la salida de lsof antes de ejecutar kill -9 <PID>. Un error tipográfico o un PID incorrecto puede terminar una base de datos, un servicio de sincronización en segundo plano, o cualquier otra cosa. La pérdida de datos es posible si un proceso está escribiendo en disco cuando se le envía la señal.

Algunos puertos pertenecen a macOS

No todos los puertos ocupados son tuyos para reclamar. Algunos están reservados por el sistema operativo:

  • Puertos 5000 y 7000: usados por AirPlay Receiver en macOS Monterey y versiones posteriores. El proceso es ControlCenter. Si AirPlay Receiver está activado en Configuración del Sistema, estos puertos siempre están enlazados.
  • Puerto 5353: mDNS (Bonjour), usado para el descubrimiento de servicios en la red local. El proceso es generalmente mDNSResponder.

Si lsof muestra un proceso del sistema como ControlCenter o mDNSResponder, déjalo en paz. Si el puerto 5000 está bloqueando tu app de Flask, desactiva AirPlay Receiver en Configuración del Sistema, en General > AirDrop y Handoff.

Ve todos los puertos de un vistazo con Portie

Portie muestra una vista en vivo de todos los puertos abiertos en tu Mac, actualizada automáticamente cada 3 segundos. Puedes alternar entre una lista plana ordenada por número de puerto y una vista agrupada por aplicación, donde cada app es una sección que muestra todos los puertos que tiene abiertos.

Sin flags que recordar. Sin ventana de Terminal que mantener abierta. El monitoreo de puertos locales es gratuito. El desbloqueo de $8.99 (pago único) agrega la posibilidad de terminar un proceso directamente desde la lista, más escaneo de puertos remotos con identificación de servicios si necesitas inspeccionar otras máquinas en tu red.

Cuándo usar cada opción

lsof es la herramienta indicada para una búsqueda rápida y puntual. Conoces el puerto, ejecutas el comando, ves el proceso y listo.

Portie es útil cuando tienes varios servicios corriendo al mismo tiempo y quieres una vista persistente. En lugar de volver a ejecutar lsof cada vez que inicias o detienes algo, obtienes una pantalla en vivo que se actualiza sola. La vista agrupada en particular facilita ver qué puertos pertenecen a una sola app versus cuáles están distribuidos entre diferentes procesos.

Prueba Portie gratis

Ve cada puerto abierto en tu Mac, qué app lo usa y cierra procesos desde la lista.

Descargar gratis