---
title: "«Address already in use» en el Mac: encuentra el proceso que ocupa un puerto · Guías de Kilobat"
url: "https://kilobat.app/es/guides/port-already-in-use.html"
description: "Encuentra con lsof qué proceso escucha en un puerto y detenlo o elige otro puerto, cuando un servidor de desarrollo dice que la dirección ya está en uso."
---

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».

Se aplica a: todas las versiones actuales de macOS. · Revisado: 29 de octubre de 2026

## 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

1. Busca el proceso que escucha en el puerto. Sustituye 3000 por tu puerto.

   ```
   lsof -nP -iTCP:3000 -sTCP:LISTEN
   ```

   Salida Las columnas COMMAND y PID indican el proceso.
2. Para ver procesos de otros usuarios, ejecuta el mismo comando con sudo.

   ```
   sudo lsof -nP -iTCP:3000 -sTCP:LISTEN
   ```

   Requiere una contraseña de administrador.
3. Muestra más información sobre el proceso.

   ```
   ps -p 12345 -o pid,command
   ```
4. Busca contenedores que publiquen el puerto.

   ```
   docker ps
   ```

## Cómo solucionarlo

1. Si el proceso es tuyo, detenlo en su propia ventana de Terminal con Control-C.
2. Si no, envíale la señal de terminación. Usa su PID.

   ```
   kill 12345
   ```
3. Si no se detiene, usa `kill -9`. El proceso no podrá guardar sus datos.
4. Si el proceso pertenece a macOS, no lo detengas. Elige otro puerto para tu servidor.
5. Si el puerto es el 5000 o el 7000, lee [El puerto 5000 o 7000 está en uso en el Mac: Receptor AirPlay](https://kilobat.app/es/guides/airplay-receiver-port-5000.html).

## Con Kilobat

1. Muestra los sockets abiertos de un proceso.

   ```
   kilobat destinations --pid 12345
   ```
2. Cierra un proceso por su PID. Añade `--force` solo 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](https://support.apple.com/en-us/103229)

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.

## Guías relacionadas

- [El puerto 5000 o 7000 está en uso en un Mac: Receptor AirPlay](https://kilobat.app/es/guides/airplay-receiver-port-5000.html): Apple indica los puertos TCP 5000 y 7000 para AirPlay.
- [No se puede acceder a un contenedor Docker desde el Mac](https://kilobat.app/es/guides/docker-container-from-mac.html): Docker en un Mac ejecuta los contenedores en una máquina virtual Linux.
- [Un contenedor no puede acceder a localhost en el Mac](https://kilobat.app/es/guides/localhost-from-container.html): Cada contenedor tiene su propia pila de red.
- [Encontrar qué app usa tu ancho de banda en el Mac](https://kilobat.app/es/guides/which-app-uses-bandwidth.html): Monitor de Actividad y nettop muestran qué procesos envían y reciben datos.
