
Witam!
Z powodu powszechnie znanych powodów trzeba spędzać więcej czasu w domu przed monitorem.
W tej sytuacji trzeba przypomnieć sobie sprawy sprzed lat.
Jak już jasno wynika z tytułu tego artykułu, będzie mowa o konfiguracji Synology NAS jako serwera gier.
Uwaga — w artykule znajduje się wiele zrzutów ekranu (zrzuty ekranu są klikalne)!
Przed rozpoczęciem oto lista narzędzi, które będą potrzebne:
Synology NAS — nie widzę tutaj ograniczeń, myślę, że nada się każdy, o ile nie planujesz trzymać serwera dla 10 tysięcy graczy.
Docker — nie są wymagane specjalne umiejętności, wystarczy obrazowo rozumieć zasadę działania.
LinuxGSM — o tym, czym jest LinuxGSM, można przeczytać na oficjalnej stronie. https://linuxgsm.com.
Na chwilę obecną (kwiecień 2020) na LinuxGSM dostępnych jest 105 serwerów gier.
Całą listę można zobaczyć tutaj https://linuxgsm.com/servers.
Steam — rynek gier.
Serwer gier LinuxGSM ma integrację z SteamCMD, co oznacza, że serwer gier LinuxGSM będzie można używać tylko do gier z Steam.
Instalacja Docker na Synology NAS
Na tym etapie wszystko jest proste, przechodzimy do panelu administracyjnego Synology, następnie do „Centrum pakietów”, szukamy i instalujemy Docker.
Centrum pakietów
Uruchamiamy i widzimy mniej więcej taki widok (mam już zainstalowany ten kontener)
Zarządzanie kontenerem
Następnie przechodzimy do zakładki „Rejestr”, wpisujemy w wyszukiwarce „gameservermanagers”, wybieramy obraz „gameservermanagers/linuxgsm-docker” i klikamy przycisk „Pobierz”.
gameservermanagers/linuxgsm-docker
Potem przechodzimy do zakładki „Obraz”, czekamy na zakończenie pobierania obrazu i klikamy przycisk „Uruchom”.
Pobieranie obrazu
W otwartym oknie należy przejść do „Zaawansowane ustawienia”, a następnie do zakładki „Sieć” i zaznaczyć pole „Użyj tej samej sieci co host Docker”.
Pozostałe ustawienia, takie jak „Nazwa kontenera”, zmieniamy według własnego uznania.
Nazwa kontenera — jak łatwo się domyślić, to jest nazwa kontenera, która będzie przydatna. Zalecam nazywanie jej w sposób zwięzły, na przykład „test”.
Następnie klikamy przycisk „Zastosuj” lub „Dalej” kilka razy, aż do zakończenia konfiguracji.
Ustawienia zaawansowane
Przechodzimy do zakładki „Kontener” i widzimy nowo uruchomiony (jeśli nie, uruchamiamy) kontener.
Można nim tutaj zarządzać — zatrzymywać, uruchamiać, usuwać oraz wykonywać inne działania.
Konfiguracja kontenera Docker LinuxGSM
Przed podłączeniem się do Synology NAS przez SSH należy aktywować sam dostęp SSH w panelu administracyjnym.
Podłączenie przez SSH
Następnie konieczne jest użycie wewnętrznego adresu IP Synology NAS serwera do połączenia przez SSH.
Przechodzimy do terminala (lub innego dowolnego odpowiednika, na przykład pod Windows to PuTTY) i używamy następującej komendy:
ssh user_name@IPW moim przypadku wygląda to tak
ssh admin@192.168.0.166Adres IP serwera Synology NAS
Po autoryzacji należy wykonać komendę, aby przejść do kontenera „test” (pole „Nazwa kontenera” w ustawieniach Docker) jako użytkownik „root”
sudo docker exec -u 0 -it test bashPołączenie z Dockerem
Przed samą instalacją „LinuxGSM” należy wykonać kilka czynności.
Ustawimy hasło dla użytkownika „root”
passwdNastępnie zaktualizujemy wszystkie pakiety
apt update && apt upgrade && apt autoremoveCzekamy na zakończenie procesu…
Aktualizacja pakietów
Następnie zainstalujemy potrzebne narzędzia
apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-fullPonieważ wykonywanie różnych działań jako „root” nie jest najlepszym pomysłem, dodamy nowego użytkownika „test”.
adduser testI pozwolimy nowemu użytkownikowi używać „sudo”
usermod -aG sudo testPrzechodzimy na nowego użytkownika „test”
su testInstalacja i konfiguracja LinuxGSM
Rozważymy przykład konfiguracji LinuxGSM na przykładzie „Counter-Strike”, znanego również jako „CS 1.6” https://linuxgsm.com/lgsm/csserver
Przechodzimy na stronę instrukcji „Counter-Strike” linuxgsm.com/lgsm/csserver.
W zakładce „Dependencies” kopiujemy kod dla „Ubuntu 64-bit”.
Na moment pisania artykułu ten kod wygląda tak:
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
Instalacja zależności
W trakcie instalacji należy zgodzić się z „Steam License”:
Steam License
Przechodzimy do zakładki „Install”, kopiujemy kod z 2. kroku (1. krok pomijamy, użytkownik „test” już istnieje):
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
Czekamy na pobranie:
Pobieranie
I uruchamiamy instalację:
./csserver installJeśli wszystko poszło zgodnie z planem, zobaczymy upragnione „Install Complete!”
Install Complete!
Uruchamiamy… i widzimy błąd „Multiple IP addresses found.”
./csserver startMultiple IP addresses found
Następnie musimy jawnie wskazać serwerowi, jaki adres IP ma używać.
W moim przypadku jest to:
192.168.0.166Przechodzimy do folderu, którego ścieżka była w wiadomości jako „lokacja”:
cd /home/test/lgsm/config-lgsm/csserverI sprawdzamy, jakie pliki są w tym folderze:
lsLista plików w folderze csserver
Kopiujemy zawartość pliku „_default.cfg” do pliku „csserver.cfg”:
cat _default.cfg >> csserver.cfgI przechodzimy do trybu edycji pliku „csserver.cfg”:
nano csserver.cfgEdycja pliku csserver.cfg
Znajdujemy linię:
ip="0.0.0.0"I zamieniamy adres IP, który został zaproponowany, w moim przypadku to "192.168.0.166".
Wygląda to mniej więcej tak:
ip="192.168.0.166"Naciskamy kombinację klawiszy:
Ctr + XI po zapytaniu o zapisanie klikamy:
YWracamy do folderu użytkownika „test”:
cd ~I ponownie próbujemy uruchomić serwer. Teraz serwer powinien się uruchomić bez problemów:
./csserver startUruchamianie serwera
Aby zobaczyć szczegółowe informacje, użyjemy komendy:
.\/csserver detailsSzczegółowe informacje o serwerze
Z ważnych parametrów warto zwrócić uwagę na:
- IP serwera: 192.168.0.166:27015
- IP internetowe: xxx.xx.xxx.xx:27015
- Plik konfiguracyjny: \/home\/test\/serverfiles\/cstrike\/csserver.cfg
Na tym etapie serwer gier jest już dostępny w lokalnej sieci.
Konfiguracja przekierowania adresu IP
Gra w lokalnej sieci jest dobra, ale granie z przyjaciółmi przez internet — lepsze!
Aby przekierować adres IP, który router otrzymał od dostawcy, używamy mechanizmu NAT.
Warto również zauważyć, że większość dostawców używa dynamicznych adresów IP dla swoich klientów.
Dla wygody i stabilności działania warto uzyskać statyczny adres IP.
Ponieważ mam router „TP-Link Archer C60”, podaję przykład konfiguracji przekierowania, jak jest to zrealizowane w moim routerze.
W przypadku innych routerów przypuszczam, że konfiguracja przekierowania wygląda podobnie.
Tutaj wszystko jest proste — należy wskazać przekierowanie z zewnętrznego adresu IP na wewnętrzny adres IP serwera dla dwóch portów:
- 27015
- 27005
W panelu administracyjnym mojego routera wygląda to tak
Panel administracyjny routera
I to wszystko, po zapisaniu ustawień routera, serwer gier będzie dostępny w sieci pod zewnętrznym adresem IP dla wskazanych portów!
Dodatkowe ustawienia na przykładzie CS 1.6
Na przykładzie CS 1.6 chciałbym dać kilka przydatnych wskazówek.
Są dwa pliki konfiguracyjne serwera
Pierwszy znajduje się tutaj:
~\/lgsm\/config-lgsm\/csserver\/csserver.cfgDrugi znajduje się tutaj:
~\/serverfiles\/cstrike\/csserver.cfgPierwszy plik zawiera ogólne ustawienia, takie jak adres IP, mapa do pierwszego załadowania serwera itd.
Drugi plik zawiera ustawienia poleceń, które można wykonując przez konsolę „Counter-Strike”, na przykład „rcon_password” lub „sv_password”.
W drugim pliku zalecam ustawienie hasła do połączenia z serwerem za pomocą CVar „sv_password” oraz ustawienie hasła do zarządzania z konsoli samego serwera za pomocą CVar „rcon_password”.
Pełną listę wszystkich zmiennych CVar można zobaczyć tutaj http://txdv.github.io/cstrike-cvarlist
Prawdopodobnie będzie też potrzeba zainstalowania dodatkowych map, na przykład „fy_pool_day”.
Wszystkie mapy do CS 1.6 znajdują się tutaj:
~\/serverfiles\/cstrike\/mapsZnaleźliśmy potrzebną mapę, ładujemy ją bezpośrednio na serwer (jeśli jest w archiwum, rozpakowujemy), przenosimy plik z rozszerzeniem „.bsp” do folderu z plikami „~\/serverfiles\/cstrike\/maps” i restartujemy serwer.
~.\/csserver restartNotabene, wszystkie dostępne komendy serwera można zobaczyć w ten sposób
~.\/csserver
Podsumowanie
Jestem zadowolony z rezultatu. Wszystko działa szybko i nie laguje.
LinuxGSM ma wiele dodatkowych ustawień, na przykład integrację z Telegramem i Slackiem do powiadomień, ale niektóre funkcje wciąż wymagają dopracowania.
Ogólnie, polecam do użycia!
Źródła
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
Jak zauważył centralhardware nie wszystkie Synology NAS mogą działać w Dockerze, oto lista urządzeń, które mogą https://www.synology.com/ru-ru/dsm/packages/Docker.
Źródło: habr.com



