Разработчикам
Порт уже занят на Mac
Слушать порт TCP на одном адресе может только один процесс. Второй сервер тогда завершается с ошибкой «address already in use».
Симптомы
- Dev-сервер завершается с ошибкой «EADDRINUSE» или «address already in use».
- Docker не может опубликовать порт: «port is already allocated».
- Порт был свободен до сбоя или перезапуска редактора.
Вероятные причины
- Старая копия вашего сервера. Сервер от прошлого запуска всё ещё работает в фоне.
- Другое приложение. Тот же порт использует другое приложение. В macOS 12 и новее ресивер AirPlay занимает порты 5000 и 7000.
- Контейнер. Запущенный контейнер публикует на Mac тот же порт.
Как проверить
Найдите процесс, который слушает порт. Замените 3000 на свой порт.
lsof -nP -iTCP:3000 -sTCP:LISTENВывод Процесс указан в столбцах COMMAND и PID.
Чтобы увидеть процессы других пользователей, выполните ту же команду с sudo.
sudo lsof -nP -iTCP:3000 -sTCP:LISTENНужен пароль администратора.
Покажите подробности о процессе.
ps -p 12345 -o pid,commandПоищите контейнеры, которые публикуют этот порт.
docker ps
Как исправить
Если процесс ваш, остановите его в его окне Терминала клавишами Control-C.
Иначе отправьте ему сигнал завершения. Используйте его PID.
kill 12345Если он не останавливается, используйте
kill -9. Процесс не сможет сохранить данные.Если процесс принадлежит macOS, не останавливайте его. Выберите для своего сервера другой порт.
Если это порт 5000 или 7000, прочитайте Порт 5000 или 7000 занят на Mac: ресивер AirPlay.
С Kilobat
Выведите открытые сокеты одного процесса.
kilobat destinations --pid 12345Завершите процесс по PID. Добавляйте
--force, только если он не останавливается.kilobat quit 12345
Вопросы
Почему lsof ничего не показывает, хотя порт занят?
lsof показывает только процессы, которые вам доступны для просмотра. Чтобы увидеть все процессы, запустите его с sudo.
Что делают -n и -P?
Они не дают lsof превращать адреса в имена, а порты — в названия служб. Вывод появляется быстрее и показывает числа.
Источники
- lsof(8), man-страница из macOS 27.2
- kill(1) и ps(1), man-страницы из macOS 27.2
- Поддержка Apple: TCP- и UDP-порты, используемые программными продуктами Apple
Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой man <name> в Терминале.