
Приветствую!
Итак, по всем известным причинам приходится больше время проводить дома перед монитором.
При таком положении дел приходится вспоминать дела давно минувших дней.
Как уже ясно из названия этой статьи, речь пойдет о настройке 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» копируем код c 2-го шага (1-й шаг пропускаем, пользователь «test» уже есть):
Install
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 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 переменных можно посмотреть тут
Так же скорее всего будет необходимость установить дополнительные карты, например «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
