Как установить игровой сервер CSGO
Введение
Эта статья посвящена установке и настройке игрового сервера CSGO в системах Linux.Требования
- X86 / x64 совместимая система
- Ubuntu 16.04 LTS
- Установлены
steamcmd
- Сервер CX21 или лучше
Шаг 1 - Подготовка
Создание папки сервера CSGO, в которой будут найдены файлы сервера:mkdir /opt/csgo/
chown steamcmd:steamcmd /opt/csgo/
steamcmd
пользователь.su --shell /bin/bash steamcmd
Шаг 2 - Установка
Загрузите файлы сервера черезsteamcmd
:steamcmd +login anonymous +force_install_dir /opt/csgo/ +app_update 740 +quit
Файл конфигурации сервера CSGO находится по адресу
/opt/csgo/csgo/cfg/server.cfg
. Здесь вы можете отредактировать и вставить образец конфигурации ниже.// ************************************************************************** //
// Counter-Strike: Global Offensive - server.cfg //
// Version 240917 //
// ************************************************************************** //
// .................................. Basic ................................. //
// Hostname - Name of the server.
hostname "SERVERNAME"
// RCON - remote console password.
rcon_password "ADMINPASSWORD"
// Server password - for private servers.
sv_password ""
// Email - Server admin email.
// Example: sv_contact "email@example.com"
sv_contact ""
// LAN mode - If set the server will not show on the internet.
// Default: sv_lan 0
sv_lan 0
// ............................. Server Logging ............................. //
// Enable log - Enables logging to file, console, and udp < on | off >.
// Recommended: log on
log on
// Log bans - Log server bans in the server logs.
// Default: sv_logbans 1
// Recommended: sv_logbans 1
sv_logbans 1
// Log echo - Display log information to the server console.
// Default: sv_logecho 1
// Recommended: sv_logecho 1
sv_logecho 1
// Log file - Log server information in the log file.
// Default: sv_logfile 1
// Recommended: sv_logfile 1
sv_logfile 1
// One file log - Log server information to only one file.
// Default: sv_log_onefile 0
// Recommended: sv_log_onefile 0
sv_log_onefile 0
// Server Hibernation
sv_hibernate_when_empty 1
sv_hibernate_ms 5
// ............................. Server Query ............................. //
// More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691
host_name_store 1
host_info_show 1
host_players_show 2
// ................................ Ban List ................................ //
// User ban - Server banlist based on user steam ID.
// Recommended: exec banned_user.cfg
exec banned_user.cfg
// IP ban - Server banlist based on user IP.
// Recommended: exec banned_ip.cfg
exec banned_ip.cfg
// Write ID - Writes a list of permanently-banned user IDs to banned_user.cfg.
writeid
// Write IP - Save the ban list to banned_ip.cfg.
writeip
Шаг 3 - Администрирование сервера
Для управления (запуска, остановки, обновления) сервера требуется следующий скрипт.Большинство настроек могут быть применены без изменений, только запись
GAMETOKEN
должна быть изменена. Действительный токен сервера должен быть депонирован. Серверные токены можно запросить здесь: https://steamcommunity.com/dev/managegameservers(На низкоэффективных серверах
TICK
запись должна быть сокращена до 64
.)#!/bin/bash
################# SET VARs #################
DIR="/opt/csgo"
SCREENNAME="csgo"
GAMETOKEN=""
TICK=128
GAMETYPE=0
GAMEMODE=1
MAPGROUP="mg_bomb"
MAP="de_dust2"
MAXPLAYER=10
################# DO NOT MODIFY #################
DEAMON="srcds_run"
PARAMS="-game csgo -ip 0.0.0.0 -port 27015 +maxplayers $MAXPLAYER +map $MAP -tickrate $TICK +game_type $GAMETYPE +game_mode $GAMEMODE +mapgroup $MAPGROUP +sv_setsteamaccount $GAMETOKEN"
function start_server {
if [[ `screen -ls | grep $SCREENNAME` ]]; then
echo "The server is already running $SCREENNAME"
else
echo "Starte $SCREENNAME"
if [ -d $DIR ]; then
cd $DIR
screen -d -m -S $SCREENNAME ./$DEAMON $PARAMS
else
echo "The server directory was not specified"
fi
fi
}
function stop_server {
if [[ `screen -ls | grep $SCREENNAME` ]]; then
echo -n "Stoppe $SCREENNAME"
kill `screen -ls | grep $SCREENNAME | awk -F . '{print $1}'| awk '{print $1}'`
echo " ... done."
else
echo "Could not find the screen $SCREENNAME"
fi
}
function update_server {
stop_server
steamcmd +login anonymous +force_install_dir $DIR +app_update 740 +quit
start_server
}
case "$1" in
start)
start_server
;;
stop)
stop_server
;;
restart)
stop_server
start_server
;;
update)
update_server
;;
*)
echo "Usage: $0 (start / stop / update)"
esac
exit 0
/opt/steamcmd/csgo.sh
.После этого должны быть предоставлены разрешения для запуска скрипта:
chmod +x /opt/steamcmd/csgo.sh
/etc/systemd/system/csgo.service
:[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target
[Service]
User=steamcmd
Group=steamcmd
ExecStart=/opt/steamcmd/csgo.sh start
ExecStop=/opt/steamcmd/csgo.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
. Теперь сервер CSGO может быть запущен или остановлен с помощью systemctl start csgo
и systemctl stop csgo
.Для настройки автоматического обновления сервера необходима следующая запись в
crontab -e
:0 4 * * * systemctl stop csgo && su --shell /bin/bash steamcmd -c "/opt/steamcmd/csgo.sh update" && systemctl start csgo >/dev/null 2>&1
Поиск проблемы
Если при подключении возникнут проблемыscreen
, вы увидите следующую ошибку:Cannot open your terminal '/dev/pts/0' - please check.
script /dev/null
screen
снова возможно соединение с сеансом.
Комментариев 0