
Вітаю!
Отже, з усіх відомих причин доводиться більше часу проводити вдома перед монітором.
За такого стану справ доводиться згадувати справи давно минулих днів.
Як уже ясно з назви цієї статті, мова йтиме про налаштування Synology NAS у ролі ігрового сервера.
Achtung - У статті багато скріншотів (скриншоти клікабельні)!
Перед тим як приступити, ось список інструментів, які нам знадобляться:
- Тут обмежень я не бачу, думаю підійде будь-який, якщо немає планів тримати сервер на 10к гравців.
- особливих навичок не потрібно, досить образно розуміти принцип роботи.
— про те, що являє собою LinuxGSM можна почитати на оф. сайті .
На даний момент (квітень 2020) на LinuxGSM доступно 105 ігрових серверів.
Весь список можна переглянути тут .
- Маркет з іграми.
Ігровий сервер LinuxGSM має інтеграцію з , тобто ігровий сервер 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 це ) і використовуємо наступну команду:
ssh user_name@IPУ моєму випадку це виглядає так
ssh admin@192.168.0.166 IP адреса 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"
Переходимо на сторінку інструкцією «Counter-Strike» .
У вкладці «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 start Multiple IP address 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 Детальна інформація про сервер
Із важливих параметрів варто зазначити:
- 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 змінних можна переглянути тут
Також швидше за все буде необхідність встановити додаткові карти, наприклад «fy_pool_day».
Всі карти для CS 1.6 знаходяться тут:
~/serverfiles/cstrike/mapsЗнаходимо потрібну карту, завантажуємо прямо на сервер (якщо в архіві, розархівуємо), переміщуємо файл з розширенням ".bsp" до папки з файлами "~/serverfiles/cstrike/maps" і перевантажуємо сервер.
~./csserver restartДо речі, всі доступні команди сервера можна переглянути так
~./csserverПідсумок
Я задоволений результатом. Все працює швидко та не кладе.
LinuxGSM має багато додаткових налаштувань, наприклад, інтеграцію c Telegram та Slack для оповіщень, але деякий функціонал ще потребує доопрацювань.
Загалом рекомендую до використання!
Джерела
UPD
як зауважив не всі Synology NAS можуть у Docker, ось список пристроїв які можуть .
Джерело: habr.com
