Установка steam сервера CS:GO на Linux VPS бесплатно Введение и примечанияВ интернете много статей с однотипным содержанием, и не полным раскрытием шагов инсталяции, что вызывает затруднения в понимании этих шагов. Грубо говоря, везде какая-то "тухленькая инфа". Я помогу вам понять принцип поднятия 24/7 сервера на своём выделенном или виртуальном сервере (VDS/VPS).
Руководство описывает установку лицензионного сервера Steam CS:GO, и забегая вперёд скажу, если у вас уже куплена игра CS:GO в Steam, то не будет никаких проблем, а только плюсы. Аренда сервера VPSСамой простой и понятной платформой аренды виртуальных серверов я считаю новый проект Vscale (облачные сервера) от крупнейшего оператора услуг дата-центров в России, сети "Селектел" . Поскольку я обещал вам бесплатную установку сервера без регистрации и смс :) , поэтому опишу пару простых шагов, которые нужно сделать, чтобы арендовать сервер бесплатно.
Для управления сервером вы можете использовать консоль своей системы Linux, либо консоль программы Putty для Windows. У меня на домашнем ПК стоит Windows и для меня удобный вариант - это установить Debian на виртуальную машину (VMware). Настройка системыПодключаемся к серверу как root пользователь через консоль по SSH: Код
ssh root@ip-address Вставляем пароль, который мы должны были сохранить. Всё, мы в системе. Обновляем систему Код
apt-get update Русифицируем систему Код
apt-get install console-cyrillic Выбираем раскладку Russian и далее можно ничего не трогать Код
dpkg-reconfigure locales Выбираем следующие locales - RU-UTF8 Код
dpkg-reconfigure console-cyrillic В конце выбираем сохранение языка при перезагрузке И если у нас 64-битная система, установим для совместимости Код
apt-get install lib32gcc1 Устанавливаем удобный консольный файловый менеджер и делаем его редактор по умолчанию Код
apt-get install mc и выбираем mcedit (обычно под цифрой "2") Устанавливаем утилиты, которые понадобятся Код
apt-get install htop awk screen wget Для устранения ошибки "libstdc++.so.6: cannot open shared object file: No such file or directory", связанной с совместимостью 32-битных библиотек на 64-битном дистрибутиве Linux. Так же необходимо для компиляции плагинов, если потребуется. Код
apt-get install lib32stdc++6 Бывает, возникает ошибка "The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable". Тогда всё же следует полностью подключить 32-битную архитектуру в систему. Код
dpkg --add-architecture i386 При настройке безопасности системы обычно не используемые порты для всех подключений делаются закрытыми. В нашем случае, система свежеустановленная и не имеет правил фаервола. Если вы новичок - вам рано заморачиваться с этим, пропускаем этот пункт. Но все же, если вы фанатичны к настройке iptables, или ваш проект будет популярен и высока вероятность DoS атак на сервер, то вам следует разобраться с этим, я лишь приведу личное мнение и ссылки и вырезки из оф. документации. Если сервер один, то обычно используют слушающий порт сервера - 27015. В таком случае, обычно серверу хватает открытых портов: 27015 по tcp/udp (либо для диапазона 27000:27050), 27005 и 27020 по udp протоколу. Valve в своей wiki советует добавить следующие правила для избежания ошибки "Login Failure: No Connection": Код
/sbin/iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT Согласно базе знаний Steam для нормальной работы нужные порты тут - https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=russian (но тут касательно клиента и другого) Добавляем пользователя для steam и входим под ним (выйти обратно logout) Код
useradd -m steam Для установки будет использоваться консольная оболочка SteamCMD Установка чистого дистрибутива сервера CS:GOСоздаём в домешнем каталоге вновь созданного пользователя - каталог steamcmd и перейдем в него Код (bash)
mkdir ~/steamcmd Лучше пользоваться файловым менеджером MidnightCommander, который мы поставили в предыдущем пункте. Кратко (создать каталог - F7, удалить каталог/файл - F8, свернуться в консоль и обратно - Ctrl+O). Учтите, если вы запустили его от root пользователя, созданные каталоги будут с правами root, нам это не нужно! Работайте при установке от steam пользователя. Закачиваем командную оболочку Steam и извлекаем из архива Код (bash)
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz Для других ОС можете использовать официальное руководство https://developer.valvesoftware.com/wiki/SteamCMD:ru Входим в SteamCMD. Сервер CS:GO еще пока можно загрузить анонимно (не используя аккаунт Steam). Код
login anonymous В итоге выполнения должны получить «…Success» Назначаем директорию, куда устанавливать дистрибутив. Я предпочитаю не ставить внутрь консольной оболочки, а ставить также в домашний каталог. Код
force_install_dir ../csgo-ds Мы хотим выполнить первоначальную установку или проверить целостность файлов сервера, для этого необходимо выполнить команду. Код
app_update 740 validate Чтобы просто обновить: Код
app_update 740 При успешном скачивании выведет: «Success! App app_id fully installed». Выходим и чистим консоль. Код
quit Еще есть проверка целостности файлов (если повреждены или отсутствуют) Код
validate Проверка перезапишет любые стандартные файлы, которые были изменены. Например, если настроить mapcycle.txt, этот файл будет перезаписан версией по умолчанию. Любые файлы, которые не являются частью установки по умолчанию не будут затронуты. Теперь переходим в каталог основных конфигураций сервера и создаем два важнейших конфигурационных файла. Код (bash)
cd ~/csgo-ds/csgo/cfg Теперь дистрибутив готов к настройке! Следующим шагом я научу запускать сервер, и затем расскажу какие конфиги и для чего нужны в теперешнем CS:GO, какие преднастроеные режимы есть и как их переключать. Управление сервером CS:GO. Первый запускДля управления сервером, а именно - корректный запуск, остановка, рестарт, проверка статуса запуска, обновления, - уже существуют готовые решения. В нашем случае, будет использоваться bash-скрипт, протестированный на Debian и Ubuntu. Ссылка на github - https://github.com/crazy-max/csgo-server-launcher Я просто закачал оба файла в каталог с сервером. Но автор советует сделать изящнее, с удобным запуском в консоли. Итак, инструкция по установке скрипта от автора: Код
cd /etc/init.d/ Этим самым файл настроек кладем в каталог конфигураций всех сервисов /etc, как и заведено в Linux. А управляющий скрипт в каталог /etc/init.d, что будет запускать скрипт при загрузке системы, используя системный демон init.d. Плюсом от этого будет использование скрипта как системного сервиса. Теперь сервер можно запускать, не указывая полное имя скрипта и пути. Код
service csgo-server-launcher start А Так же автор предлагает автоматическое обновление сервера с помощью системного планировщика CRON. Но нам это не нужно. Настройки скриптаSCREEN_NAME "csgo" - отображаемое имя создаваемого утилитой screen терминала GSLT - Анонимные подключения скоро будут запрещены, поэтому рекомендуется создать токен по следующей ссылке (нужен steam аккаунт) : http://steamcommunity.com/dev/managegameservers Так же токены позволяют сохранять сервер у игроков в избранном, даже если IP адрес сервера поменялся. Так же можно задавать переменной sv_setsteamaccount в autoexec.cfg. DIR_STEAMCMD - Путь до SteamCMD, т.е. "/home/steam/steamcmd" DIR_ROOT - корневая директория сервера, т.е. "/home/steam/csgo-ds" API_AUTHORIZATION_KEY - Для закачивания карт из Steam Workshop (которые отображаются специальной иконкой в списке серверов), серверу необходимы права доступа к Steam API. Сервер сам закачивает такие карты лишь по названию и ID. Если уже создан файл webapi_authkey.txt с ключем, опция будет проигнорирована. Иначе, генерируем ключ авторизации : http://steamcommunity.com/dev/apikey MAXPLAYERS - Максимальное количество игроков. Пусть, 16. Если используется скрипт csgo-server-launcher, то консоль сервера предполагается вызывать командой Код
service csgo-server-launcher console консоль будет открыта в отдельном окне-подтерминале, используя утилиту screen (сессия создается при старте сервера). Сервер работает только с включенным консольным интерфейсом и в фон уходить не умеет (следовательно другую работу с сервером в этом ssh подключении мы не сможем выполнять), для таких случаев и используется утилита screen. Выйти из консоли сервера (т.е. свернуть сессию screen), как напоминает разработчик, можно горячими клавишами Ctrl+A затем D. Бывает возникает ошибка типа "Cannot open your terminal '/dev/pts/0' - please check." Я решил эту проблему заменой строчки 116 в скрипте /etc/init.d/csgo-server-launcher Код
su - $USER -c "screen -r $tmp" на Код
su - $USER -c "script -q -c 'screen -dr $tmp'" Так же добавленный параметр d, будет перезагружать сессию, если вы теряли соединение с сервером по ssh. ИтогиВ данной статье я Вас научил работать со своим виртуальным сервером VPS, настраивать на нем для основных нужд систему Debian через консоль, разворачивать на ней чистый лицензионный steam дистрибутив игрового сервера CS:GO, научил удобному способу управления сервером, и многим другим ценным фишкам. Продолжение во второй части, в которой я рассмотрю подробную настройку сервера CS:GO - преднастроенные режимы CS:GO, их конфиги, созданные нами autoexec.cfg и server.cfg и другое... С вами был Александр linkz (WaNTeD) Пудич. Автор: Александр linkz
|
Сервера
Последний пост
el.MEJOR Team
Про сервачок
Нужно знать
Наши опросы
Партнеры
|