Установка сервера Garry's Mod на Linux
В данном инструкции мы расскажем как установить сервер игры Garry's Mod на голый диструбутив Linux (CentOS/Debian/Ubuntu).
Рекомендуемые операционные системы Linux
- Ubuntu 16.04 LTS
- Debian 8
- Fedora latest release
- CentOS 7
Содержание
Первичная настройка Linux
Вы заказали на MyArena сервер, выбрали и установили операционную систему, что же делать дальше? Прежде чем перейти к установке сервера игры, нам потребуется провести предварительную настройку Linux.
1. Скачиваем и устанавливаем программу PuTTY себе на компьютер, что бы могли подключиться к серверу.
- Запускаем программу, открываем вкладку Window, переходим в Translation и в меню Remote character set выбираем UTF-8.
- Возвращаемся во вкладку Session. В Host Name указываем IP адрес вашего сервера, ниже в Saved Sessions придумайте имя подключения и нажмите на кнопку Save.
- Подключаемся к серверу.
2. Обновление операционной системы. Данный процесс займет продолжительное время и будет запрашивать подтверждения действий.
Для Debian/Ubuntu x64 apt update apt upgrade Для CentOSx64 yum update
3. Установка кодировки UTF-8 в операционной системе.
Для Debian/Ubuntux64 dpkg-reconfigure locales Нужная нам кодировка под номером 146, перелистываем список клавишей enter, после чего указываем номер кодировки и подтверждаем цифрой 3. Для CentOSx64 Установка localectl set-locale LANG=en_US.UTF-8 Проверка localectl status
4. Установка дополнительных библиотек, при использование 64 битной операционной системы
Для Debian/Ubuntux64 apt install glibc libstdc++ ncurses-libs Для CentOSx64 yum install glibc libstdc++ ncurses-libs
- Перезапускаем сервер
5. Установка дополнительных программ.
- Установка текстового редактора Nano
Для Debian/Ubuntu x64 apt install nano Для CentOS yum install nano Устанавливаем редактор Nano по умолчанию echo 'export EDITOR=nano' >> ~/.bashrc
- Установка Screen
- Screen создает отдельные объекты, очень похоже на окна, которое можно свернуть или развернуть, если проводить аналогию с графическим интрефейсом. Только вместо окна вы получаете виртуальную консоль, которую можно отправить в фон или вывести на передний план, и в которой запускается указанное приложение.
Для Debian/Ubuntu x64 apt install screen Для CentOS yum install screen
Установка сервера Garry's Mod
1. Создаем нового пользователя с паролем, например gameserver.
Все последующие шаги выполняются под созданным пользователем. Выйти из него можно командой 'exit'
useradd gameserver passwd gameserver qwerty
2. Подключаемся под нового пользователя
su - gameserver Устанавливаем редактор Nano по умолчанию echo 'export EDITOR=nano' >> ~/.bashrc
3. Создаем и переходим в папку, куда будем загружать steamcmd
mkdir steamcmd cd steamcmd
4. Скачиваем архив steamcmd и разархивируем его
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz
5. Запускаем steamcmd.sh. Важно: нужно находиться в папке steamcmd.
./steamcmd.sh
6. Загрузка и установка сервера
Указываем логин, аноним login anonymous Указываем путь куда будет загружен сервер игры Garry's Mod Пример расположения: /home/gameserver/steamcmd/garrysmod/ force_install_dir ./garrysmod/ Загружаем сам сервер app_update 4020 Запуск обновления сервера или проверка на целостность файлов app_update 4020 validate
7. Запуск сервера. После загрузки сервера выходим из steamcmd введя команду 'quit'
Переходим в папку garrysmod cd ./garrysmod/ Пример строчки запуска: ./srcds_run -game garrysmod -port 27015 +maxplayers 32 +gamemode sandbox +map gm_construct Завершить процесс, выключить игровой сервер нажатием клавиш ctrl+c
После этих действий сервер начнет запускаться, вы сможете зайти на него указав ip адрес и порт, например 37.230.228.208:27015
На этом установка сервера почти закончена.
Автоматический запуск игрового сервера после перезапуска VDS
- Под пользователем gameserver прописываем команду crontab -e
@reboot screen -AmdS run_garrysmod /home/gameserver/steamcmd/garrysmod/srcds_run -game garrysmod -port 27015 +maxplayers 32 +gamemode sandbox +map gm_construct
- После этого нажимаем на сочетание клавиш ctrl+x и сохраняем результат
- Чтобы посмотреть, что запущено в скрине наберите screen -ls
- Чтобы посмотреть отдельный скрин screen -x название скрина или его номер.
- Чтобы выйти из выбранного скрина нажмите ctrl+a затем d.
Установка дополнительного игрового контента других игр
Разберем на примере установки дополнительного контента игры Counter-Strike: Source. Проблема данного способа, в том, что придется выкачивать полностью весь сервер игры. После закачки сервера, вы можете удалить лишние папки и файлы, в корне cstrike, но внутри нужно оставить только одну папку с названием cstrike.
- Запускаем ./steamcmd.sh Важно: нужно находиться в папке steamcmd.
Указываем логин, аноним login anonymous Указываем путь куда будет загружен контент Пример расположения: /home/gameserver/steamcmd/garrysmod/cstrike/ force_install_dir ./garrysmod/cstrike/ Загружаем сервер app_update 232330
- Монтируем контент, переходим в папку /garrysmod/cfg/ и открываем файл mount.cfg и прописываем:
"cstrike" "cstrike/cstrike"
- Подключаем контент, в папке /cfg/ открываем файл mountdepots.cfg, если надо прописываем название игры и рядом цифру 1:
"gamedepotsystem" { "hl2" "1" "cstrike" "1" "tf" "1" }
На этом установка сервера и дополнительного контента закончена.
Конфиг Server.cfg
hostname "Новый Сервер от MyArena.ru" // Название сервера. Писать можно как на английском, так и на Русском языках rcon_password "" // Пароль для управления сервером через RCON команды. ВНИМАНИЕ: делайте пароль сложным! sv_password "" // Пароль доступа на сервер sv_defaultgamemode "sandbox" // Игровой режим по умолчанию. Рекомендуется только SandBox. mp_flashlight "0" // 1 - разрешает использовать фонарик; 0 - запрещает mp_timelimit "0" // Время на карте. Рекомендуется 0, т.к. это песочница sv_allowdownload "1" // Возможность скачивать с сервера файлы sv_allowupload "1" // Возможность закачивать на сервер файлы. Например эмблемы decalfrequency "60" // Время до исчезновения декалей в секундах sv_alltalk "1" // Режим работы общего голосового чата. При включении все игроки будут слышать друг друга независимо от команды, в которой они играют sv_pausable "0" // Возможность использования паузы во время игры sv_voiceenable "1" // Режим работы голосового чата в игре sv_rcon_banpenalty "60" // Колличество минут на которое банится игрок пытавшийся подобрать rcon-пароль к серверу sv_rcon_maxfailures "5" // Максимальное колличество попыток при наборе rcon-пароля, после истечения которых игрок будет забанен sv_rcon_minfailures "5" // Колличество попыток при наборе rcon-пароля во время заданное sv_rcon_minfailuretime, после истечения которых игрок будет забанен sv_rcon_minfailuretime "30" // Колличество секунд для определения неверной rcon-аутенфикации sv_maxrate "35000" // Максимально-допустимый предел передачи/приёма байт в секунду между клиентом и сервером sv_mincmdrate "40" // Минимальное количество пакетов в секунду к серверу sv_minrate "15000" // Минимально допустимый предел передачи/приёма байт в секунду между клиентом и сервером sv_minupdaterate "40" // Минимальное количество переданных пакетов в секунду sv_maxupdaterate "100" // Максимальное количество переданных пакетов в секунду sv_maxcmdrate "100" // Максимальное количество пакетов в секунду к серверу sv_client_cmdrate_difference "1" sv_client_predict "1" sv_client_interpolate "1" sv_client_min_interp_ratio "-1" sv_client_max_interp_ratio "-1" sbox_allownpcs "0" // 1 - Разрешить NPC на сервере; 0 - Запретить. // sbox_maxnpcs "0" // Максимальное количество NPC (ботов). Чем выше значение, тем больше лагов sbox_maxballoons "10" // Максимум шариков. Чем выше значение, тем больше лагов sbox_maxdynamite "4" // Максимум динамитов. Чем выше значение, тем больше лагов sbox_noclip "1" // Разрешить использование NoClip при строительстве. sbox_maxthrusters "20" // Максимум Thruster'ов. Чем выше значение, тем больше лагов sbox_maxprops "100" // Максимум пропсов (Props). Чем выше значение, тем больше лагов sbox_maxwheels "20" // Максимум колёс. Чем выше значение, тем больше лагов sbox_plpldamage "1" // 0 - Разрешить игрокам атаковать друг друга sbox_godmode "1" // Управление режимом неуязвимости. 0 - режим выключен. sbox_playergod "0" // 1 - Игрок неуязвим. sbox_maxhoverballs "20" // Максимум Hoverball'ов. Чем выше значение, тем больше лагов sbox_maxsents "20" // Задаёт максимальное количество sent для каждого пользователя на сервере. Чем выше значение, тем больше лагов sbox_maxeffects "10" // Максимум эффектов (effects). Чем выше значение, тем больше лагов sbox_maxbuttons "10" // Максимум обычных кнопок (не Wire). Чем выше значение, тем больше лагов sbox_maxlamps "4" // Максимум ламп и источников света. Чем выше значение, тем больше лагов sbox_maxragdolls "10" // Максимум рэгдоллов. Чем выше значение, тем больше лагов sbox_maxvehicles "4" // Максимум машин. Чем выше значение, тем больше лагов sbox_maxemitters "5" // Максимум эмиттеров. Чем выше значение, тем больше лагов physgun_limited "1" // Лимит на Physgun exec banned_user.cfg exec banned_ip.cfg