Сегодня я хочу предоставить для ознакомления мой новый материал на тему Dproto, я постарался раскрыть все тонкости его работы от А до Я. Впрочем кто читает мои мануалы не первый раз, то вы наверное в курсе, что каждый материал я пытаюсь раскрыть со всех сторон, взять тот же чит или же программу для общения между игроками.
Почему именно о Dproto я решил сделать этот материал?
В последние время на сервере админы начали замечать странный баг, при бане пользователя, в банлист попадал рандомный админ, а не сам игрок. Согласитесь не приятная ситуация, когда админы не могут играть на сервере из-за странного бана. Хорошо, что активный пользователь форума и Серега (JIuXeP ) подсказал, что нужно обновиться до актуальной версии Dproto, так как в старых версиях можно делать подмену SteamID.
Да и сообщение на хостинге где расположен игровой сервер (про него я писал тут) как бы намекает что нужно срочно обновиться:
Сама же DDOS атака с помощью бага в Dproto выглядит так:
А коль уж я начал сам разбираться, то почему бы не поделиться этим опытом с другими админами серверов counter-strike? Тем более под уязвимость попадает каждый сервер, с устаревшей версией proto.
Dproto (полное название Double Protocol) - это плагин для MetaMod с подключаемой библиотекой .dll формата.
Как вы знаете в CS существует два протока 47 (пиратская версия/NoSteam) и 48 версия (Steam), мы с ними сталкивались в материале по воспроизведению демок. Изначально люди без Steam не могут играть в контр, так как у них отсутствует SteamID, а значит и идентифицировать игрока невозможно, а тот же бан часто делают по SteamID, чтобы читера не обходили его.
Зачем он нужен? Для того чтобы игроки с NoSteam могли играть на сервере с лицензированными игроки и был придуман DoubleProtocol. С помощью него можно создать уникальный SteamID по номеру ID жесткого диска.
Думаю любому понятно, что без этого плагина на сервере будут играть только Steam игроки, а значит и онлайн будет намного меньше!
Лучшего аналога, на сегодняшний день не существует.
Поддержка возможна на ОС Windows и Linux
Минимальные требования: - Metamod 1.19 (рекомендуется) или 1.19p32. - пропатченные или чистые VUP engine so/dll.
Актуальная версия на сегодня
Я буду стараться держать всегда свежую версию на сайте, но если вдруг она выйдет раньше чем я замечу, просьба написать об этом в комментариях я обновлю архивы. Это поможет сотням администраторам серверов!
Версия Dproto 0.9.548
Для тех кто и так уже все знает и хочет быстро скачать последнюю версию, вот ссылка она перекинет на раздел скачивания!
Как правильно установить?
Установить dproto можно практически так же как и любой другой плагин, для этого не нужно много времени и каких-то сверхспособностей, но на всякий случай внизу я сделал видео-инструкцию, как говорится лучше один раз увидеть.
3. В папку addons копируем папку "dproto" или же создаем эту папку вручную и в зависимости от ОС сервера, копируем в неё файл:
Linux - dproto.so Windows - dproto.dll
4. Открываем файл addons/metamod/plugins.ini и добавляем в него строку в зависимости от ОС:
Linux:
linux addons/dproto/dproto_i386.so
Windows:
win32 addons\dproto\dproto.dll
5. Заходим в самый корень сервера "/server/cstrike" или просто "/cstrike" в зависимости от вашего сервера. И кидаем туда файл dproto.cfg с настройками (чуть ниже мы с вами разберемся с настройками)
После установки, можно проверить корректную работу с помощью консольки, для этого задавайте в ней команду:
meta list
Если ответ такой как на скрине:
Значит вы все сделали правильно и конфигурации сервера позволяют использовать последнюю версию Dproto, в противном случаи подняните сервер до нужных характеристик (Обновите metamod например) или же установите более старую версию.
Видео инструкция:
Как обновить Dproto до актуальной версии?
Для обновления нужно так же скачать актуальную версию дпрото и зайти на FTP сервера, только теперь будет все ещё проще. Но, я как всегда сделал видео для новичков, которые делают это в первый раз.
1. После того как вы зашли на сервер по FTP, откройте папку с новым архивом Dproto
2. Теперь заходим в папку /addons/dproto/ на сервере и на локалке
3. В зависимости от расширения файла на сервере:
Linux - dproto.so Windows - dproto.dll
Копируем нужный файл на FTP (сделайте резервную копию на всякий случай), если у вас .so (linux), то копируете с заменой файл dproto.so, если windows, копируем другой файл.
4. В корень "/server/cstrike" или просто "/cstrike" копируем файл с настройками dproto.cfg
5. Перезагружаем сервер через панель управления
6. В консоли пишем "meta list", если ответ:
[ 2] dproto_EF RUN - dproto_i386.so v0.9.хх ini Start Never
Значит все стало отлично! В противном случаи восстанавливаем все с резервной копии и ставим более старую версию или обновляем параметры до минимальных требований.
Настройка
Сначала я хотел выложить настройки прямо здесь, но почти 200 строк кода здесь просто будут лишними.
Предлагаю скачать описание настроек dproto.cfg на русском языке, для ознакомления!!! И использовать их как шпаргалку по функциями, а не как файл настроек.
Думаю понятно, если открыть файл на русском и оригинал и использовать поиск (CTRL + F) по команде "LoggingMode", то вы найдете перевод и поставите нужный вариант в оригинальном файле.
Если будут вопросы, пишите в комментариях, всем помогу!
FAQ (Частые вопросы и ответы)
Вопрос: У меня конфликтует GMBans и Dproto, что делать?
Есть такая проблема в новых версиях, из-за плохого кода в GMBans. Правда есть и два варианта решения проблемы:
1. Отключить ServerInfo
2. Скачать Патч и закинуть его в папку "include" в директории GMBans.
Однако, там все на английском языке, а на этой странице которую вы читаете, информация не чуть не хуже, её даже больше и она в удобном формате.
Вопрос: Dproto для cs 1.6 есть только на linux?
Нет, есть версия как для Linux, так и для Windows. Каждый архив содержит файлы для двух ОС, установка практически одинакова и описана выше.
Где скачать?
В сети есть множество сайтов, но найти среди них автора было сложнавато, учитывая ещё то, что это не наша разработка.
Изначально я попал на сайт SourceForge.Net, но последнее обновление там было в 2013 году.
Затем перейдя на сайт http://cs.rin.ru/forum/viewtopic.php?t=55986 я все таки нашел официальную ветку, на которой можно всегда найти актуальную версию Double Protocol. Для тех кто не хочет вникать в английский язык, публикую ссылку на скачивание.
Скачать Dproto v. 0.9.548 для CS 1.6 последней версии:
Вполне возможно что вам будет нужна более "древняя" версия Dproto, например если какие-то плагины в сборке будут работать некорректно, для этого я публикую архивную версию и в будущем сюда будут переходить текущие версии, если будут более новые релизы.
- Исправлены запросы ServerInfo для онлайн мониторингов. - Исправлено подключение клиента SSE с localhost. - Все команды имеют ограничение скорости. - Устранена проблема "двойного" нажатия при подключении к серверу. - Устранена старая проблема зависания клиентов при подключении. - Устранена проблема с зависанием "баганных" клиентов (кривой serverbrowser) 47 протокол при подключении. - Поддержка протокола SmartSteamEmu 1.2.5 и выше.