Решение ошибки Metin2 «Ошибка привязки сокета»
При запуске ПВП серверов Metin2 каналы (СН) не открываются, входы в игру остаются закрытыми и файлы syserr.txt в директориях ядра удаляются. «SocketBindBind: привязка: адрес уже используется» или «SYSTEM_CMD: socket_bind: Ошибка» Если вы видите предупреждения, на вашем сервере произошел конфликт портов. В этом руководстве вы узнаете причины и точные решения этой проблемы.
1. Какова основная причина проблемы?
Каждый игровой канал (Auth, CH1, CH2, Game99 и т. д.) занимает определенный номер порта (например: 13000, 13001) в операционной системе FreeBSD, чтобы принимать подключения внешних игроков. Если ваши игровые файлы попытаются повторно открыть порт, который **уже открыт и используется** в системе, это выдаст ошибку «Socket Bind Failed» и этот канал закроется.
Способ 2: закрытие MySQL или игровых процессов в фоновом режиме
Наиболее распространенной причиной этой ошибки является многократный перезапуск сервера без его полного выключения. Новая команда запуска выдает ошибку, поскольку старые игровые процессы, работающие в фоновом режиме, не закрывают порты. Для решения:
- Подключитесь к терминалу Putty и введите следующую команду, чтобы просмотреть все игровые процессы, активные в фоновом режиме:
ps ax | grep game - Если вы все еще видите в списке работающие игровые каналы, полностью закройте их одной командой:
killall -9 gameилиkillall -9 db - Убедившись, что процессы полностью закрылись, попробуйте запустить игру еще раз.
Способ 3. Исправление конфликтов портов в файлах CONFIG
Если вы получаете эту ошибку при первом запуске даже после чистой перезагрузки сервера, значит номера портов в ваших файлах конфликтуют друг с другом:
- Подключитесь к вашему серверу с помощью Filezilla
/usr/game/cores/Перейти в каталог. - Соответственно
auth,channel1,channel2Иgame99в папках КОНФИГ Откройте файлы один за другим. - в каждом файле ПОРТ Проверьте значение. Например; Если порт аутентификации равен 13000, порт Channel1 должен быть 13010, порт Channel2 должен быть 13020.
- Убедитесь, что **один и тот же номер порта** не записан в файле CONFIG в двух разных папках. Если то же самое, присвойте ему уникальный номер порта и сохраните файл.
Способ 4. Обнаружение приложения с использованием конфликтующего лимита и порта
Помимо файлов игры, ваш игровой порт может занимать внешний скрипт, веб-панель или защитное программное обеспечение (Guard), установленное вами на сервере. Чтобы узнать, какое приложение использует порт:
- Перечислите активные порты и службы, выполнив следующую команду в терминале Putty:
sockstat -4 -l - В появившемся списке найдите неоткрытый номер порта вашей игры и изучите название приложения (Process ID/Name) слева. Вы можете решить проблему, остановив конфликтующую внешнюю службу.
Эта статья специально подготовлена для PvPServer.