Вирішення помилки Metin2 «Помилка зв’язування сокета».
При запуску серверів Metin2 PVP канали (CH) не відкриваються, входи в гру залишаються закритими, а файли syserr.txt в директоріях ядра видаляються. "SocketBindBind: bind: адреса вже використовується" або "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в папках КОНФІГ Відкривайте файли по одному. - у кожному файлі ПОРТ Перевірте значення. наприклад; Якщо порт Auth має значення 13000, порт Channel1 має бути 13010, порт Channel2 має бути 13020.
- Переконайтеся, що **однаковий номер порту** не записаний у файлі CONFIG у двох різних папках. Якщо той самий, дайте йому унікальний номер порту та збережіть файл.
Спосіб 4: Виявлення програми за допомогою конфліктуючого ліміту та порту
Окрім ваших файлів гри, зовнішній сценарій, веб-панель або програмне забезпечення захисту (Guard), яке ви встановили на сервері, може займати ваш ігровий порт. Щоб дізнатися, яка програма використовує порт:
- Перелічіть активні порти та служби, виконавши таку команду в терміналі Putty:
sockstat -4 -l - У списку, що з’явиться, знайдіть номер невідкритого порту вашої гри та вивчіть назву програми (Process ID / Name) ліворуч. Ви можете вирішити проблему, зупинивши конфліктну зовнішню службу.
Ця стаття спеціально підготовлена для PvPServer.