
Приветствам ви!
Така че, поради всички известни причини, трябва да прекарваме повече време у дома пред монитора.
При тази ситуация трябва да си спомним за нещата от миналото.
Както вече е ясно от заглавието на тази статия, ще говорим за настройване на Synology NAS като игрови сървър.
Achtung — статията съдържа много скрийншотове (скрийншотовете са кликаеми)!
Преди да започнем, ето списък на инструментите, които ще ни трябват:
Synology NAS — тук нямам ограничения, мисля, че всякакво ще свърши работа, ако нямате планове да държите сървър за 10к играчи.
Docker — не са необходими специални умения, достатъчно е да се разбира принципът на работа.
LinuxGSM — за това какво представлява LinuxGSM можете да прочетете на официалния сайт. https://linuxgsm.com.
Към момента (април 2020) в LinuxGSM са налични 105 игрови сървъра.
Целият списък можете да видите тук https://linuxgsm.com/servers.
Steam — маркет за игри.
Игрови сървър LinuxGSM има интеграция с SteamCMD, тоест игровият сървър LinuxGSM може да се използва само за игри от Steam.
Инсталиране на Docker на Synology NAS
На този етап е лесно, преминаваме в администраторския панел на Synology, след това в „Package center“, намираме и инсталираме Docker.
Package center
Стартиране и виждаме приблизително такава картина (аз вече имам инсталиран този контейнер)
Управление на контейнера
След това преминаваме в таба „Registry“, пишем в търсенето „gameservermanagers“, избираме образа „gameservermanagers/linuxgsm-docker“ и натискаме бутона „Download“.
gameservermanagers/linuxgsm-docker
След това преминаваме в таба „Image“, изчакваме да завърши изтеглянето на образа и натискаме бутона „Launch“.
Изтегляне на образа
В отворения прозорец трябва да преминем в „Advanced Settings“, след това в таба „Network“ и да отбележим отметката „Use the same network as Docker Host“.
Останалите настройки, например, такива като „Container Name“, променяме по желание.
Container Name — както не е трудно да се досетите, това е името на контейнера, то ще е полезно по-късно. Препоръчвам да го наречете лаконично, за пример нека бъде „test“.
След това натискаме бутона „Apply“ или „Next“ няколко пъти, докато завършим настройката.
Advanced Settings
Преминаваме в таба „Container“ и виждаме новосъздадения (ако не, стартираме) контейнер.
Тук можете да го спирате, стартирате, изтривате и извършвате други действия.
Настройка на Docker контейнера LinuxGSM
Преди да се свържете с Synology NAS чрез SSH, трябва да активирате самия SSH достъп в администраторския панел.
Свързване чрез SSH
Следва да използвате вътрешен IP адрес Synology NAS сървър за свързване чрез SSH.
Преминаваме в терминал (или друг аналог, например под Windows това е PuTTY) и използваме следната команда:
ssh user_name@IPВ моят случай това изглежда така
ssh admin@192.168.0.166IP адрес на Synology NAS сървъра
След авторизацията трябва да изпълните команда за влизане в контейнера "test" (полето "Container Name" в настройките на Docker) като потребител "root"
sudo docker exec -u 0 -it test bashСвързване с Docker
Преди самата инсталация на "LinuxGSM" трябва да извършим някои действия.
Натискаме парола за потребител "root"
passwdСлед това актуализираме всички пакети
apt update && apt upgrade && apt autoremoveОчакваме завършване на процеса…
Актуализиране на пакетите
След това инсталираме нужните утилити
apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-fullПонеже, под "root" не е най-добрата идея да се извършват различни действия, добавяме нов потребител "test".
adduser testИ разрешаваме на новия потребител да използва "sudo"
usermod -aG sudo testПревключваме се на новия потребител "test"
su testИнсталация и настройка на LinuxGSM
Нека разгледаме пример за настройка на LinuxGSM с "Counter-Strike", известен още като "CS 1.6" https://linuxgsm.com/lgsm/csserver
Преминаваме на страницата с инструкции за "Counter-Strike" linuxgsm.com/lgsm/csserver.
В раздела "Dependencies" копираме кода за "Ubuntu 64-bit".
Към момента на написването на статията този код изглежда така:
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install mailutils postfix curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux lib32gcc1 libstdc++6 lib32stdc++6 steamcmd
Инсталиране на зависимости
По време на инсталацията трябва да се съгласим с "Steam License":
Steam License
Преминаваме в раздел "Install" и копираме кода от стъпка 2 (стъпка 1 пропускаме, потребител "test" вече съществува):
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
Очакваме изтеглянето:
Изтегляне
И стартираме инсталацията:
./csserver installАко всичко е минало гладко, ще видим желаното "Install Complete!"
Install Complete!
Стартиране… и виждаме грешка "Multiple IP addresses found."
./csserver startMultiple IP addresses found
Следва да укажем на сървъра кой IP да използва.
В моят случай това е:
192.168.0.166Преминаваме в папка, чийто път е бил в съобщението под "location":
cd /home/test/lgsm/config-lgsm/csserverИ проверяваме какви файлове има в тази папка:
lsСписък на файловете в папката csserver
Копираме съдържанието на файла "_default.cfg" в файла "csserver.cfg":
cat _default.cfg >> csserver.cfgИ влизаме в режим на редактиране на файла "csserver.cfg":
nano csserver.cfgРедактиране на файла csserver.cfg
Намираме реда:
ip="0.0.0.0"И заменяме IP адреса, който беше предложен, в моя случай това е «192.168.0.166».
Получава се нещо такова:
ip="192.168.0.166"Натискаме комбинацията от клавиши:
Ctr + XИ след предложението за запазване натискаме:
YВръщаме се в папката на потребителя «test»:
cd ~И отново опитваме да стартираме сървъра. Сега сървърът трябва да се стартира без проблеми:
./csserver startСтартиране на сървъра
За да видим по-подробна информация, използваме командата:
./csserver detailsПодробна информация за сървър
От важните параметри си струва да се отбележи:
- Server IP: 192.168.0.166:27015
- Internet IP: xxx.xx.xxx.xx:27015
- Config file: /home/test/serverfiles/cstrike/csserver.cfg
На този етап игровият сървър вече е достъпен в локалната мрежа.
Настройка на IP адреса за пренасочване
Играенето по локална мрежа е хубаво, но играенето с приятели през интернет е по-добре!
За пренасочване на IP адреса, който рутерът е получил от доставчика, използваме механизма NAT.
Също така е уместно да се отбележи, че повечето доставчици използват динамични IP адреси за своите клиенти.
За удобство и стабилност на работата е препоръчително да се получи статичен IP адрес.
Тъй като имам рутер «TP-Link Archer C60», давам пример за настройка на пренасочване, както е реализирано в моя рутер.
За други рутери предполагам, че настройката на пренасочването е организирана по подобен начин.
Тук всичко е просто — необходимо е да се зададе пренасочване от външния IP адрес към вътрешния IP адрес на сървера за два порта:
- 27015
- 27005
В админ панела на моя рутер това изглежда така
Админ панел на рутера
Ето и всичко, след запазване на настройките на рутера, игровият сървър ще бъде достъпен в мрежата по външния IP адрес за указаните портове!
Допълнителни настройки на примера CS 1.6
На примера CS 1.6 бих искал да дам няколко полезни съвета.
Има два файла за конфигурация на сървера
Първият се намира тук:
~ /lgsm/config-lgsm/csserver/csserver.cfgВторият се намира тук:
~ /serverfiles/cstrike/csserver.cfgПървият файл съдържа общи настройки, като IP адрес, карта за първоначално стартиране на сървера и т.н.
Вторият файл съдържа настройки на команди, които могат да бъдат извършвани през конзолата на «Counter-Strike», например «rcon_password» или «sv_password».
Във втория файл препоръчвам да се зададе парола за свързване към сървера чрез CVar «sv_password» и парола за управление от конзолата на самия сървър чрез CVar «rcon_password».
Списък на всички CVar променливи може да се види тук http://txdv.github.io/cstrike-cvarlist
Вероятно, также будет необходимо установить дополнительные карты, например, «fy_pool_day».
Всички карти за CS 1.6 са тук:
~\/serverfiles\/cstrike\/mapsНамираме необходимата карта, качваме я директно на сървера (ако е в архив, я разархивираме), преместваме файла с разширение «.bsp» в папката с файлове «~\/serverfiles\/cstrike\/maps» и рестартираме сървера.
~.\/csserver restartМежду другото, всички налични команди на сървера могат да се видят така
~.\/csserver
Резюме
Доволен съм от резултата. Всичко работи бързо и няма забавяне.
LinuxGSM предлага много допълнителни настройки, например интеграция с Telegram и Slack за уведомления, но някои функции все още изискват доработка.
В общи линии, препоръчвам да се използва!
Източници
https://linuxgsm.com
https://docs.linuxgsm.com
https://digitalboxweb.wordpress.com/2019/09/02/serveur-counter-strike-go-sur-nas-synology
https://medium.com/@konpat/how-to-host-a-counter-strike-1-6-game-on-linux-full-tutorial-a25f20ff1149
http://txdv.github.io/cstrike-cvarlist
UPD
Както забеляза centralhardware не всички Synology NAS поддържат Docker, ето списък на устройствата, които могат. https://www.synology.com/ru-ru/dsm/packages/Docker.
Източник: habr.com



