Ошибка «Failed to bind to port» в консоли: почему порт занят и как его освободить
Введение: порт занят — сервер не стартует
Ошибка «java.net.BindException: Address already in use: bind» появляется при запуске сервера, когда порт 25565 уже занят другой программой или предыдущим экземпляром сервера. Сервер просто не запускается. В этом гайде — как найти и убить процесс, занявший порт, и как предотвратить эту ошибку.
Причина 1: Предыдущий экземпляр сервера не завершён
Вы закрыли консольное окно (нажали крестик), но процесс Java остался в памяти. Порт всё ещё занят.
Решение (Windows):
- Откройте Диспетчер задач (Ctrl+Shift+Esc).
- Вкладка «Подробности» → найдите java.exe или javaw.exe → «Снять задачу».
- Запустите сервер снова.
Решение (Linux):
ps aux | grep java— найти процесс.kill -9 PID— убить процесс.
Причина 2: Другая программа заняла порт
Некоторые программы используют порт 25565 (редко, но бывает).
Диагностика: netstat -ano | findstr :25565 (Windows) — покажет PID процесса, который слушает порт.
Решение: Завершите этот процесс или смените порт сервера в server.properties: server-port=25566.
Причина 3: Порт в состоянии TIME_WAIT
После остановки сервера ОС удерживает порт 30-120 секунд. При быстром перезапуске возникает ошибка.
Решение: Подождите 60-120 секунд перед повторным запуском. Или используйте скрипт с авто-перезапуском, который сам ждёт 10 секунд.
💡 Совет профи
Создайте скриптstart.batс принудительным освобождением порта:FOR /F "tokens=5" %%P IN ('netstat -ano ^| findstr :25565 ^| findstr LISTENING') DO taskkill /F /PID %%P. Этот скрипт перед запуском сервера проверяет, занят ли порт, и убивает процесс, который его слушает.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!