Desarrolladores
Puerto ya en uso en un Mac
Solo un proceso puede escuchar en un mismo puerto y dirección TCP. Un segundo servidor se detiene entonces con «address already in use».
Síntomas
- Un servidor de desarrollo se detiene con «EADDRINUSE» o «address already in use».
- Docker no puede publicar un puerto porque «port is already allocated».
- El puerto estaba libre antes de un fallo o de reiniciar tu editor.
Causas probables
- Una copia antigua de tu servidor. Un servidor de una ejecución anterior sigue funcionando en segundo plano.
- Otra app. Otra app usa el mismo puerto. En macOS 12 y posterior, Receptor AirPlay usa los puertos 5000 y 7000.
- Un contenedor. Un contenedor en ejecución publica el mismo puerto en el Mac.
Cómo comprobarlo
Busca el proceso que escucha en el puerto. Sustituye 3000 por tu puerto.
lsof -nP -iTCP:3000 -sTCP:LISTENSalida Las columnas COMMAND y PID indican el proceso.
Para ver procesos de otros usuarios, ejecuta el mismo comando con sudo.
sudo lsof -nP -iTCP:3000 -sTCP:LISTENRequiere una contraseña de administrador.
Muestra más información sobre el proceso.
ps -p 12345 -o pid,commandBusca contenedores que publiquen el puerto.
docker ps
Cómo solucionarlo
Si el proceso es tuyo, detenlo en su propia ventana de Terminal con Control-C.
Si no, envíale la señal de terminación. Usa su PID.
kill 12345Si no se detiene, usa
kill -9. El proceso no podrá guardar sus datos.Si el proceso pertenece a macOS, no lo detengas. Elige otro puerto para tu servidor.
Si el puerto es el 5000 o el 7000, lee El puerto 5000 o 7000 está en uso en el Mac: Receptor AirPlay.
Con Kilobat
Muestra los sockets abiertos de un proceso.
kilobat destinations --pid 12345Cierra un proceso por su PID. Añade
--forcesolo si no se detiene.kilobat quit 12345
Preguntas
¿Por qué lsof no muestra nada si el puerto está en uso?
lsof solo muestra los procesos que puedes examinar. Ejecútalo con sudo para ver todos los procesos.
¿Qué hacen -n y -P?
Evitan que lsof convierta las direcciones en nombres y los puertos en nombres de servicio. La salida es más rápida y muestra números.
Fuentes
- lsof(8), página man instalada con macOS 27.2
- kill(1) y ps(1), página man instalada con macOS 27.2
- Soporte técnico de Apple: Puertos TCP y UDP usados por los productos de software de Apple
Fuentes revisadas el 29 de octubre de 2026. Las páginas man son las que se instalan con macOS; abre una con man <name> en Terminal.