|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Бесконечная авторизация. WorldSocket::ReadHeaderHandler() |
Бесконечная авторизация. WorldSocket::ReadHeaderHandler() |
Ставлю чистое ядро, чистую базу тринити 3.3.5а
Запускаю сервер и при подключении висит бесконечная авторизация, а в консоли worldserver'а выпадает вот что: Код WorldSocket::ReadHeaderHandler(): client MyIP sent malformed packet (size: 8, cmd: 1867972646) Ах, да. Запускаю серв на Windows Server 2012 r2. Компилил и на win7 (свой комп) и на удаленном серваке. Изменений не было. Что еще делал? 1) Компилил с разными версиями OpenSSL, boost (где-то за бугром вычитал, что могут быть проблемы с библиотеками). 2) Добавил правила для портов 3724 и 8085 - на 2ip.ru и тут показывает, что порты открыты. 2.1) Пробовал вырубать брандмауэр, добавлять возможность подключения через любой порт и т.д. 3) Добавлял правила для authservera и worldservera 4) Указывал другие порты 5) Узнавал у хостинг-провайдера - порты с их стороны не блокированы. Ограничений нет. 6) Даже менял хостинг в надежде, что провайдер шалит 7) Такая же проблема с подключением другого человека 8) Смена клиента не решает проблему 9) На локалке запускается и коннектится без проблем, следовательно проблема только при удаленном подключении - либо бьются пакеты данных, либо другая неведомая хрень. 10) Предположил, что может быть кто-то как-то накосячил в ядре - ставил ГОТОВУЮ сборку. Без изменений. 11) Пытался проверить подключение через telnet - подключение через порт 3724 без проблем. Однако же при подключении через 8085 выдает что-то с чем-то (явно проблема с кодировкой), но что именно выдает - не знаю. Скрин 12) netstat -a при запущенных authserver и worldserver показывает, что соединение через порт 8085 ESTABLISHED, т.е. все норм. Но 3724 порта не вижу, только разве что 0.0.0.0:3724 LISTENING 13) Вычитал, что якобы кто-то или что-то может юзать порт 8085 и при запуске сервера получается такая вот беда. Проверил через netstat и ни одно приложение не юзает 8085. Бьюсь уже пару дней. Внятной инфы нигде вообще нет. Подскажите мне, пожалуйста) или я дебил, или лыжи не едут? |
r0m1ntik, разве? Чистое ядро, чистая база тринити, еще раз по новой скачал, скомпилил. И все равно. Допустим, если это так, то почему ГОТОВАЯ сборка, опубликованная несколько лет назад, скачанная с этого же портала, работает у кучи людей без проблем, а у меня такая же ошибка, как и с чистой свежей триней? Как-то все странно...
Добавлено (28.12.2018, 09:05) |
есть подозрение, что вы вынесли свой репак с локальной машины куда-то еще, и не внесли данные в бд auth в таблицу realmlist, а именно локальные и общий ip адреса.
Ну и в конфигах где bindIP так же не выставили нули, а какой-то другой адрес, например тот же 127.0.0.1
Сообщение # 4 написано 28.12.2018 в 12:48
|
kvipka, все по дефолту делал, как и раньше. Конфиги чистые, там кроме логина и пароля от базы ничего не менял. BindIP как и положено 4 нуля. И, конечно же, в базе auth в таблице realmlist все как и положено - в address указан внешний айпи, localAddress - 127.0.0.1, никаких левых ненужных флагов не указано, версия игры указана верно - 12340, как и в клиенте.
Сообщение # 6 написано 28.12.2018 в 19:06
|
Код WorldSocket::ReadHeaderHandler(): client MyIP sent malformed packet (size: 8, cmd: 1867972646) исключает 2) Добавил правила для портов 3724 и 8085 - на 2ip.ru и тут показывает, что порты открыты. 2.1) Пробовал вырубать брандмауэр, добавлять возможность подключения через любой порт и т.д. 3) Добавлял правила для authservera и worldservera 4) Указывал другие порты 5) Узнавал у хостинг-провайдера - порты с их стороны не блокированы. Ограничений нет. 9) На локалке запускается и коннектится без проблем, следовательно проблема только при удаленном подключении - либо бьются пакеты данных, либо другая неведомая хрень. Скорее всего так. 12) netstat -a при запущенных authserver и worldserver показывает, что соединение через порт 8085 ESTABLISHED, т.е. все норм. Но 3724 порта не вижу, только разве что 0.0.0.0:3724 LISTENING Насколько я помню, authserver сохраняет соединение только на время аутентификации клиента, так что отсутствие установленного соединения на момент Вашей проверки вероятнее всего норма. Вот что еще заметил: снова пробил netstat -a и заметил, что порта 8085 нет. Во время подключения клиента и в момент зависания авторизации в netstat по адресу и порту 8085 висит FIN_WAIT_2, что означает "ожидание запроса на закрытие соединения со стороны чужой программы TCP". Установленного соединения нет. В чем все-таки проблема?? TCP является протоколом с контролем доставки пакетов. Это означает, что имплементация проверяет целостность и очередность каждого полученного пакета, прежде чем передать его на обработку приложению. Алгоритм вычисления контрольной суммы там слабый, так что ложноотрицательный результат проверки возможен, но едва ли в 100% случаев, соответственно, соединение скорее всего будет рваться на транспортном уровне в случае большой доли повреждений в трафике. Вам нужно однозначно определить, в какой момент и при каких обстоятельствах оно рвется. Рекомендую журналировать весь трафик, проходящий через 3724 и 8085 порты на серверной машине, Wireshark'ом или каким-нибудь другим пакетным сниффером. Вероятнее всего проблема в сети/ее имплементации на серверной системе. |
p620, Wireshark'ом журналировал трафик через 3724 и 8085, ничего явного не заметил. Возможно, у меня проблема с интерпретации данных надо углубиться в эту тему...
Психанув и решив, что проблема может исходить из операционной системы, я установил на VDS другую ОС Debian 9 и сделал все по новой, согласно стандартному гайду trinity. Ничего ЛИШНЕГО я не делал. И все равно та же самая проблема. Как такое возможно? Разные ОС, разные VDS, разные действия и... одно и то же. Написал напрямую на гитхабе у трини, меня заверили, что проблема в конфигурации, а не в самой тринити и закрыли тему, даже не спросив что и как. Но что может быть не так? Куда смотреть? Я в тупике! Я уже не впервые ставлю сервер на VDS, но с такой проблемой сталкиваюсь впервые.
Сообщение # 8 написано 30.12.2018 в 11:00
|
Определенно. Если Вы захватывали и входящий, и исходящий трафик - загрузите журнал куда-нибудь на Pastebin, например, и опубликуйте ссылку здесь. |
Вопрос решен, тему можно закрывать. Проблема была на стороне хостинга - то ли что-то с их стороны получало доступ по порту 8085, то ли они частично "валили" пакеты каким-то образом. С их стороны ответ был весьма расплывчатый. Но после очередного моего запроса проблему решили. Спасибо всем, кто откликнулся.
Сообщение # 10 написано 01.01.2019 в 12:59
|
| |||
| |||