Ошибка при установки Certbot на Ubuntu 20.04 или Nginx на snapd
20.10.2021Media playr KODI в домашних условиях
06.08.2022- Установка сервера CS 1.6 на Linux с помощью steamCMD
- Конфигурация сервера CS 1.6 через файл server.cfg
- Удобный запуск сервера CS 1.6 на Linux
- Запуск во время инициализации системы
- Добавление ботов
Установка сервера CS 1.6 на Linux с помощью steamCMD
Скачать Файл.zip
Клиент Файл.exe
Для создания сервера Counter-Strike 1.6 понадобится сервер с минимум 1 ядром, 1 гигабайтом оперативной памяти и 10 гигабайтами дискового пространства. Само программное обеспечение занимает примерно 2 гигабайта. В этой статье пошагово разберём, как сделать такой сервер.
Доступы и начальные приготовления
Для начала необходимо заказать сервер с перечисленными параметрами. Рекомендуем сделать тут: «Заказать VPS«. В качестве операционной системы используем Debian (или Ubuntu). На дистрибутивах Linux игровые серверы будут работать быстрее, чем на Windows (в подавляющем большинстве случаев все серверы работают на Linux из за его стабильности и меньшем потреблении ресурсов, по сравнения с Windows).
После покупки сервера Вы получите доступы к серверу: логин (root) и пароль. Зайдите на сервер через ssh. Если работаете на windows, то используйте клиент PuTTY. Если вы работаете на дистрибутивах Linux, то откройте консоль и используйте команду «ssh root@ip_адрес_сервера«, чтобы подключиться к серверу с логином root.
После получения доступа к серверу необходимо первым делом выполнить команду для обновления уже установленного программного обеспечения от лица root пользователя и добавить стандартные пакеты:
sudo apt-get update
sudo apt-get -y install htop
sudo apt-get -y install screen
sudo apt-get -y install nano
sudo apt-get -y install sudo
sudo apt-get -y install wget
sudo apt-get -y install gawk
sudo apt-get -y install screen
sudo apt-get -y install qstat
После чего можно приступить к установке 32 разрадной библиотеки, без которой steamcmd не будет работать.
sudo apt install lib32stdc++6
Создание пользователя в Linux
На серверах крайне не рекомендуют запускать игровые (и иные) приложения от лица суперпользователя (root). Потому что при появлении уязвимости в приложении, которое запущено из-под root пользователя, злоумышленник может получить полный доступ к системе. Лучше создать пользователя с меньшими правами и запускать игровой сервер из-под него. Для этого зайдите на сервер через консоль, в учётную запись root. И создайте нового пользователя командой:
sudo useradd -m steam
В нашем случае пользователь будет иметь имя «steam». Ключ «-m» в команде означает, что будет создан домашний каталог /home/steam/.
sudo passwd steam
Теперь введём команду, чтобы перейти из сеанса суперпользователя в пользователя «steam»:
su - steam
Конфигурация сервера CS 1.6 через файл server.cfg
Создадим файл конфигурации сервер с названием «server.cfg» в папке «/home/steam/ReHLDS/cstrike». Теперь откроем файл в текстовом редакторе Nano и вставим в него следующее содержание. Для этого выполним команду:
nano /home/steam/ReHLDS/cstrike/server.cfg
Добавим в содержание файла строку «rcon_password» и изменим название сервера в «hostname»:
hostname "CS.Game.Lisander"
sv_password "" // Пароль для подключения к серверу, если хотите чтобы все вошли на сервер, оставьте это поле пустым
//**************************************** Настройки sv_Значения ****************************************\\
// sv_alltalk "1" // Квар выставлен в game.cfg
// sv_voiceenable "1" // Квар выставлен в VoiceTranscoder.cfg
// sv_voicequality "5" // Квар выставлен в VoiceTranscoder.cfg
// sv_voicecodec "voice_speex" // Квар выставлен в VoiceTranscoder.cfg
rcon_password "ПАРОЛЬ" // Rcon - пароль для управления сервером
sv_rcon_banpenalty "1000" // Время бана в минутах за неправильный ввод rcon пароля 0 - навсегда
sv_rcon_maxfailures 1 // Количество попыток для ввода rcon пароля
sv_rcon_minfailures 1 // Количество попыток для ввода rcon в течении времени заданного sv_rcon_minfailuretime, не успел - бан
sv_rcon_minfailuretime "5" // Время в секундах, для введения верного rcon (первый раз ошибся, на ввод верного пароля есть 30 сек иначе-бан)
sv_lan "0"// Режим LAN - 1, Internet - 0
sv_lan_rate "25000"
sv_airaccelerate "10"
sv_airmove "1"
sv_restart "0" // Значение этого параметра равно секундам, через которые произойдет рестарт (тоже самое что и sv_restartround)
sv_restartround "0" // Значение этого параметра равно секундам, через которые произойдет рестарт (тоже самое что и sv_restart)
sv_stopspeed "75"
sv_allow_dlfile "0"
sv_downloadurl "" // FastDL - Быстрая скачка файлов
sv_allowdownload "1" // Разрешить клиенту скачивать файлы с сервера (1-Да, 0-Нет) (Если у вас стоит "FastDL" то это значение должно быть 0)
sv_allowupload "0" // Разрешить клиенту закачивать файлы на сервер (1-Да, 0-Нет)
sv_timeout "60"
sv_rsdisplay "0"
sv_rsadvertise "0"
sv_footsteps "1"
sv_aim "0"
sv_cheats "0"
sv_unlag "1"
sv_unlagpush "0"
sv_unlagsamples "1"
sv_maxunlag "0.5"
sv_minrate "15000" // Минимальное значение, которое сервер может отправлять каждому клиенту отдельно
sv_maxrate "100000" // Максимальное значение, которое сервер может отправлять каждому клиенту индивидуально
sv_minupdaterate "30" // Минимальная частота отсылки обновлений от сервера к клиенту
sv_maxupdaterate "102" // Максимальная частота отсылки обновлений от сервера к клиенту
sv_instancedbaseline "1" // Инстанс исходных данных. Сохраняет нагрузку на сеть
sv_spectatormaxspeed "500"
sv_maxspeed "320"
sv_rollangle "0"
sv_proxies "1"
sv_region "3"
//**************************************** Настройки mp_Значения ****************************************\\
// mp_timelimit "30" // Квар выставлен в game.cfg
// mp_autoteambalance "1" // Квар выставлен в game.cfg
// mp_buytime "0.25" // Квар выставлен в game.cfg
// mp_fadetoblack "0" // Квар выставлен в game.cfg
mp_autokick "0"
mp_c4timer "35" // Время до взрыва бомбы после её установки (в секундах)
mp_flashlight "1"
mp_footsteps "1"
mp_freezetime "1" // Предварительное время перед началом раунда на закупку (секунды)
mp_friendlyfire "0"
mp_hostagepenalty "0"
mp_limitteams "1"
mp_tkpunish "0"
mp_roundtime "1.75" // Время раунда в % от минуты. 1=60 сек ,75=45 сек - (1.75 = 1мин 45сек)
mp_forcechasecam "0"
mp_forcecamera "0"
mp_kickpercent "0.60"
mp_playerid "1"
mp_startmoney "800"
mp_chattime "5"
mp_consistency "1" // Проверка файлов на стороне клиента
//********************************************* Логи сервера *********************************************\\
log "on" // Режим записи логов (On=Вкл, off=Выкл)
logsdir "logs" // Папка в которой хранятся стандартные LOG файлы HLDS , находится в папке "cstrike"
sv_log_onefile "0" // Запись логов сервера в один файл
sv_log_singleplayer "0" // При активации специальные лог-файлы ведутся в режиме одного игрока
sv_logblocks "0" // Создавать лог в журнале когда запрос заблокирован (Может служить причиной, возникновения Лог файла большого размера) (1=Вкл, 0=Выкл)
sv_logfile "1" // Запись логов сервера в файл (1=Вкл, 0=Выкл)
sv_logsecret "0" // Скрывает логи сервера (1=Вкл, 0=Выкл)
sv_logbans "1" // Записывать в лог баны (1=Вкл, 0=Выкл)
sv_logecho "1" // Показывать информацию из логов сервера в консоль сервера (1=Вкл, 0=Выкл)
sv_logrelay "0" // Переключение лога (1=Вкл, 0=Выкл)
mp_logdetail "3" // Детализация логов, записывать в лог атаки от: 0 - выключено, 1 - противников, 2 - своих, 3 - и от противников и от своих
mp_logmessages "1" // Записывать в Log сообщения из чата (1-Да, 0-Нет)
//***************************************** Остальные настройки *****************************************\\
// logaddress_add "Ип адрес" "Порт"
// logaddress_delall "3"
allow_spectators "1"
mm_insane "1"
sys_ticrate "1100"
exec listip.cfg
exec banned.cfg
developer "0"
pausable "0"
decalfrequency "60" // Время через которое игрок может пользоваться спрэем (в секундах)
//********************************************* ReHLDS Cvars *********************************************\\
listipcfgfile "listip.cfg" // Файл для постоянных ip-банов
syserror_logfile "sys_error.log" // Файл системного журнала ошибок
sv_auto_precache_sounds_in_models "0" // Автоматически подгружать звуки, прикрепленные в моделях (0/1)
sv_delayed_spray_upload "0" // Загружать пользовательские спреи после входа в игру, а не при подключении, увеличивает скорость загрузки (0/1)
sv_echo_unknown_cmd "0" // Выводить в консоль попытки использования неизвестных команд (0/1)
sv_rcon_condebug "1" // Позволяет отключить логирование пароля RCON (0/1)
sv_force_ent_intersection "0" // Исправлять застревание на передвижной платформе, глобальная проблема на DeathrunMod (0/1)
sv_rehlds_force_dlmax "0" // Принудительно выставить клиентский квар cl_dlmax 1024, позволяет избежать чрезмерной фрагментации пакетов (0/1)
sv_rehlds_hull_centering "0" // Устанавливает размер entity по центру (0/1)
sv_rehlds_movecmdrate_max_avg "1500" // Максимальный средний уровень «move» команд для бана (По умолчанию: 400)
sv_rehlds_movecmdrate_max_burst "5000" // Максимальное отклонение уровня «move» команд для бана (По умолчанию: 2500)
sv_rehlds_stringcmdrate_max_avg "250" // Максимальный средний уровень «string» команд для бана (По умолчанию: 80)
sv_rehlds_stringcmdrate_max_burst "500" // Максимальное отклонение уровня «string» команд для бана (По умолчанию: 400)
sv_rehlds_movecmdrate_avg_punish "-1" // Время в минутах, на которое игрок будет забанен, 0 - навсегда, отрицательное число - кикнуть
sv_rehlds_movecmdrate_burst_punish "-1" // Время в минутах, на которое игрок будет забанен, 0 - навсегда, отрицательное число - кикнуть
sv_rehlds_stringcmdrate_avg_punish "-1" // Время в минутах, на которое игрок будет забанен, 0 - навсегда, отрицательное число - кикнуть
sv_rehlds_stringcmdrate_burst_punish "-1" // Время в минутах, на которое игрок будет забанен, 0 - навсегда, отрицательное число - кикнуть
sv_rehlds_send_mapcycle "0" // Отправить mapcycle.txt в сообщении serverinfo, (не используется на клиенте) (0/1)
sv_rehlds_maxclients_from_single_ip "5" // Ограничить количество подключений с одного IP-адреса
sv_use_entity_file "0" // Позволяет использовать свой список энтити для карт. Файл с энтити находится по адресу "maps/[map name].ent" (По умолчанию: 0)
sv_rehlds_local_gametime "0" // Добавлена функция локального игрового времени, которая уменьшает «лаги», если у вас долго запущена одна и та же карта (По умолчанию: 0)
// setinfo поля которые будут переданы клиентам от сервера
// Если keys не установлен, то все поля будут переданы, за исключением приставки с подчеркиванием к примеру _ah
// Каждый ключ должен начинаться на слеш. Например: "\name\model\*sid\*hltv\bottomcolor\topcolor"
// sv_rehlds_userinfo_transmitted_fields
// Исправление ошибки с анимацией ходьбы при увеличеной скорости, когда игрок имеет присоединенные объекты aiments
// Может вызвать отставание анимации, когда cl_updaterate низка (0/1)
sv_rehlds_attachedentities_playeranimationspeed_fix "0"
//******************************************** End ReHLDS Cvars ******************************************\\
Зная пароль, указанный в rcon_password, вы сможете отправлять любую команду на сервер, чтобы управлять процессом игры. К примеру, изменять карту или банить пользователей.
Можно запускать сервер и пытаться подключиться к нему из клиента игры по ip адресу, используя команду в консоли клиент «connect 256.256.256.256» (вместо 256.256.256.256 вставьте ip адрес своего сервера).
Удобный запуск сервера CS 1.6 на Linux
Скачать HLDS launcher:
Файл.zip
Файл hlds открыть NotePad++ или AkelPad (не Блокнотом!) и произвести необходимые настройки — указать IP, port и тд. Там есть комментарии
Далее заливаем в /etc/init.d
Для переноса файла из домашнего каталога:
sudo mv hlds /etc/init.d/
Даем права:
chmod 700 /etc/init.d/hlds
/etc/init.d/hlds start | запускает сервер |
/etc/init.d/hlds stop | останавливает сервер |
/etc/init.d/hlds restart | перезапускает сервер |
/etc/init.d/hlds status | проверяет работоспособность сервера (screen — сессию) |
/etc/init.d/hlds checker | проверяет работоспособность сервера (qstat) |
/etc/init.d/hlds console | выводит консоль сервера |
/etc/init.d/hlds update | обновление сервера |
Особенности:
Если серверов несколько, клонируйте скрипты, например hlds1, hlds2 и тд
Запуск во время инициализации системы
Делаем его исполняемым командой:
sudo chmod +x /etc/init.d/hlds
Теперь необходимо добавить его в автозагрузку:
sudo update-rc.d hlds defaults
Скрипт запуститься во время инициализации системы.
Удалить из автозагрузки можно так:
sudo update-rc.d -f hlds remove
Добавление ботов
Скачать Файл.zip и загрузить в каталог:
/home/steam/ReHLDS/cstrike/addons
Заходим в папку /home/steam/ReHLDS/cstrike/addons/metamod, открываем plugins.ini и добавляем строку для:
linux addons/podbot/podbot_mm.so
Настройка плагина
pb_maxbots 16 | максимальное количество ботов на сервере |
pb_bot_join_team «ANY» | к какой команде будут присоединяться боты («ANY», «T», «CT») |
pb_skin 5 | скин ботов (1, 2, 3, 4; 5 — случайный скин) |
pb_spray 1 | разрешает ботам рисовать лого |
pb_ffa 0 | поддержка режима FFA CSDM-мода |
pb_firsthumanrestart 1 | делает рестарт после подключения первого игрока |
pb_shootthruwalls 1 | позволяет ботам стрелять через стены на «звук» |
pb_numfollowuser 5 | максимальное число ботов, которые смогут отозваться на радио команду «Follow Me» |
pb_minbotskill 95 | минимальный скилл ботов (1-99) |
pb_maxbotskill 100 | максимальный скилл ботов (2-100) |
pb_maxweaponpickup 10 | максимальное количество оружия, которое сможет поднять бот за раунд |
pb_mapstartbotdelay 10 | через сколько секунд после загрузки карты добавятся боты |
pb_autokill 0 | возможность автоубийства ботов, если все игроки мертвы |
pb_autokilldelay 45 | через сколько секунд после смерти последнего игрока будет произведён autokill ботов |
pb_maxcamptime 30 | максимальное время, которое бот сможет сидеть в одном месте |
pb_detailnames 1 | эта настройка регулирует вид имени бота: 1 — [POD] Neuromancer (99) 2 — [POD] Neuromancer 3 — Neuromancer (99) 0 — Neuromancer |
pb_chat 1 | позволяет ботам пользоваться чатом |
pb_latencybot 0 | надпись «BOT» вместо пинга (0 — off, 1 — on, 2 — fake ping) |
pb_radio 1 | позволяет ботам пользоваться радио командами |
pb add 100 | эта команда добавляет бота на сервер (100 — скилл бота) |
bind «=» «pb menu» или bind «=» «amx_pbmenu» | назначает клавишу для открытия подбот меню |
botchat.txt Файл.zip — Здесь можно поменять фразы чата для ботов.
botnames.txt — Здесь можно поменять имена ботам.
После того как вас убьют боты будут умирать сами. В файле podbot.cfg поменять значения:
pb_autokill 1
pb_autokilldelay 10
pb_detailnames 3
pb_latencybot 1
pb_chat 0
Добавляем меню ботов на сервер
Скачать Файл.zip и загрузить в каталог:
/home/steam/ReHLDS/cstrike/addons/amxmodx/scripting
Добавляем в /home/steam/ReHLDS/cstrike/addons/amxmodx/configs/plugins.ini
строку:
amxx_podbotmenu.amxx ;Бот меню
Затем необходимо перекомпилировать плагины
Обращаем перед этим внимание на файлы:
/home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/hud_adverts.sma
/home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/spect_bot.sma
/home/steam/ReHLDS/cstrike/addons/amxmodx/configs/adverts.ini
/home/steam/ReHLDS/cstrike/addons/amxmodx/data/lang/aes.txt
Затем выполняем в консоли:
sudo chmod +x /home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/compile.sh
sudo chmod +x /home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/amxxpc
cd /home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/
sudo ./compile.sh
Переносим скомпилированные файлы из /home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/compiled/hud_adverts.amxx
/home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/compiled/spect_bot.amxx
/home/steam/ReHLDS/cstrike/addons/amxmodx/scripting/compiled/amxx_podbotmenu.amxx
В категорию
/home/steam/ReHLDS/cstrike/addons/amxmodx/plugins
Даем права на файлы:
sudo chmod +x /home/steam/ReHLDS/hlds_linux
sudo chmod +x /home/steam/ReHLDS/hlds_run
Косметика
Замена изображения при старте:
/home/steam/ReHLDS/cstrike/motd.txt
Команды добавления меню Админа и Ботов
setinfo "_pw" "password" // "password" – пароль администратора в users.ini
bind "=" "amx_pbmenu" // назначает клавишу для открытия Podbot меню
bind "p" "amxmodmenu" // биндим админку на кнопку