Ошибка MyChat Server #70010: не удаётся занять внутренний TCP-порт Node MyChat Server
Ошибка
Ошибка #70010: не удаётся занять внутренний TCP-порт Node MyChat Server
Описание ошибки
Кроме основного порта чата, MyChat Server использует внутренний управляющий TCP-порт (по умолчанию 2015) для связи со встроенным WEB-сервером NodeJS. Этот порт слушается только локально, на адресе 127.0.0.1. Если он занят, сервер не стартует и показывает эту ошибку:
Cannot bind 2015 TCP port (port is busy)
Решение проблемы
Возможные варианты, почему так происходит. :
- порт 2015 занят другой программой на этом же компьютере;
- осталась зависшая копия mcserv.exe или его дочернего процесса Node;
- порт попал в зарезервированный системой диапазон.
Этот порт нужен только самому серверу. Клиентам он не требуется, и в брандмауэре его открывать не нужно.
Как узнать, какая программа заняла порт?
Командная строка от имени администратора: Win+X, "Терминал Windows (Администратор). Выполните:
netstat -ano | findstr :2015
Реальный пример, на компьютере с Windows запущен wsl с докер-образом сервера MyChat:
TCP 127.0.0.1:2015 0.0.0.0:0 LISTENING 6140
По PID из последнего столбца найдите процесс в "Диспетчере задач":

- Решение 1 — освободить порт
Закройте программу, занявшую порт 2015, либо завершите зависший процесс mcserv.exe (и его дочерний node), после чего запустите сервер снова.
- Решение 2 — указать другой внутренний порт
Задайте свободный порт ключом командной строки, например:
mcserv.exe /NODEINTERNALPORT=2016
Важно: этот ключ действует только на текущий запуск и не сохраняется в настройках. Чтобы внутренний порт менялся постоянно, добавьте ключ в ярлык или команду запуска сервера (а если MyChat Server работает как служба Windows — в параметры запуска службы).
Ещё посмотреть