Создаем сервер 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
    E-tec
    Хранитель

      Перед тем как что-то начать делать убедитесь, что у Вас есть статический 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
      E-tec
      Хранитель

        Здесь опишу способ, как развернуть мои ранее выложенные сборки серверов с 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 всего)
      • Для ответа в этой теме необходимо авторизоваться.
      Авторизация
      *
      *
      Регистрация
      *
      *
      *
      Пароль не введен
      *
      Генерация пароля