
Hallo!
Dus, om bekende redenen moet je meer tijd thuis voor de monitor doorbrengen.
In deze situatie moet je herinneringen ophalen aan zaken uit vervlogen tijden.
Zoals al duidelijk is uit de titel van dit artikel, gaat het over het instellen van een Synology NAS als een game server.
Achtung ā het artikel bevat veel screenshots (deze zijn klikbaar)!
Voordat we beginnen, hier is een lijst van tools die we nodig zullen hebben:
Synology NAS ā hier zie ik geen beperkingen, denk dat elke geschikt is, zolang je geen plannen hebt voor een server met 10.000 spelers.
Docker ā je hebt geen speciale vaardigheden nodig, het is genoeg om het principe van de werking te begrijpen.
LinuxGSM ā wat LinuxGSM is, kun je lezen op de officiĆ«le website https://linuxgsm.com.
Op dit moment (april 2020) zijn er 105 game servers beschikbaar op LinuxGSM.
Je kunt de volledige lijst hier bekijken https://linuxgsm.com/servers.
Steam ā een marktplaats voor games.
Game server LinuxGSM heeft integratie met SteamCMD, dat betekent dat de LinuxGSM game server alleen gebruikt kan worden voor games van Steam.
Docker installeren op Synology NAS
In deze fase is alles eenvoudig, ga naar het beheerderspaneel van Synology, ga vervolgens naar 'Pakketcentrum', zoek en installeer Docker.
Pakketcentrum
Start het en je ziet ongeveer dit beeld (ik heb deze container al geĆÆnstalleerd)
Containerbeheer
Ga vervolgens naar het tabblad 'Registry', typ in de zoekopdracht 'gameservermanagers', kies het afbeelding 'gameservermanagers/linuxgsm-docker' en klik op de knop 'Downloaden'.
gameservermanagers/linuxgsm-docker
Ga daarna naar het tabblad 'Afbeelding', wacht tot de afbeelding is gedownload en klik op de knop 'Starten'.
Afbeelding downloaden
In het geopende venster moet je naar 'Geavanceerde instellingen' gaan, vervolgens naar het tabblad 'Netwerk' en het vakje 'Gebruik hetzelfde netwerk als Docker Host' aanvinken.
Andere instellingen, zoals 'Containernaam', kun je naar eigen inzicht wijzigen.
Containernaam ā zoals je kunt raden, is dit de naam van de container, deze zal later van pas komen. Ik raad aan om het iets korter te noemen, bijvoorbeeld 'test'.
Klik vervolgens meerdere keren op de knop 'Toepassen' of 'Volgende' tot de instelling is voltooid.
Advanced Settings
Ga naar het tabblad 'Container' en je ziet de nieuwe draaiende (als deze er niet is, start deze dan) container.
Hier kun je deze stoppen, starten, verwijderen en andere acties uitvoeren.
Instelling van Docker container LinuxGSM
Voordat je verbinding maakt met de Synology NAS via SSH, moet je de SSH-toegang inschakelen in het beheerderspaneel.
Verbinden via SSH
Vervolgens moet je het interne IP adres Synology NAS de server gebruik voor de SSH-verbinding.
We gaan naar de terminal (of een andere equivalent, bijvoorbeeld onder Windows is dit PuTTY) en gebruiken de volgende opdracht:
ssh user_name@IPIn mijn geval ziet het er zo uit
ssh admin@192.168.0.166IP-adres van de Synology NAS-server
Na autorisatie moet je de opdracht uitvoeren om naar de container 'test' (het veld 'Container Name' in de Docker-instellingen) te gaan onder de gebruiker 'root'
sudo docker exec -u 0 -it test bashVerbinden met Docker
Voor de installatie van 'LinuxGSM' moeten er enkele handelingen worden uitgevoerd.
We stellen een wachtwoord in voor de gebruiker 'root'
passwdDaarna werken we alle pakketten bij
apt update && apt upgrade && apt autoremoveWe wachten op het einde van het proces...
Pakketten worden bijgewerkt
Daarna installeren we de benodigde hulpmiddelen
apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-fullAangezien het niet de beste idee is om verschillende handelingen onder 'root' uit te voeren, voegen we een nieuwe gebruiker 'test' toe.
adduser testEn we geven de nieuwe gebruiker toestemming om 'sudo' te gebruiken
usermod -aG sudo testWe schakelen over naar de nieuwe gebruiker 'test'
su testInstallatie en configuratie van LinuxGSM
Laten we een voorbeeld bekijken van de configuratie van LinuxGSM aan de hand van 'Counter-Strike', ook wel 'CS 1.6'. https://linuxgsm.com/lgsm/csserver
We gaan naar de instructiepagina 'Counter-Strike' linuxgsm.com/lgsm/csserver.
In het tabblad 'Dependencies' kopiƫren we de code onder 'Ubuntu 64-bit'.
Op het moment van het schrijven ziet die code er als volgt uit:
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
Installatie van afhankelijkheden
Tijdens de installatie moet je akkoord gaan met de 'Steam License':
Steam License
We gaan naar het tabblad 'Install' en kopiƫren de code van stap 2 (stap 1 slaan we over, de gebruiker 'test' is al aanwezig):
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
We wachten op het downloaden:
Downloaden
En we starten de installatie:
./csserver installAls alles goed is gegaan, zien we de welverdiende 'Install Complete!'
Install Complete!
We starten... en zien de foutmelding 'Multiple IP addresses found.'
./csserver startMultiple IP addresses found
Vervolgens moeten we de server expliciet aangeven welk IP-adres hij moet gebruiken.
In mijn geval is dat:
192.168.0.166We gaan naar de map waarvoor het pad in de melding als 'location' was gegeven:
cd /home/test/lgsm/config-lgsm/csserverEn kijk welke bestanden er in deze map zijn:
lsLijst van bestanden in de map csserver
We kopiƫren de inhoud van het bestand '_default.cfg' naar het bestand 'csserver.cfg':
cat _default.cfg >> csserver.cfgEn we gaan in de bewerkingsmodus van het bestand 'csserver.cfg':
nano csserver.cfgBewerken van het bestand csserver.cfg
Zoek de regel:
ip="0.0.0.0"En vervang het voorgestelde IP-adres, in mijn geval is dat '192.168.0.166'.
Het komt zo uit:
ip="192.168.0.166"Druk op de volgende toetscombinatie:
Ctr + XEn na de vraag om op te slaan, klikken we:
YWe keren terug naar de gebruikersmap "test":
cd ~En proberen de server opnieuw te starten. Nu zou de server zonder problemen moeten opstarten:
./csserver startServer starten
Voor gedetailleerdere informatie gebruiken we de opdracht:
.\/csserver detailsGedetailleerde informatie over de server
Belangrijke parameters om op te merken zijn:
- Server IP: 192.168.0.166:27015
- Internet IP: xxx.xx.xxx.xx:27015
- Configuratiebestand: \/home\/test\/serverfiles\/cstrike\/csserver.cfg
Op dit moment is de game server al toegankelijk binnen het lokale netwerk.
Instelling van IP-adres forwarding
Spelen op een lokaal netwerk is goed, maar met vrienden via internet spelen is beter!
Voor het doorsturen van het IP-adres dat de router van de provider heeft ontvangen, gebruiken we de NAT-mechanisme.
Het is ook belangrijk op te merken dat de meeste providers dynamische IP-adressen voor hun klanten gebruiken.
Voor gebruiksgemak en stabiliteit is het aan te raden om een statisch IP-adres te verkrijgen.
Aangezien ik een "TP-Link Archer C60" router heb, geef ik een voorbeeld van het instellen van forwarding zoals het is geĆÆmplementeerd in mijn router.
Voor andere routers neem ik aan dat de forwarding-instellingen op een vergelijkbare manier zijn.
Hier is het eenvoudig - je moet de forwarding instellen van het externe IP-adres naar het interne IP-adres van de server voor twee poorten:
- 27015
- 27005
In het adminpaneel van mijn router ziet dit er zo uit
Adminpaneel van de router
Dat is alles, na het opslaan van de routerinstellingen, zal de game server bereikbaar zijn in het netwerk via het externe IP-adres voor de opgegeven poorten!
Aanvullende instellingen op basis van CS 1.6
Op basis van CS 1.6 wil ik een paar nuttige tips geven.
Er zijn twee bestanden voor de serverconfiguratie
Het eerste bevindt zich hier:
~\/lgsm\/config-lgsm\/csserver\/csserver.cfgHet tweede bevindt zich hier:
~\/serverfiles\/cstrike\/csserver.cfgHet eerste bestand bevat algemene instellingen zoals het IP-adres, de kaart voor de eerste serverstart, enz.
Het tweede bestand bevat instellingen voor commando's die je kunt uitvoeren via de "Counter-Strike" console, zoals "rcon_password" of "sv_password".
In het tweede bestand raad ik aan om een wachtwoord voor de toegang tot de server in te stellen met de CVar "sv_password" en een wachtwoord voor serverbeheer via de console met de CVar "rcon_password".
Een lijst van alle CVar-variabelen kun je hier bekijken http://txdv.github.io/cstrike-cvarlist
Het is ook waarschijnlijk dat het nodig is om extra kaarten te installeren, zoals "fy_pool_day".
Alle kaarten voor CS 1.6 bevinden zich hier:
~\/serverfiles\/cstrike\/mapsZoek de gewenste kaart, upload deze direct naar de server (als deze in een archief zit, pak deze uit), verplaats het bestand met de extensie ā.bspā naar de map met bestanden ā~\/serverfiles\/cstrike\/mapsā en herstart de server.
~.\/csserver restartTrouwens, alle beschikbare servercommando's kun je zo bekijken
~.\/csserverĀ
Conclusie
Ik ben tevreden met het resultaat. Alles werkt snel en zonder lag.
LinuxGSM heeft veel extra instellingen, zoals integratie met Telegram en Slack voor meldingen, maar sommige functionaliteiten vereisen nog verdere ontwikkeling.
Over het algemeen raad ik het aan om te gebruiken!
Bronnen
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
Zoals opgemerkt centralhardware niet alle Synology NAS kunnen met Docker werken, hier is een lijst van apparaten die dat wel kunnen. https://www.synology.com/ru-ru/dsm/packages/Docker.
Bron: habr.com



