Превръщане на Synology NAS в игрови сървър

Превръщане на Synology NAS в игрови сървър

Приветствам ви!

Така че, поради всички известни причини, трябва да прекарваме повече време у дома пред монитора.
При тази ситуация трябва да си спомним за нещата от миналото.

Както вече е ясно от заглавието на тази статия, ще говорим за настройване на 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Превръщане на Synology NAS в игрови сървър
Стартиране и виждаме приблизително такава картина (аз вече имам инсталиран този контейнер)

Управление на контейнераПревръщане на Synology NAS в игрови сървър
След това преминаваме в таба „Registry“, пишем в търсенето „gameservermanagers“, избираме образа „gameservermanagers/linuxgsm-docker“ и натискаме бутона „Download“.

gameservermanagers/linuxgsm-dockerПревръщане на Synology NAS в игрови сървър
След това преминаваме в таба „Image“, изчакваме да завърши изтеглянето на образа и натискаме бутона „Launch“.

Изтегляне на образаПревръщане на Synology NAS в игрови сървър
В отворения прозорец трябва да преминем в „Advanced Settings“, след това в таба „Network“ и да отбележим отметката „Use the same network as Docker Host“.

Останалите настройки, например, такива като „Container Name“, променяме по желание.
Container Name — както не е трудно да се досетите, това е името на контейнера, то ще е полезно по-късно. Препоръчвам да го наречете лаконично, за пример нека бъде „test“.

След това натискаме бутона „Apply“ или „Next“ няколко пъти, докато завършим настройката.

Advanced SettingsПревръщане на Synology NAS в игрови сървър
Преминаваме в таба „Container“ и виждаме новосъздадения (ако не, стартираме) контейнер.
Тук можете да го спирате, стартирате, изтривате и извършвате други действия.

Стартиране на контейнераПревръщане на Synology NAS в игрови сървър

Настройка на Docker контейнера LinuxGSM

Преди да се свържете с Synology NAS чрез SSH, трябва да активирате самия SSH достъп в администраторския панел.

Свързване чрез SSHПревръщане на Synology NAS в игрови сървър
Следва да използвате вътрешен IP адрес Synology NAS сървър за свързване чрез SSH.

Преминаваме в терминал (или друг аналог, например под Windows това е PuTTY) и използваме следната команда:

ssh user_name@IP

В моят случай това изглежда така

ssh admin@192.168.0.166

IP адрес на Synology NAS сървъраПревръщане на Synology NAS в игрови сървър
След авторизацията трябва да изпълните команда за влизане в контейнера "test" (полето "Container Name" в настройките на Docker) като потребител "root"

sudo docker exec -u 0 -it test bash

Свързване с DockerПревръщане на Synology NAS в игрови сървър
Преди самата инсталация на "LinuxGSM" трябва да извършим някои действия.

Натискаме парола за потребител "root"

passwd

След това актуализираме всички пакети

apt update && apt upgrade && apt autoremove

Очакваме завършване на процеса…

Актуализиране на пакетитеПревръщане на Synology NAS в игрови сървър
След това инсталираме нужните утилити

apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-full

Понеже, под "root" не е най-добрата идея да се извършват различни действия, добавяме нов потребител "test".

adduser test

И разрешаваме на новия потребител да използва "sudo"

usermod -aG sudo test

Превключваме се на новия потребител "test"

su test

Инсталиране на утилитиПревръщане на Synology NAS в игрови сървър

Инсталация и настройка на 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

Инсталиране на зависимостиПревръщане на Synology NAS в игрови сървър
По време на инсталацията трябва да се съгласим с "Steam License":

Steam LicenseПревръщане на Synology NAS в игрови сървър
Преминаваме в раздел "Install" и копираме кода от стъпка 2 (стъпка 1 пропускаме, потребител "test" вече съществува):

ИнсталирайтеПревръщане на Synology NAS в игрови сървър

wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver

Очакваме изтеглянето:

ИзтеглянеПревръщане на Synology NAS в игрови сървър
И стартираме инсталацията:

./csserver install

Ако всичко е минало гладко, ще видим желаното "Install Complete!"

Install Complete!Превръщане на Synology NAS в игрови сървър
Стартиране… и виждаме грешка "Multiple IP addresses found."

./csserver start

Multiple IP addresses foundПревръщане на Synology NAS в игрови сървър
Следва да укажем на сървъра кой IP да използва.

В моят случай това е:

192.168.0.166

Преминаваме в папка, чийто път е бил в съобщението под "location":

cd /home/test/lgsm/config-lgsm/csserver

И проверяваме какви файлове има в тази папка:

ls

Списък на файловете в папката csserverПревръщане на Synology NAS в игрови сървър
Копираме съдържанието на файла "_default.cfg" в файла "csserver.cfg":

cat _default.cfg >> csserver.cfg

И влизаме в режим на редактиране на файла "csserver.cfg":

nano csserver.cfg

Редактиране на файла csserver.cfgПревръщане на Synology NAS в игрови сървър
Намираме реда:

ip="0.0.0.0"

И заменяме IP адреса, който беше предложен, в моя случай това е «192.168.0.166».

Получава се нещо такова:

ip="192.168.0.166"

Натискаме комбинацията от клавиши:

Ctr + X

И след предложението за запазване натискаме:

Y

Връщаме се в папката на потребителя «test»:

cd ~

И отново опитваме да стартираме сървъра. Сега сървърът трябва да се стартира без проблеми:

./csserver start

Стартиране на сървъраПревръщане на Synology NAS в игрови сървър
За да видим по-подробна информация, използваме командата:

./csserver details

Подробна информация за сървърПревръщане на Synology NAS в игрови сървър
От важните параметри си струва да се отбележи:

  • 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

В админ панела на моя рутер това изглежда така

Админ панел на рутераПревръщане на Synology NAS в игрови сървър
Ето и всичко, след запазване на настройките на рутера, игровият сървър ще бъде достъпен в мрежата по външния 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster