Создаем сервер CS 1.6 на linux (Debian 9) Steam - Geek-Speak

Создаем сервер CS 1.6 на linux (Debian 9) Steam

Главная Форумы JUST FOR FUN Create gaming servers Создаем сервер CS 1.6 на linux (Debian 9) Steam

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Автор
    Сообщения
  • #193
    Esmertec
    Хранитель

    Перед тем как что-то начать делать убедитесь, что у Вас есть статический IP адрес!

    Как установить ОС я рассказывать не буду, так как это элементарно просто, да и если с установкой ОС Вы справились, то и развертывание сервера CS вам покажется простой, так что не буду тянуть и приступлю сразу к делу! Сразу оговорка все команды используются от root пользователя, я использую образ Debian 9.1 mini cd x64 (~250-300Мб)!

    Для начала нам нужно доустановить на нашу ОС следующие пакеты если Вы используете самый легкий образ системы (mini cd ~250-300мб):
    screen – для запуска приложений в виртуальном терминале
    ssh – сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой
    mc – файловый менеджер с текстовым интерфейсом
    net-tools – это набор сетевых утилит для диагностики сетей и мониторинга сетевых соединений.

    для установки пакетов используйте команды:

    apt-get update
    apt-get install screen ssh mc net-tools

    После установки всех пакетов, можно сразу подключиться по ssh используя утилиту putty, для удобства копирования последующий действий 😀

    Следующий шаг создание директории для скрипта steam и его скачивание, т.к. мы будем использовать официальный сервер CS 1.6 от valve!

    mkdir /etc/SteamCMD
    cd /etc/SteamCMD
    wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

    Мы получили архив со скриптом.
    Теперь распакуем, удалим архив, так как он больше нам не понадобится, и присвоим скрипту права на выполнение:

    tar xfz steamcmd_linux.tar.gz
    rm steamcmd_linux.tar.gz
    chmod +x steamcmd.sh

    Так же нам понадобится набор библиотек для запуска 32-битных приложений:

    dpkg --add-architecture i386
    apt-get update
    apt-get install lib32gcc1
    apt-get install libcurl3:i386
    apt-get install libcurl3:amd64 (для x64 OS)

    Запускаем скрипт установки Steam:

    ./steamcmd.sh

    Если вы сделали всё верно, то пойдет процесс загрузки обновлений и в конце терминал выдаст приветствие SteamCMD

    Steam Console Client (c) Valve Corporation
    -- type 'quit' to exit --
    Loading Steam API...OK.
    
    Steam>

    Итак, пакет для загрузки серверов у нас запустился, далее нам нужно авторизоваться в сервисе Steam, есть два способа 1 – авторизация как анонимный пользователь, 2 – авторизация под своим профилем Steam. Тут небольшой нюанс, при анонимной авторизации на момент написания мануала а это октябрь 2017, Steam не дает скачать сервер с CS 1.6 с чем это связано тоже не известно, поэтому авторизуется под своим профилем! При удачной авторизации увидите следующие строки (rain159rus – логин моего профиля):

    Steam>login rain159rus
    
    Logging in user 'rain159rus' to Steam Public...
    Using cached credentials. . .
    Logged in OK
    Waiting for user info...OK
    
    Steam>

    Теперь укажем, куда скачивать файлы сервера:

    Steam>force_install_dir /etc/hlds

    Ну и теперь приступаем непосредственно к скачиванию файлов:

    Steam>app_update 90 validate

    Здесь 90 — код сервера Counter-Strike 1.6. Если Вам нужно что-то иное, то google вам поможет. Если все удачно скачалось Вы увидите следующее сообщение:

    Success! App '90' fully installed.
    
    Steam>

    Тут стоит обратить внимание, что сервер занимает примерно 500-800мб, если у Вас скачалось меньше можно запустить команду app_update 90 validate повторно, но у меня всегда скачивалось с первого раза)) Если у Вас тоже, то можно выходить из скрипта командой:

    Steam>quit

    Мы уже с Вами располагаем чистым сервером Counter-Strike 1.6 со стандартными картами и настройками. Далее нам нужно создать каталог .steam в домашней папке пользователя, от чьего имени запускаем сервер я запускаю от root соответственно:

    mkdir ~/.steam

    Возможно папка уже существует, но нет библиотек, копируем их из папки SteamCMD:

    cp /etc/SteamCMD/linux32 ~/.steam/sdk32

    или создать символьную ссылку sdk32 на каталог linux32 в папке со скаченным ранее SteamCMD:

    ln -s /etc/SteamCMD/linux32 ~/.steam/sdk32

    Создадим два конфига в папке cstrike – listip.cfg и banned.cfg 😀

    touch /etc/hlds/cstrike/listip.cfg
    touch /etc/hlds/cstrike/banned.cfg

    Конечно, наш сервер во многом отличается от большинства серверов в интернете, но обвешивать функциональностью мы будем в следующих статьях, а пока просто запустим:

    $ ./hlds_run -game cstrike +ip 0.0.0.0 +maxplayers 20 +map de_dust2
    Auto-restarting the server on crash
    
    Console initialized.
    Using breakpad crash handler
    Setting breakpad minidump AppID = 10
    Forcing breakpad minidump interfaces to load
    Looking up breakpad interfaces from steamclient
    Calling BreakpadMiniDumpSystemInit
    Protocol version 48
    Exe version 1.1.2.7/Stdio (cstrike)
    Exe build: 13:12:29 Aug 29 2013 (6153)
    STEAM Auth Server
    Server IP address 0.0.0.0:27015
    [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
    Looking up breakpad interfaces from steamclient
    Calling BreakpadMiniDumpSystemInit
    
    Connection to Steam servers successful.
       VAC secure mode is activated.

    На ошибку [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed. Не стоит обращать внимания, она возникает только если отсутствует подключение к steamcmd, в принципе ни как не влияет на сервер…

    Внимание! Этот мануал поможет Вам создать БАЗОВЫЙ сервер, остальные моды, ставьте самостоятельно на свой вкус!

    Не забудьте открыть порт для своего сервера по умолчанию используется UDP порт 27015

    #1441
    Esmertec
    Хранитель

    Здесь опишу способ, как развернуть мои ранее выложенные сборки серверов с gg и public модами.

    Как скачать архив с яндекс.диска описывать не буду xD Предположим, что Вы уже скачали архив и распаковали. Внутри архива есть следующие папки: Snapshots, Virtual Hard Disks и Virtual Machines. И так возьмем вариант в котором Вы разворачиваете сервер на свой hyper-v. В таком случае нас интересует только папка Virtual Hard Disks, Snapshots и Virtual Machines можно удалить. В зависимости от того как Вы храните свои виртуальные машины копируем папку ISO-CS-GGSRV, либо только файлы ISO-CS-GGSRV.vhdx и iso-cs-ggsrv_A1E709B9-18B6-4029-8269-F3F5FD338BD2.avhdx в папку с образами ОС. P.S. для примера я сделаю вторым вариантом, т.е. все ВМ (Виртуальные Машины) на данном hyper-v сервере у меня находятся все в одной папке.

    После копирования в Диспетчере Hyper-V создаем новую ВМ, называем как Вам нравится, я назвал так какое имя у нее и была ISO-CS-GGSRV, поколение ВМ – 1, ОЗУ хватит 1Гб, выбираем сетевой адаптер с доступом в интернет. На последнем шаге НЕ создаем новый диск, а указываем путь к только, что скопированному файлу, а именно до ISO-CS-GGSRV.vhdx!

    После чего жмем кнопку Готово! В принципе на этом этапе можно запустить ВМ, но нам нужно выполнить слияние виртуального жесткого диска и последней КТ (контрольной точки). Создаем новую КТ существующего состояния ВМ. Далее открываем на сервере, где копировали файлы сервера CS, powershell, привязываем КТ к ВМ командой:
    set-vhd 'D:\Hyper-V\Virtual Hard Disks\iso-cs-ggsrv_A1E709B9-18B6-4029-8269-F3F5FD338BD2.avhdx' -ParentPath "D:\Hyper-V\Virtual Hard Disks\ISO-CS-GGSRV.vhdx" -IgnoreIDMismatch
    Ответ консоли не должен содержать ошибок, красного текста после ввода команды.

    Если у Вас так же идем дальше, если есть ошибки, проверяем где накосячили с вводом команды. Если все так же как на скриншоте – в Диспетчере Hyper-V жмем ПКМ по имени восстанавливаемой ВМ и идем в Параметры. В параметрах идем в пункт Жесткий диск, в поле выбора виртуального жесткого диска выбираем вместо только что созданной КТ, старый образ КТ, который связали с ВМ ранее, а именно: iso-cs-ggsrv_A1E709B9-18B6-4029-8269-F3F5FD338BD2.avhdx.

    Применяем настройки, ВМ может выдавать всякие предупреждения о создании еще одной КТ и т.д. и т.п., это не критично, можно выбрать любые действия. После этих операций у вас в Диспетчере hyper-v у нашей ВМ появится вторая КТ. После этих действий включаем ВМ для проверки работоспособности.

    У меня все работает =), в принципе и у Вас должно быть так же, по этому выключаем ВМ, и по очереди удаляем, сначала КТ№2, ждем завершение слияния КТ с ВМ, далее удаляем КТ№1, и так же ждем слияния с ВМ (смотри скриншот выше, чтоб понять очередность удаления КТ). После слияния КТ идем в папку с файлом ISO-CS-GGSRV.vhdx удаляем в ручную лишнюю КТ, которая находится в папке, в этот момент у вас должен остаться только один образ с расширение .vhdx. Далее идем в Диспетчер Hyper-V запускаем ВМ еще раз проверяем работоспособность. Если все работает по желанию делаем свежую КТ, если не надо – не делаем, по вашему вкусу. Подробнее про восстановление ВМ можете почитать в соседней ветке моего форма, делайте так где я описал способ более понятно. Восстановление public мода, аналогично GG. Если Вам нужен GG сервер на windows, просто устанавливаем чистый сервер с CS 1.6 на windows и копируем папки из архива в папку cstrike, попутно указав ссылку на папку с аддонами. Если Вам нужно развернуть образ на физическом ПК, то первым делом Вам нужно будет произвести слияние КТ с ВМ по описанию выше, или по мануалу из соседней ветки, чтоб получить “чистый” .vhdx файл, далее использую утилиту VHD2Disk, развернуть образ на HDD физического ПК.

    Все действия выглядят достаточно сложными, но если начать делать, все в принципе окажется достаточно просто xD Если будут вопросы можно задать в этой ветке форума!

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Для ответа в этой теме необходимо авторизоваться.
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля