Установка и настройка Counter-Strike: Source сервера

 Опубликовано: 26.02.2009 |  Рубрика: CS: Source, Свой сервер |  Просмотров: 42,000

Введение.
Данная инструкция предназначена для тех, кто хочет установить свой выделенный сервер Counter-Strike Source. Ее можно взять за основу и для других модов Source, поддерживаемых Valve. Предполагается, что человек, создающий сервер, неплохо разбирается в операционной системе и ему не нужно отвечать на вопросы из книжки Wndows (Linux) для чайников. Поэтому здесь рассматривается лишь последовательность шагов по установке выделенного сервера на знакомую вам платформу.

Получение дистрибутива.
Рекомендую скачивать дистрибутив сервера и обновлять дистрибутив сервера через steam. Это бесплатно, быстро и своевременно. Препятствием может стать лишь отсутствие доступа в Интернет или фаервол с закрытыми портами, необходимыми для скачки сервера и обновлений. Программа для получения дистрибутива сервера и его обновления может работать на Windows и получать дистрибутив для сервера Linux и наоборот. Тоесть вам остается лишь найти компьютер, имеющий прямой доступ в Интернет. Только после того, как вы оказались в тупике и не можете сами получить дистрибутив css сервера или его обновление со steam, тогда уже берите предоставленный кем-то дистрибутив и при каждом обновлении ждите, что кто-то сделает патч для вашего сервера.

Для получения дистрибутива css сервера и его дальнейшего обновления через steam используется утилита Windows HLDS Update Tool и Linux HLDS Update Tool. После распаковки этих архивов Вы получите файлы HldsUpdateTool.exe для Windows и steam для Linux. Если с первой все понятно, то файл steam еще необходимо сделать запускающимся:

chmod +x steam

Теперь утилита готова для запуска:

HldsUpdateTool.exe — для Windows
./steam — для Linux

При первом запуске утилита обновится до последней версии и после обновления выдаст синтаксис доступных команд.

<span style="color: red;">Use: hldsupdatetool -command [parameters] [flags]Commands:update: Install or update HLDS
parameters:
-game - Mod name: cstrike, tfc, dod, dmc, valve, czero, or ricochet
-dir - HLDS Install dir (if dir not specified, will use value from last run of tool)
flags:
-verify_all - Verify all HLDS files are up to date
-retry - Automatically retry every 30 seconds if the Steam Network is busyFor example: hldsupdatetool -command update -game cstrike -dir c:hlds

version: View installed versions
list: View available games

Командой

<span style="color: red;">hldsupdatetool -command list</span>

получаем список доступных модов сервера для скачки.

<code>
<span style="color: red;">** 'game' options for Source DS Install:"Counter-Strike Source"
"Counter-Strike Source-linux"
"Counter-Strike Source-win32"
"hl2mp"
"hl2mp-linux"
"hl2mp-win32"

</span>

Теперь набираем команду для получения дистрибутива:

HldsUpdateTool.exe -command update -game «Counter-Strike Source» -dir c:srcds

Если HldsUpdateTool у Вас находится в той же директории, где будетнаходится сервер, то вместо -dir c:srcds пишем -dir .

После завершения работы утилиты Вы получите надпись:

HLDS installation up to date

Это обознаает, что все прошло нормально и у Вас теперь последняя версия сервера.

Теперь создайте скрипт для последующих обновлений сервера Update.bat (update.sh для Linux)

C:SRCDShldsupdatetool.exe -command update -game «Counter-Strike Source» -dir .

а вот для Linux:

#!/bin/bash
cd /home/cs/srcds_l
./steam -command update -game 'Counter-Strike Source' -dir .

Теперь можно переходить к тестированию и настройке сервера.

Тестирование и запуск сервера. Основные настройки.

Запускается сервер тоже при помощи скрипта. Для теста запустим сервер строкой:

srcds.exe -console -game cstrike +maxplayers 16 +map de_dust  — Windows

./srcds_run -game cstrike +maxplayers 16 +map de_dust  — Linux

Если ранее Вы делали все правильно и сервер скачался не битый, то Вы должны увидеть консоль сервера. Если консоль не появилась, возвращайтесь к пункту «Получение дистрибутива».
В консоли сервера после всех инициализаций можно набрать:

version — показывает версию сервера.
stats — показывает основные параметры работы на данный момент (загрузку процессора, fps, количество игроков).
exit — отключить сервер.

Итак мы убедились что все работает. Теперь попробуйте зайти на свой сервер как клиент (через CS). Если у вас лицензионный версия CS, то вы зайдете на сервер без проблем.

Не рекомендую играть с того же компа, на котором стоит выделенный сервер!

Теперь переходит к созданию скрипта запуска. В Windows это можно сделать ярлыком: щелкаем правой клавишей на рабочем столе, выбираем Создать/Ярлык, в появившемся окне «Создание ярлыка» пишем c:srcdssrcds.exe или находим srcds.exe через Обзор, даем имя ярлыку и говорим Готово. На рабочем столе появился новый ярлык. Заходим в его Свойства, выбираем закладку Ярлык и в строке Объект, где у нас уже прописано С:SRCDSsrcds.exe, дописываем:
С:SRCDSsrcds.exe -console -game cstrike +maxplayers 16 +map de_dust
Если вы хотите, что бы сервер стартовал автоматически при запуске/перезагрузки машины, то сделайте такой же ярлык в Программы/Автозагрузка.

Основные параметры строки запуска и конфигурации сервера не сильно отличаются от серверов на движке HL1 и поэтому можно воспользоваться Конфигуратором, приведенным на этом форуме. Там же есть пояснения по каждому параметру.

Теперь рассмотрим запуск сервера на платформе Linux. Простой скрипт запуска start_css.sh:

#!/bin/bash
cd /home/cs/srcds_l
./srcds_run -game cstrike +maxplayers 16 +map de_dust > /home/cs/server_css.log 2>&1 &

При этом, сервер будет писать все свои действия в /home/cs/server_css.log. Останавливаем сервер с помощью скрипта:

#!/bin/bash
kill `ps ax -H --cols 1000|grep -e «-game cstrike»|grep -e «srcds_»|grep -v grep|awk '{printf («%sn»,$1);}'`

Многие пользуются screen. Как запускать сервер с его использованием, подробно описано в статье Выделенный Counter-Strike Server (LINUX).

Вам осталось выбрать тип сервера, который вы хотите запустить – лановый (+sv_lan 1 в строке запуска) или доступный из интеренета (+sv_lan 0), будет ли сервер защищен античитом от VALVe – VAC (по умолчанию защищен) или нет (-insecure в строке запуска), нужно, что бы ваш сервер отображался в глобальном списке серверов (включено по умолчанию) или нет (-nomaster в строке запуска).
Основная работа позади. Сервер скачан, запущен и работает. Установка дополнительных плагинов на сервер в этой статье рассматриваться не будет. Если вам не нужны игроки с нелицензионным клиентом, то на этом и заканчивайте. Если хотите что бы играли – читаем дальше.

4.Делаем сервер доступным для клиентов nosteam.
Если вы прошли все предыдущие пункты и у вас рабочий сервер, то нелицензионный клиент при входе на него получит следующую ошибку:
STEAM validation rejected
Как бороться?

Первый шаг – утанавливаем +sv_lan 1 в строке сервера, а так же –insecure, т.к. VAC бесполезен на лансерверах.

Второй — с помощью поломанных библиотек отменяем валидацию стима. Для Win32 это делается заменой /bin/steam.dll. Тут имеем 2 варианта. Можно поставить steam.dll из steamemu от hCUP. Вы без труда найдете его через глобальный поиск. Вам нужно лишь заменить steam.dll и сделать в корне каталога сервера файл steamemu.ini со строчкой:

[HL2.EXE_CSTRIKE]

Все нелицензионные клиенты запросто могут подсоединиться к вашему серверу. А вот с лицензионными могут возникнуть проблемы. Возможно ситуация изменится с последующими версиями SteamEmu и steam.dll от них, но на данный момент лицензионный клиент получает ошибку

SteamGetEncryptedUserIDTicket failed (1)
reason-- SteamGetEncryptedUserIDTicket () failed with error 1: Unknown internal error occurred — AS command error .

Если вас не беспокоят лицензионные клиенты, оставьте так, если хотите, что бы сервер был доступен всем, то используем второй вариант — берем библиотеки steam.dll и steamy.dll от Emporio и кладем их в вашу папку сервера /bin. Теперь и стимные и нестимные клиенты могут зайти на ваш сервер. Оба файла тоже не составит труда найти в интернете. При втором варианте файл steamemu.ini в корневом каталоге сервера не понадобится.

Теперь Linux. Для отмены валидации нужно заменить файл /bin/libsteamvalidateuseridtickets_i486.so. Размер сломанного файла – 14’542 байта. Где взять ? – ищите.
Не забывайте держать сломанные библиотеки в другом месте или с измененным именем, т.к. при обновлении стимом они переписываются заново на родные, не ломанные. После каждого обновления не забывайте поставить эти файлы снова.

Следующая проблема возникает при подсоединении к вашему серверу нелицензионных игроков из интернета. У вас стоит +sv_lan 1, т.е ваш сервер предназначен только для игры внутрисетевых пользователей. А игроки извне должны иметь свой SteamID, который имеется только у лицензионных клиентов и сервер отказывает нелицензионщикам по причине непрохождения проверки на class C. Т.е. нелицензионный игрок не имеет уникального SteamID, но и ввиду невнутрисетвого IP не может быть отнесен к лановому. Код проверки на Class C кроется в библиотеке engine.dll (engine_*.so для Linux). Ломается с помощью simple patcher (sp.exe):

<span style="color: red;">sp.exe NoClassC.s engine.dll
SIMPLE PATCHER 0.99beta (c) Victor Romanoff 2:5054/2.256
Patching file ENGINE.DLL
Signature found at 105205d, 00019AF5h
done.</span>

Simple Patcher вы найдете в интернете, а содержание файлика NoClassC.s на сегодняшний день такое:

<span style="color: red;">; Linux i486 and i686
#search 00 00 00 74 ?? 83 F8 03 74 ?? 31
#change 00 00 00 EB ?? 83 F8 03 74 ?? 31
; Linux amd
#search 01 B2 01 74 ?? 83 F8 03 74 ?? BA
#change 01 B2 01 EB ?? 83 F8 03 74 ?? BA
; Win32 engine.dll no class C by AdEpT
#search 8B ?? FF 92 E0 00 00 00 84 C0 75 ?? 8B
#change 8B ?? FF 92 E0 00 00 00 84 C0 EB ?? 8B</span>

За его возможными изменениями следите на форуме. Оговорюсь, что многие Win32 сервера не испытывают данной проблемы с Сlass С, поэтому прежде чем патчить, попросите знакомого попробовать зайти на ваш сервер нелицензионным клиентом. Возможно, вам и не понадобится эта уловка.
Еще одна особенность — Simple Patcher понимает только восьмизначные имена, поэтому библиотеки engine_*.so для Linux вам придется переименовать перед работой с патчером в любое имя, не более 8 знаков, к примеру, engine.so. Патчить таким образом эти библиотеки вам придется каждый раз после их обновления.

Вот и все основные ваши шаги по установке и запуску выделенного сервера source.

© dedicated-server.ru MuXeu




6 комментариев к “Установка и настройка Counter-Strike: Source сервера”

  1. 1

    Веталь пишет:
    16 сентября 2009 в 19:58

    кому не сложно помогите с сервером для КС Сорса !!! «575246064» вот ася помогите !

    я не могу понят какие дестрибуты :?: :??

    раньше зделал сервак а терь не магу ... забыл !!)))

    помогите кто сможет!

  2. 2

    Александр пишет:
    26 сентября 2009 в 10:03

    А почему не рекомендуется играть с того же компа, на котором стоит выделенный сервер?

  3. 3

    admin пишет:
    27 сентября 2009 в 6:18

    Когда ты играешь на своем сервере, ты используешь тот же канал что и сервер. Зависит от того, сколько игроков на сервере у тебя. Если не много, то не страшно.

  4. 4

    Александр пишет:
    9 октября 2009 в 17:06

    Есть вопрос! Как сделать сервер не на ПК а на платном хостинге.

  5. 5

    admin пишет:
    15 октября 2009 в 11:36

    Александр, вот p.game-servers.ru/16140

  6. 6

    Александр пишет:
    16 октября 2009 в 18:46

    скажите а если 20 игроков на сервере и я использую тот же комп это сильно повлияет на работу сервера?

Оставьте комментарий:

Другие статьи рубрики "CS: Source":