Counter Strike Server 1.6 под FreeBSD, Debian 6.0

#1 2012.08.31 07:37:18

0

Данная статья описывает установку Counter Strike Server 1.6 на сервера с операционными системами Linux и FreeBSD.

Для установки нам понадобится:
сервер с Linux или FreeBSD
wget
screen (для запуска сервера в screen сессии)
HldsUpdateTool
Создадим директорию для дальнейших работ:
mkdir /usr/hlds
chown -R user:user /usr/hlds && cd /usr/hlds

Скачиваем HldsUpdateTool
wget https://www.steampowered.com/download/hldsupdatetool.bin

Запускаем HldsUpdateTool
chmod a+x hldsupdatetool.bin
./hldsupdatetool.bin

После запуска появится файл steam, запускаем его и ждем пока загрузятся обновления
./steam

Загружаем CS Server
./steam -command update -game "cstrike" -dir.

Для FreeBSD необходимо будет установить совместимость с Linux:
make -C /usr/ports/emulators/linux_base-fc4/ install clean

и добавить запуск для установленных приложений и настройку системы:
echo "linux_load="yes"">> /boot/loader.conf
echo "linprocfs_load="yes"" >> /boot/loader.conf
echo "linux_enable="YES"" >> /etc/rc.conf
echo "kern.fallback_elf_brand=3" >> /etc/sysctl.conf
echo "kern.ipc.maxsockbuf=524288" >> /etc/sysctl.conf
echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab


Создаем или скачиваем файл конфигурации, если он не существует:
cd /usr/hlds/cstrike && touch server.cfg

Пример конфигурации смотри ниже
На данный момент у нас установлен сервер с поддержкой протокола 48, что может не позволить зайти в игру клиентам с отсутствием поддержки данного протокола. Для решения этой проблемы необходимо установить мод dproto.


Качаем Metamod отсюда http://www.metamod.org и устанавливаем:
mkdir -p /usr/hlds/cstrike/addons/metamod/dlls
mv metamod-1.19-linux.tar.gz /usr/hlds/cstrike/addons/metamod/dlls && cd
/usr/hlds/cstrike/addons/metamod/dlls
tar -xzf metamod-1.19-linux.tar.gz

Правим файл cstrike/liblist.gam:
vi /usr/hlds/cstrike/liblist.gam
ищем строки
secure 1 и gamedll_linux "dlls/cs_i386.so"
и меняем соответственно на
secure 0 и gamedll_linux "addons/metamod/dlls/metamod_i386.so"

Ставим мод dproto:
mkdir /usr/hlds/cstrike/addons/dproto
мод можно скачать отсюда https://www.amxserv.net/downloads.php?page_id=442
mv dproto.zip /usr/hlds/cstrike/addons/dproto && cd /usr/hlds/cstrike/addons/dproto
unzip dproto.zip
mv dproto.cfg /usr/hlds/cstrike


Создаем файл с подключаемыми плагинами в директории Metamod:
cd /usr/hlds/cstrike/addons/metamod && touch plugins.ini

Подключаем dproto:
[img]vi plugins.ini
прописываем в файл linux addons/dproto/dproto_i386.so[/img]

Для дальнейших действий создадим пользователя user и будем выполнять действия в его сессии

Запускаем сервер:
./hlds_run -game cstrike +ip YOURIP +port 27015 +maxplayers 18 +sv_lan 1 -insecure -noipx +map
de_dust2 -console


Запустить сервер в фоновом режиме без привязки к ssh сессии можно так:
screen -AmdS hlds ./hlds_run -game cstrike +ip YOURIP +port 27015 +maxplayers 18 +sv_lan 1 -insecure -noipx +map de_dust2 -console
Теперь подключиться к сессии screen с запущенным сервером можно так
screen -dr hlds

Пример файла конфигурации:
hostname “Server Name”
mp_autokick 0
mp_autocrosshair 0
mp_autoteambalance 0
mp_buytime 2
mp_consistency 1
mp_c4timer 35
mp_flashlight 1
mp_freezetime 3
mp_roundtime 3
mp_startmoney 800
mp_timelimit 35
mp_tkpunish 0
mp_winlimit 0
sv_aim 0
sv_airaccelerate 10
sv_airmove 1
sv_allowdownload 1
sv_clienttrace 1.0
sv_clipmode 0
sv_allowupload 1
sv_cheats 0
sv_gravity 800
sv_lan 1
sv_maxrate 7000
sv_maxspeed 320
sv_maxupdaterate 101
sys_ticrate 10000
decalfrequency 60
pausable 0
log on
decalfrequency 60
edgefriction 2
Отредактировано: Panda 2022.08.04 11:05:38
#2 2012.08.31 19:28:17

0

Данный Мануал по созданию сервера подойдет и для Linux Debian 6.0, предлагаю изменить тему:)
#3 2012.09.01 06:16:09

0

Тема подправлена.
#4 2012.09.01 17:59:21

0

Так же предлагаю добавить в данный мануал, рекомендуемые параметры для сервера:

rate 25000
sv_maxupdaterate 101
sv_minrate 25000
sv_rminupdateate 20


Для КС клиента лучше всего использовать:

rate 25000
cl_updaterate 101
cl_cmdrate 101
cl_rate 9999


Многие начинающие владельцы серверов задают вопросы, как можно увеличть ФПС сервера, так вот это можно будет сделать следующим образом:

Отрываем файл server.cfg и добавляем туда следующее:

sys_ticrate 1200 - Это позволит сделать 1000 FPS на сервере.

Так же в строке запуска нужно добавить -pingboost 3. Хочу сразу подметить, что если слабое Оборудование, то не стоит запускать с данным параметром, так как будет очень большая нагрузка на оборудование.

Думаю будет полезная данная информация, для начинающих Владельцев серверов. :yes: Следующию тему посвящю о Защите сервера, от взломов и DoS атак, как можно будет защитится от этого, если администрация одобрит тему :blush:
Отредактировано: 2012.09.01 18:35:57
#5 2012.10.26 19:24:15

0

Сейчас как я понял, на новом билде, одна штукенция есть, когда запускаешь скрипт включения сервера, то можно заметить следующее

root@uralservers:/opt/server# ./hlds_run -game cstrike -nomaster +ip 176.31.44.25 +maxplayers 10 +port 27015 +map de_dust
Auto detecting CPU
Using Pentium II Optimised binary.
Auto-restarting the server on crash

Console initialized.
Using breakpad crash handler
Setting breakpad minidump AppID = 10
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Installing breakpad exception handler for appid(10)/version(5447)
scandir failed:/opt/server/SAVE
scandir failed:/opt/server/./valve/SAVE
scandir failed:/opt/server/./platform/SAVE
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 14:06:24 Sep 23 2011 (5447)
STEAM Auth Server
Server IP address 176.31.44.25:27015
scandir failed:/opt/server/SAVE
scandir failed:/opt/server/./valve/SAVE
scandir failed:/opt/server/./platform/SAVE
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Master server communication disabled.

couldn"t exec listip.cfg
couldn"t exec banned.cfg
ipcserver.cpp (956) : Assertion Failed: FD_ISSET( fd, (fd_set *)m_pfdset )
Assert( Assertion Failed: FD_ISSET( fd, (fd_set *)m_pfdset ) ):/home/VALVE/alfred/valve/steam3_rel_client/src/clientdll/../common/ipcserver.cpp:956

CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 0 single object sleeps, 0 multi object sleeps
CAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps
scandir failed:/opt/server/SAVE
scandir failed:/opt/server/./valve/SAVE
scandir failed:/opt/server/./platform/SAVE
Uploading dump (in-process) [proxy ""]
/tmp/dumps/crash_20120617135552_1.dmp
threadtools.cpp (2624) : Assertion Failed: Tried to create a thread that has already been created!
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Master server communication disabled.

success = yes
response: CrashID=bp-79f59cd2-bfef-40ff-902b-efe4b2120617

Segmentation fault



Оказывается в стандартом файле server.cfg, разработчики в конце прописали уже карту +de_dust
Когда я убрал в скрипте запуска +de_dust, то все прекрасно заработало!

Думаю, это нужно учесть =)
Отредактировано: 2012.10.26 20:13:44