Добрый день, дорогие читатели и гости, которым интересна эта тематика.
Как известно, для работы игрового сервера меньше ресурсов (а значит и меньше затрат) нужно именно на ОС семейства Linux. Установка сервера Counter-Strike: Source на Linux с нуля в целом не сложная, но если вы не разбираетесь в Линуксе, тогда лучше все делать по пошаговой инструкции. В интернете можно найти информацию по установке сервера с нуля на Linux, но достаточно грамотных статей я встречал всего парочку. Недавно мы с друзьями запустили свой сервер для CS: Source, поэтому я решил свежим взглядом описать и показать весь процесс, а также обратить внимание на возможные проблемы и пути их решения.
Сразу оговорюсь, что речь идет об установке официального Steam сервера, потому что я не одобряю пиратство (по крайней мере с играми) и вам не советую. На момент написания статьи, цена на Counter-Strike: Source в Steam – всего 435р.
Для запуска сервера Counter-Strike: Source на Linux нам подойдет компьютер или VDS (виртуализация KVM) на любой ОС семейства Linux, имеющий минимум 1 ядро, 1 Гб ОЗУ и свободные 3 Гб места на диске под сам сервер. Если вы собираетесь запускать сервер дома, то вам понадобится внешний IP адрес или придется настраивать no-ip. Недорогие VDS с DDoS защитой вы можете посмотреть здесь. В этой статье мы будем удаленно устанавливать сервер на Ubuntu 14.04.5 LTS.
Если у вас под рукой компьютер на ОС Linux, то вам понадобится консоль и менеджер файлов, а если подключаться будем удаленно, то нам понадобятся shell-клиент PuTTY и FTP-клиент FileZilla или SFTP+FTP клиент WinSCP.
Подготовка
Если у вас 64-битная система, то в первую очередь нужно установить библиотеки для запуска 32-битных приложений, потому что сервер игры как раз 32-битный. Сделать это можно одной командой:
sudo apt-get install lib32gcc1 libc6-i386
Запускать сервер в целях безопасности рекомендуется от имени отдельного пользователя, поэтому давайте создадим нового пользователя. В моем примере это будет test
.
sudo adduser test
После выполнения этой команды, вам нужно будет указать пароль для создаваемого пользователя, а также дополнительные данные. Вы можете пропустить ввод доп. данных, просто нажимая Enter. В конце, вам нужно будет подтвердить ввод данных, отправив Y.
Установка сервера Counter-Strike
1. Заходим под именем созданного пользователя:
su test
Вводим его пароль, а после отправляем команду cd
, чтобы перейти в домашний каталог пользователя. Вы можете отправить команду ls
и в ответ ничего не придет, потому что в домашнем каталоге нового пользователя пусто, там есть только системные файлы.
2. Теперь нам нужно создать папку для установки SteamCMD и перейти в нее. Для этого по очереди набираем команды:
mkdir steamcmd && cd steamcmd
Если все прошло успешно, вы увидите в консоли путь ~/steamcmd$
3. Скачиваем архив SteamCMD:
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
Скачаться он должен быстро, потому что его размер небольшой. Затем сразу распаковываем его:
tar -xvzf steamcmd_linux.tar.gz
После распаковки, у вас появятся файлы и папки:
linux32/
linux32/libstdc++.so.6
linux32/steamcmd
steamcmd.sh
steam.sh
Если это так, значит все хорошо и можно удалить скачанный архив:
rm steamcmd_linux.tar.gz
4. Запускаем командную оболочку Steam:
./steamcmd.sh
Дожидаемся загрузки обновлений, после чего должна появиться консоль SteamCMD, вы поймете это по заголовку Steam>
5. Получаем гостевой доступ к сервису скачивания серверов:
login anonymous
Должно появиться 2 строчки, в конце обеих должно быть OK.
Теперь указываем, в какую папку будем скачивать сервер (папка будет создана автоматически). Сервер для CS: Source можно установить в папку css, но вы можете назвать ее по своему.
force_install_dir ../css/
Директория css будет создана в домашнем каталоге, рядом с папкой steamcmd.
6. Запускаем загрузку сервера игры, указывая специальный стимовский app_id. Для CS: Source это 232330
.
app_update 232330 validate
Начнется загрузка, которая будет выдавать Update state в процентах. Размер загружаемых данных примерно 2.30 Гб, поэтому придется подождать несколько минут до окончания загрузки.
Примечание: Если вдруг загрузка прервется и у вас будет написано Error! App '232330' state is 0x402 after update job
или похожая ошибка, то просто снова отправьте команду app_update 232330 validate
и процесс продолжится с того места, где прервался.
После успешной загрузки, вы увидите следующее:
7. Выходим из SteamCMD нажатием сочетания клавиш Ctrl+C
или отправив команду quit
.
Затем переходим в папку загруженного сервера.
Вот и все. Сервер фактически установлен. Теперь мы можем попробовать сделать тестовый запуск.
cd ../css && ./srcds_run -console -game cstrike +maxplayers 20 +port 27015 +map de_dust
У вас перед глазами пробежит много строк и в конце должно быть VAC secure mode is activated.
Однако, как мы видим на скриншоте, в процессе загрузки сервера возникли некоторые ошибки. Иногда он запускается при их наличии, а иногда может выдать FATAL ERROR.
Если при запуске вы видите ошибку ... /.steam/sdk32/steamclient.so: cannot open shared object file: No such file or directory
, то не пугайтесь, она легко поправима:
ln -s ~/steamcmd/linux32 ~/.steam/sdk32
Эта команда создаст символьную ссылку с директории sdk32 на директорию linux32 и при следующем запуске, таких ошибок вы уже не увидите:
Первичная настройка сервера
Теперь давайте перейдем к визуальной работе с файлами, поскольку это удобнее, чем в консоли. Для этого подключаемся по FTP к нашему серверу (в случае удаленной работы).
1. Заходим в папку /css/cstrike/cfg/
В этой папке должен находиться главный файл конфигурации сервера – server.cfg. Вы можете создать этот файл, найти его описание и параметры в интернете, затем загрузить готовый файл в указанную папку по FTP. Но я рекомендую воспользоваться лучшим подробным конфигом, который я нашел и подкорректировал – в нем все настройки описаны на русском языке и вам не составит труда изменить все под ваши нужды. Скачайте его, затем откройте в любом текстовом редакторе, измените название сервера и другие необходимые настройки под себя, затем загрузите в папку css/cstrike/cfg на вашем сервере.
2. В этой же папке вы увидите и другие файлы конфигурации. Обратите внимание на файлы motd_default.txt, motd_text_default.txt и mapcycle_default.txt. Эти файлы вы можете скачать, изменить под себя и загрузить на сервер, убрав суффикс default.
motd.txt
– файл используется для отображения информации в окне приветствия при подключении к серверу. Можно использовать HTML, картинки и даже музыку.motd_text.txt
– простой текстовый вариант приветствия, если не используется motd.txtmapcycle.txt
– файл со списком карт, смена карт происходит по списку из него. В него вы будете добавлять и новые карты, если будете загружать их на сервер.
3. При запуске сервера мы в логах видели надпись anonymous game server account
. Для полноценной работы сервера и проверки игроков по STEAM_ID, нам нужно привязать сервер к Steam. Для этого переходим на эту страницу Steam, авторизуемся в своем аккаунте, внизу страницы вводим номер приложения: 240 и нажимаем кнопку Создать. Полученный идентификатор копируем и сохраняем где-нибудь, он нам скоро понадобится.
4. Чтобы сервер было проще запускать, мы можем создать специальный файл для запуска, в котором будет прописана команда запуска сервера с необходимыми параметрами. Позже, вы сможете добавить этот файл в автозагрузку (Cron) и сервер игры будет запускаться автоматически при перезапуске самого сервера Linux.
Создаем на рабочем столе текстовый файл start.sh. В него прописываем:
#!/bin/bash
./srcds_run -console -game cstrike +port 27015 +sv_setsteamaccount E25F0F3C2B8DADDCC5589D5538CF7343 +maxplayers 20 +map de_dust2 &
- port – порт на сервере, вы можете указать любой, начиная от 27015
- если на вашем VDS несколько внешних IP, добавьте +ip ваш_ip перед +port;
- sv_setsteamaccount – здесь как раз и указываем идентификатор, который получили в Steam;
- maxplayers – кол-во слотов на сервере;
- map – карта.
Сохраняем файл, в FileZilla переходим в папку /css/ и загружаем созданный файл туда. Не забудьте добавить этому файлу права на исполнение:
chmod +x /home/test/css/start.sh
Теперь вы можете запускать сервер командой ./start.sh
, находясь в папке css, а также добавить этот файл в Cron на автозапуск. После запуска сервера, обратите внимание на страницу, где получали идентификатор Steam для сервера, у вас должно обновиться поле “Последний вход” – это значит что сервер корректно запустился с привязкой Steam.
На этом установка сервера Counter-Strike: Source завершена. Для корректной работы сервера через интернет, на компьютере/VDS, где вы его запускаете, должны быть открыты порты 27000-27040.
P.S. В следующих статьях я расскажу о том, как добавлять карты на сервер, сделать быструю загрузку файлов, а также о SourceMod и возможностях плагинов для него.