
Здравейте!
Така че, по известните причини, трябва повече време да прекараме вкъщи пред монитора.
При такова положение на нещата трябва да помним дела от отминали дни.
Както вече е ясно от заглавието на тази статия, става въпрос за настройката на Synology NAS в ролята на игрови сървър.
Achtung — в статията има много скрийншотове (скрийншотовете са кликаеми)!
Преди да започнем, ето списък с инструментите, от които ще се нуждаем:
Synology NAS — тук не виждам ограничения, мисля, че всеки ще подхожда, ако нямате планове да държите сървър за 10 000 играчи.
Docker — не са необходими специални умения, достатъчно е образно да разбирате принципа на работа.
LinuxGSM — за това какво представлява LinuxGSM можете да прочетете на официалния сайт https://linuxgsm.com.
Към момента (април 2020) на LinuxGSM са налични 105 игрови сървъра.
Целият списък можете да видите тук https://linuxgsm.com/servers.
Steam — маркет с игри.
Игрови сървър LinuxGSM има интеграция с SteamCMD, т.е. игровият сървър LinuxGSM може да се използва само за игри от Steam.
Инсталация на Docker на Synology NAS
На този етап всичко е просто, влизаме в администраторския панел на Synology, после в „Package centre“, намираме и инсталираме Docker.
Package centre
Стартираме и виждаме приблизително такава картина (при мен този контейнер вече е инсталиран)
Управление на контейнера
След това преминаваме на таба „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
- Конфигурационен файл: \/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



