
Salut!
Așa că, din motive bine cunoscute, trebuie să petrec mai mult timp acasă în fața monitorului.
În această situație, trebuie să-mi amintesc lucruri din vremuri îndepărtate.
După cum este clar din titlul acestui articol, vom discuta despre configurarea Synology NAS ca server de jocuri.
Atenție — articolul conține multe capturi de ecran (capturile de ecran sunt clicabile)!
Înainte de a începe, iată lista de instrumente de care vom avea nevoie:
Synology NAS — aici nu văd restricții, cred că oricare va fi potrivit, dacă nu aveți planuri de a susține un server cu 10k de jucători.
Docker — nu sunt necesare abilități speciale, este suficient să înțelegi în termeni generali principiul de funcționare.
LinuxGSM — despre ce reprezintă LinuxGSM puteți citi pe site-ul oficial. https://linuxgsm.com.
În prezent (aprilie 2020) sunt disponibile 105 servere de jocuri pe LinuxGSM.
Întreaga listă poate fi vizualizată aici https://linuxgsm.com/servers.
Steam — un magazin cu jocuri.
Server de jocuri LinuxGSM are integrare cu SteamCMD, adică serverul de jocuri LinuxGSM poate fi folosit doar pentru jocuri din Steam.
Instalarea Docker pe Synology NAS
În această etapă este simplu, ne ducem în panoul de administrare Synology, apoi în „Package centre”, găsim și instalăm Docker.
Package centre
Îl lansăm și vedem aproximativ această imagine (eu am deja acest container instalat)
Gestionarea containerului
Apoi, mergem la tab-ul „Registry”, căutăm „gameservermanagers”, alegem imaginea „gameservermanagers/linuxgsm-docker” și dăm click pe butonul „Download”.
gameservermanagers/linuxgsm-docker
După aceea, mergem la tab-ul „Image”, așteptăm finalizarea descărcării imaginii și dăm click pe butonul „Launch”.
Descărcarea imaginii
În fereastra care se deschide, trebuie să mergem la „Advanced Settings”, apoi la tab-ul „Network” și să bifăm căsuța „Use the same network as Docker Host”.
Celelalte setări, cum ar fi „Container Name”, le schimbăm la bunul nostru plac.
Numele containerului — după cum vă puteți da seama, este numele containerului, care va fi util mai târziu. Recomand să-l denumiți într-un mod concis, de exemplu „test”.
Apoi, dăm click pe butonul „Apply” sau „Next” de câteva ori până la finalizarea configurării.
Advanced Settings
Mergem la tab-ul „Container” și vedem un nou container pornit (dacă nu, îl pornim).
Aici îl putem opri, porni, șterge și efectua alte acțiuni.
Configurarea containerului Docker LinuxGSM
Înainte de a vă conecta la Synology NAS prin SSH, trebuie să activați accesul SSH în panoul de administrare.
Conexiune prin SSH
Apoi este necesar să folosiți interfața internă Adresă IP Synology NAS server pentru conectare prin SSH.
Accesăm terminalul (sau orice alt echivalent, de exemplu, pe Windows este PuTTY) și folosim următoarea comandă:
ssh user_name@IPÎn cazul meu, arată așa
ssh admin@192.168.0.166Adresă IP a serverului Synology NAS
După autentificare, trebuie să executăm comanda pentru a accesa containerul "test" (câmpul "Container Name" din setările Docker) sub utilizatorul "root"
sudo docker exec -u 0 -it test bashConectare la Docker
Înainte de instalarea "LinuxGSM", trebuie să facem câteva acțiuni.
Vom seta o parolă pentru utilizatorul "root"
passwdApoi vom actualiza toate pachetele
apt update && apt upgrade && apt autoremoveAșteptăm finalizarea procesului…
Actualizarea pachetelor
Apoi vom instala utilitarele necesare
apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-fullDeoarece, sub "root", a efectua diverse acțiuni nu este cea mai bună idee, vom adăuga un nou utilizator "test".
adduser testȘi îi vom permite noului utilizator să folosească "sudo"
usermod -aG sudo testNe schimbăm pe noul utilizator "test"
su testInstalarea și configurarea LinuxGSM
Vom analiza un exemplu de configurare LinuxGSM folosind "Counter-Strike", adică "CS 1.6" https://linuxgsm.com/lgsm/csserver
Accesăm pagina de instrucțiuni pentru "Counter-Strike" linuxgsm.com/lgsm/csserver.
În tab-ul "Dependencies", copiem codul de sub "Ubuntu 64-bit".
La momentul redactării acestui articol, acest cod arată astfel:
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
Instalarea dependențelor
În timpul instalării, trebuie să acceptăm "Licența Steam":
Licența Steam
Accesăm tab-ul "Install" și copiem codul din pasul 2 (sărim pasul 1, utilizatorul "test" există deja):
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
Așteptăm descărcarea:
Descărcare
Și demarăm instalarea:
./csserver installDacă totul a decurs conform planului, vom vedea mesajul dorit "Install Complete!"
Install Complete!
Lansăm… și vedem eroarea "Multiple IP addresses found."
./csserver startMultiple IP addresses found
Mai departe, trebuie să indicăm serverului ce IP să folosească.
În cazul meu, acesta este:
192.168.0.166Accesăm folderul, calea către care a fost menționată în mesaj ca "location":
cd /home/test/lgsm/config-lgsm/csserverȘi verificăm ce fișiere sunt în acest folder:
lsLista fișierelor din folderul csserver
Copiem conținutul fișierului „_default.cfg” în fișierul „csserver.cfg”:
cat _default.cfg >> csserver.cfgȘi trecem în modul de editare al fișierului „csserver.cfg”:
nano csserver.cfgEditarea fișierului csserver.cfg
Găsim linia:
ip="0.0.0.0"Și înlocuim adresa IP propusă, în cazul meu aceasta este „192.168.0.166”.
Va arăta cam așa:
ip="192.168.0.166"Apăsăm combinația de taste:
Ctr + XȘi după ce ne cere să salvăm, apăsăm:
YNe întoarcem în folderul utilizatorului „test”:
cd ~Și încercăm din nou să pornim serverul. Acum serverul ar trebui să pornească fără probleme:
./csserver startPornirea serverului
Pentru a vizualiza informații mai detaliate, vom folosi comanda:
.\/csserver detailsInformații detaliate despre server
Din parametrii importanți merită menționat:
- Server IP: 192.168.0.166:27015
- Internet IP: xxx.xx.xxx.xx:27015
- Fișier de configurare: \/home\/test\/serverfiles\/cstrike\/csserver.cfg
În acest stadiu, serverul de joc este deja accesibil în rețeaua locală.
Configurarea redirecționării adresei IP
A juca în rețeaua locală este bine, dar a juca cu prietenii peste internet – este mai bine!
Pentru redirecționarea adresei IP obținute de router de la furnizor, folosim mecanismul NAT.
De asemenea, este de menționat că majoritatea furnizorilor folosesc adrese IP dinamice pentru clienții lor.
Pentru comoditate și stabilitate, este preferabil să obținem o adresă IP statică.
Având în vedere că am un router „TP-Link Archer C60”, voi prezenta un exemplu de configurare a redirecționării, așa cum este implementat în routerul meu.
Pentru alte routere, presupun că configurarea redirecționării este similară.
Aici totul este simplu – trebuie să specificăm redirecționarea de la adresa IP externă la adresa IP internă a serverului pentru două porturi:
- 27015
- 27005
În panoul de administrare al router-ului meu, arată astfel
Panou de administrare al router-ului
Asta e tot, după salvarea setărilor router-ului, serverul de joc va fi disponibil în rețea la adresa IP externă pentru porturile indicate!
Setări suplimentare pe exemplul CS 1.6
Pe exemplul CS 1.6, aș dori să ofer câteva sfaturi utile.
Există două fișiere pentru configurarea serverului
Primul se află aici:
~\/lgsm\/config-lgsm\/csserver\/csserver.cfgAl doilea se află aici:
~\/serverfiles\/cstrike\/csserver.cfgPrimul fișier conține setările generale, cum ar fi adresa IP, harta pentru prima încărcare a serverului etc.
Al doilea fișier conține setările comenzilor care pot fi executate prin consola „Counter-Strike”, de exemplu „rcon_password” sau „sv_password”.
În al doilea fișier, recomand să setați o parolă pentru conectarea la server prin CVar „sv_password” și să stabiliți o parolă pentru gestionarea de la consolă a serverului în sine prin CVar „rcon_password”.
Lista tuturor variabilelor CVar poate fi consultată aici http://txdv.github.io/cstrike-cvarlist
Probabil va fi necesar să instalăm hărți suplimentare, de exemplu „fy_pool_day”.
Toate hărțile pentru CS 1.6 se află aici:
~\/serverfiles\/cstrike\/mapsGăsim harta dorită, o încărcăm direct pe server (dacă este într-un arhivă, o dezarhivăm), mutăm fișierul cu extensia „.bsp” în folderul cu fișiere „~\/serverfiles\/cstrike\/maps” și repornim serverul.
~.\/csserver restartApropo, toate comenzile disponibile pe server pot fi vizualizate astfel
~.\/csserver
Rezultatul
Sunt mulțumit de rezultate. Totul funcționează rapid și nu există lag.
LinuxGSM are multe setări suplimentare, de exemplu, integrarea cu Telegram și Slack pentru notificări, dar unele funcționalități necesită îmbunătățiri.
Per ansamblu, recomand utilizarea!
Surse
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
Așa cum am observat centralhardware nu toate NAS-urile Synology pot rula Docker, iată lista dispozitivelor care pot https://www.synology.com/ru-ru/dsm/packages/Docker.
Sursa: habr.com



