Перетворення Synology NAS на ігровий сервер

Перетворення Synology NAS на ігровий сервер

Вітаю!

Отже, з усіх відомих причин доводиться більше часу проводити вдома перед монітором.
За такого стану справ доводиться згадувати справи давно минулих днів.

Як уже ясно з назви цієї статті, мова йтиме про налаштування Synology NAS у ролі ігрового сервера.

Achtung - У статті багато скріншотів (скриншоти клікабельні)!

Перед тим як приступити, ось список інструментів, які нам знадобляться:

Синологія НАН України - Тут обмежень я не бачу, думаю підійде будь-який, якщо немає планів тримати сервер на 10к гравців.

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Перетворення 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 address 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 на ігровий сервер
Із важливих параметрів варто зазначити:

  • 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 має багато додаткових налаштувань, наприклад, інтеграцію c 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