Установка сервера css ubuntu

ramer

статью пишу для себя (в первую очередь), для друзей, которые интересуются, и для сочувствующих it-шников.

1. установка.
2. настройка.
3. безопасность.
4. моды.
5. возможные траблшуты.

1. установка.

1.1. создаём директорию для игры и заходим в неё:
# mkdir hlds
# cd hlds

1.2. скачиваем с официального сервера Steam бинарник для установки игры (~3.4 Mb):
# wget http://storefront.steampowered.com/download/hldsupdatetool.bin

1.3. даём скачанному файлу hldsupdatetool.bin права на запуск и запускаем его:
# chmod +x hldsupdatetool.bin
# ./hldsupdatetool.bin

1.4. соглашаемся в вывалившимся лицензионным соглашением:
yes

1.5. появилось два файла: steam и readme.txt. файлу steam даём права на запуск и запускаем его на обновление:
# chmod +x steam
# ./steam -command update

1.6. после обновления steam (несколько минут) мы начинаем закачивать файлы дистрибутива CS:Source (~1.01 Gb). это уже на долго:
# ./steam -command update -game «Counter-Strike Source» -dir .

2. настройка.

2.1. в файле server.cfg содержатся все настройки по работе сервера. по-умолчанию этот файл отсутствует. можно написать самому ручками или воспользоваться виндовой утилитой SRCDS CFG Creator.

если ручками, то примерно так:
# nano -w /hlds/cstrike/cfg/server.cfg
содержимое файла server.cfg:
// server name
hostname «название сервера»

// rcon passsword
rcon_password «пароль»

sv_rcon_maxfailures 10
sv_rcon_minfailures 5
sv_rcon_minfailuretime 30
mp_friendlyfire 0
mp_footsteps 1
mp_autoteambalance 1
mp_autokick 0
mp_flashlight 1
mp_tkpunish 1
mp_forcecamera 0
sv_alltalk 0
sv_pausable 1
sv_consistency 1
sv_cheats 0
sv_allowupload 1
sv_allowdownload 1
sv_maxspeed 320
mp_limitteams 2
mp_hostagepenalty 5
sv_voiceenable 1
mp_allowspectators 1
mp_timelimit 15
mp_chattime 2
sv_timeout 65

// round specific cvars
mp_freezetime 6
mp_roundtime 5
mp_startmoney 800
mp_c4timer 45
mp_fraglimit 0
mp_maxrounds 0
mp_winlimit 0
mp_playerid 0
mp_spawnprotectiontime 5

// bandwidth rates/settings
sv_minrate 0
sv_maxrate 0
decalfrequency 10
sv_maxupdaterate 60
sv_minupdaterate 10
log on
sv_logbans 0
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
sv_lan 0
sv_region 3
sv_contact ramer@jabber.ru
bot_quota 6
bot_quota_mode normal
bot_difficulty 1
bot_chatter normal
bot_auto_follow 1
bot_auto_vacate 1
bot_join_after_player 1
bot_defer_to_human 0
bot_allow_rogues 0
bot_walk 0
bot_join_team any
bot_eco_limit 2000
bot_all_weapons
bot_allow_grenades 1
bot_allow_pistols 1
bot_allow_sub_machine_guns 1
bot_allow_shotguns 1
bot_allow_rifles 1
bot_allow_snipers 1
bot_allow_machine_guns 1

// execute ban files
exec banned_user.cfg
exec banned_ip.cfg

2.2. создадим скрипт для более удобного запуска сервера игры:
# nano -w cs-s.sh
содержимое скрипта:
#!/bin/bash
cd /hlds
./srcds_run -autoupdate -game cstrike +maxplayers 16 +map de_dust

3. безопасность.

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

3.1. создадим пользователя и назначим пароль на вход в систему:
# useradd css1
# passwd css1

3.2. теперь создадим на «нейтральной территории» папку для скрипта на запуск нашего боевого игрового сервера, например в папке /home.
# cd /home
# mkdir games
# cd games
# mkdir cs-s

3.3. скопируем скрипт на запуск игры в нашу «безопасную» папку:
# cp /hlds/cs-s.sh /home/games/cs-s/cs-s.sh

3.4. дадим права на запуск скрипта:
# cd /home/games/cs-s
# chmod +x cs-s.sh

3.4. теперь отредактируем файл с правами /etc/sudoers, чтобы пользователь css1 ничего, кроме игрового сервера, запускать не мог. лучше всего для этого использовать visudo:
# visudo
содержимое файла sudoers
User_Alias STANDART_USERS = css1
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the man page for details on how to write a sudoers file.
#
Cmnd_Alias MUSTBE = /home/games/cs-s/cs-s.sh
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
STANDART_USERS ALL = MUSTBE
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

[обратите внимание, что эта штука чертовски чувствительна к пробелам]

3.5. попробуем запустить игровой сервер от имени пользователя css1:
# login css1
$ cd /home/games/cs-s
$ sudo ./cs-s.sh

если всё гуд, то вы увидите лог загружающегося сервера.

3.6. в консоли запущенного сервера можно использовать команды:
version — версия сервера
stats — статистика игры (фпс, юзеры, аптайм. )
status — информация о сервере (ip, порт, хостнэйм, карта. )
exit — выход (рестарт сервера)
killserver — выключение сервера

4. metamod, sourcemod, моды, плагины

чтобы разнообразить игру, сделать её интересней и необычней, а также добавить админку (раз уж сервер ваш, то надо и быть на нём главным со всеми правами), надо ставить моды и плагины.
для начала необходимо поставить metamod. он позволяет запускать несколько модификаций для сервера, в том числе и sourcemod.
sourcemode, главным образом, предназначен для облегчения жизни админам сервера. это удобный, простой, и, вместе с тем, мощный инструмент. всем известная плюшка с наказаниями тимкиллеров всеми возможными способами, включая поджигание или превращение в ходячую бомбу, есть плагин к сурсмоду. конечно, только этим дело не ограничивается, в вашем распоряжении просто уйма стандартных команд и действий. более удобный кик, бан (чем встроенные, в которых вам нужно либо полностью указать ник игрока, либо его ID). вы также можете управлять правами доступа к серверу как различных игроков, так и целых кланов, объединенных одним тегом. создание плагинов является не очень сложной задачей, можно использовать как встроенный скриптовый язык, так и С++.

4.1. ставим sourcemod. на момент написания поста версия была 1.2.4 (скачать). также вам понадобится скачать MetaMod. все эти разработки являются Open-Source и выпускаются под GPL.

4.2. настраиваем для работы. для начала надо настроить MetaMod. распаковывайте архив в папку с сервером, каталог /cstrike.
например, у меня это /opt/server/cs-s/cstrike.
должна появиться папка addons. в неё мы должны поместить файл metamod.vdf, сгенерированный на этой странице.
проделав данные манипуляции, запустим сервер и введем команду meta version, чтобы убедиться, что все сделано правильно.

если всё правильно сделали, вы увидите примерно это:
] meta version
Metamod:Source version 1.7.1
Build ID: 644:f526469efdeb
Loaded As: Valve Server Plugin
Compiled on: Feb 25 2009
Plugin interface version: 10:7
SourceHook version: 4:3
http://www.metamodsource.net/

теперь переходим непосредственно к SourceMod’y. распаковываем в ту же папку, перезапускаем сервер, пишем команду sm version.

если всё правильно сделали, вы увидите примерно это:
] sm version
SourceMod Version Information:
SourceMod Version: 1.2.1
SourcePawn Engine: SourcePawn 1.1, jit-x86 (build 1.2.1)
SourcePawn API: v1 = 4, v2 = 3
Compiled on: May 30 2009 23:59:05
Build ID: 2708:69195a250d70
http://www.sourcemod.net/

4.3. окончательная настройка.
сервер работает, метамод подключен, сурсмод тоже, осталось самое главное — настроить всё это добро под себя и свой сервер.

4.3.1. добавляем админа.
cервером должен кто-то управлять, верно? базовое средство для этого (через rcon) не очень удобно. SourceMod предоставляет следующую схему администрирования и выдачи прав игрокам: вы можете связать определенный набор прав на всевозможные стандартные действия либо с ником игрока (тогда ему придется завести пароль), либо с IP-адресом машины, либо со SteamID нужного нам человека.
для этого необходимо подредактировать файл admins_simple.ini по адресу /cstrike/addons/sourcemod/configs.
на мой взгляд, самым удобным и надёжным является привязка к SteamID (стимайди — ваш уникальный идентификатор в системе стим, узнать его можно открыв в игре консоль и выполнив команду status; это запись вида STEAM_0:1:1234567).
в этот файл (admins_simple.ini) каждый администратор задается отдельной строчкой.

добавьте себя:
# nano -w admins_simple.ini
«ВАШ_SteamID» «99:z»

здесь первое поле — ваш идентификатор (стимайди, айпи, ник), второе поле — уровень иммунитета и права. данная запись означает, что вы обладаете всеми правами (флаг z) и ваш иммунитет = 99. иммунитет — число, эдакая система иерархии между админами. люди с меньшим иммунитетом, чем у вас, не смогут с вами ничего сделать.

примеры строк:
«STEAM_0:1:16» «bce» // основные права, кик, разбан, иммунитета нет
«!127.0.0.1» «5:z» // полный доступ по ip, иммунитет = 5
«BAILOPAN» «abc» «Gab3n» // ник BAILOPAN, пароль»Gab3n»: резервация слота, базовые команды + кик

все возможные флаги доступа:
Описание Флаг Назначение (право на. )
reservation. a. Доступ к резервным слотам.
generic. b. Базовый уровень доступа; обязателен для админов.
kick. c. Кик игроков (выброс с сервера).
ban. d. Бан игроков (запрещение доступа к серверу)
unban. e. Снятие банов.
slay. f. Убить или ранить игроков.
changemap. g. Смена карты
cvar. h. Изменение серверных переменных.
config. i. Выполнять произвольные конфиги на сервере.
chat. j. Доп. действия с чатом.
vote. k. Устраивать голосования и управлять ими.
password. l. Установка пароля на сервер.
rcon. m. Использование команд rcon.
cheats. n. Менять значение sv_cheats и выполнять другие читерские команды.
root. z. Включает все флаги, перечисленные выше ( = полный доступ).

настройки резервации слотов:
sm_reserve_type 0|1|2
0: резервные слоты могут быть заняты только админами и только после заполнения всех свободных слотов. игрок в резервном слоте не может быть автоматически кикнут. при заполнении запасных мест сервер становится полным и для админов, и они тоже не могут приконнектиться. таким образом, на сервер всегда может зайти по крайней мере 1 админ.
1: если кто-то с доступом к резервным слотом пытается зайти на сервер и при этом все свободные слоты заполнены, то кикается игрок либо с самым высоким пингом, либо с самым долгим временем игры, либо случайно. таким образом, резервные слоты практически всегда пустуют, за исключением ситуации, при который сервер забит админами. используйте, если хотите, чтобы определенные люди всегда могли зайти на сервер.
2: аналогично 1, но с ограничением числа админов. как только оно достигнуто, сервер перестает кикать игроков для освобождения слотов и присоединиться к игре может любой.

sm_reserve_slots # количество зарезервированных слотов.

sm_hide_slots 0|1 скрывать или нет резервные слоты в окне поиска серверов. при установленной в 1 опции сервер на 24 человека, из которых 2 места зарезервированы в браузере будет показано, что сервер рассчитан на 22 человека.

sm_reserve_maxadmins # Максимальное число админов на сервере при sm_reserve_type = 2

sm_reserve_kicktype 0|1|2
0: кикается игрок с самым высоким пингом
1: дольше всего находящийся на сервере
2: случайным образом

Источник

How To Install A Counter-Strike Source Server On Ubuntu

In this tutorial we will be covering the process of installing and running a CS:S Game server.

Prerequisites

Getting Started

  1. Update the packages: sudo apt-get update -y && sudo apt-get upgrade -y .
  2. Install these additional libraries: sudo apt-get install lib32gcc1 libc6-i386 .
  3. Add a new user for running the game server: sudo adduser steam (For security purposes).
  4. Login to the new user that we created: su steam .

Downloading SteamCMD

SteamCMD is a free tool created by Valve and used to download Game Server files easily.

  1. As you are logged as the steam user, make sure you’re in /home/steam .
  2. Create a directory for SteamCMD: mkdir SteamCMD .
  3. Navigate to the newly created directory and download the SteamCMD archive: cd steamCMD && wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz .
  4. Extract the archive:tar -xvzf steamcmd_linux.tar.gz .

Running SteamCMD

Now we get to the exciting bit, downloading the actual files that make the game server operate.

  1. Run SteamCMD: ./steamcmd.sh .
  2. Login to Steam servers anonymously: login anonymous .
  3. Set the install directory: force_install_dir ./css/ .
  4. Download the game files: app_update 232330 validate (This may take a while).
  5. Quit the SteamCMD console: quit .

Running the CS:S server

  1. Navigate to the CS:S Installation Directory: cd css
  2. Execute this command to run the server: ./srcds_run -console -game cstrike -maxplayers 20 — port 27015 +map de_dust2 .

Conclusion

Your CS:S server should be up and running! To connect to it use the IP on your Vultr instance.

For an advanced configuration guide refer to the CS:S section on the SteamCMD Wiki. Enjoy!

This concludes our tutorial. Thank you for reading.

Want to contribute?

You could earn up to $600 by adding new articles.

Источник

Читайте также:  Rest сервис java spring boot
Оцените статью