
Salve!
Dunque, per motivi ben noti, è necessario trascorrere più tempo a casa davanti al monitor.
In questa situazione, si finisce per ricordare le cose dei tempi passati.
Come è già chiaro dal titolo di questo articolo, parleremo della configurazione di un Synology NAS come server di gioco.
Attenzione — l'articolo contiene molti screenshot (gli screenshot sono cliccabili)!
Prima di iniziare, ecco l'elenco degli strumenti di cui avremo bisogno:
Synology NAS — qui non vedo limitazioni, penso che vada bene qualsiasi modello, se non si hanno piani per un server da 10k giocatori.
Docker — non sono necessarie abilità particolari, basta avere una comprensione di base del funzionamento.
LinuxGSM — per sapere di cosa si tratta LinuxGSM, si può leggere sul sito ufficiale. https://linuxgsm.com.
Attualmente (aprile 2020) ci sono 105 server di gioco disponibili su LinuxGSM.
Puoi vedere l'intero elenco qui https://linuxgsm.com/servers.
Steam — un marketplace di giochi.
Server di gioco LinuxGSM è integrato con SteamCMD, il che significa che il server di gioco LinuxGSM può essere utilizzato solo per i giochi di Steam.
Installazione di Docker su Synology NAS
A questo punto è tutto semplice, accediamo al pannello di amministrazione di Synology, poi andiamo su "Package centre", troviamo e installiamo Docker.
Package centre
Avviamo e vediamo un quadro simile (ho già installato questo contenitore)
Gestione del contenitore
Successivamente, passiamo alla scheda «Registry», digitiamo «gameservermanagers» nella ricerca, selezioniamo l'immagine «gameservermanagers/linuxgsm-docker» e clicchiamo sul pulsante «Download».
gameservermanagers/linuxgsm-docker
Dopo passiamo alla scheda «Image», aspettiamo la fine del download dell'immagine e clicchiamo sul pulsante «Launch».
Download dell'immagine
Nella finestra aperta, bisogna andare su «Advanced Settings», poi sulla scheda «Network» e selezionare la casella «Use the same network as Docker Host».
Le altre impostazioni, come «Container Name», possono essere modificate a proprio piacimento.
Container Name — come è facile intuire, è il nome del contenitore, che sarà utile in seguito. Consiglio di scegliere un nome conciso, per esempio, «test».
Successivamente, clicchiamo sul pulsante «Apply» o «Next» più volte fino al completamento della configurazione.
Impostazioni Avanzate
Passiamo alla scheda «Container» e vediamo il nuovo contenitore avviato (se non è avviato, lo avviamo).
Qui possiamo fermarlo, avviarlo, eliminarlo e fare altre azioni.
Configurazione del contenitore Docker LinuxGSM
Prima di connettersi a Synology NAS tramite SSH, è necessario attivare l'accesso SSH nel pannello di amministrazione.
Connessione tramite SSH
Successivamente è necessario utilizzare l indirizzo IP Synology NAS server per connettersi tramite SSH.
Apriamo il terminale (o un altro equivalente, per esempio su Windows è PuTTY) e utilizziamo il seguente comando:
ssh user_name@IPNel mio caso appare così
ssh admin@192.168.0.166Indirizzo IP del server Synology NAS
Dopo l'autenticazione, eseguiamo il comando per accedere al container "test" (il campo "Container Name" nelle impostazioni di Docker) come utente "root".
sudo docker exec -u 0 -it test bashConnessione a Docker
Prima di installare "LinuxGSM", è necessario eseguire alcune operazioni.
Impostiamo una password per l'utente "root"
passwdPoi aggiorniamo tutti i pacchetti
apt update && apt upgrade && apt autoremoveAttendiamo il completamento del processo...
Aggiornamento pacchetti
Successivamente installeremo le utilità necessarie
apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-fullPoiché eseguire diverse operazioni come "root" non è una buona idea, aggiungiamo un nuovo utente "test".
adduser testE consentiamo al nuovo utente di utilizzare "sudo"
usermod -aG sudo testPassiamo al nuovo utente "test"
su testInstallazione e configurazione di LinuxGSM
Esaminiamo un esempio di configurazione di LinuxGSM utilizzando "Counter-Strike", noto anche come "CS 1.6". https://linuxgsm.com/lgsm/csserver
Passiamo alla pagina con le istruzioni «Counter-Strike» linuxgsm.com/lgsm/csserver.
Nella scheda «Dependencies» copiamo il codice per «Ubuntu 64-bit».
Al momento della scrittura di questo articolo, il codice appare così:
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
Installazione dipendenze
Durante l'installazione, bisogna accettare il «Steam License»:
Steam License
Passiamo alla scheda «Install» e copiamo il codice dal 2° passo (saltiamo il 1° passo, l'utente «test» esiste già):
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
Aspettiamo il download:
Download
E avviamo l'installazione:
./csserver installSe tutto è andato a buon fine, vedremo il tanto atteso «Install Complete!»
Install Complete!
Avviamo… e vediamo l'errore «Multiple IP addresses found.»
./csserver startMultiple IP addresses found
Dobbiamo specificare chiaramente al server quale IP utilizzare.
Nel mio caso è:
192.168.0.166Passiamo alla cartella il cui percorso è stato menzionato nel messaggio come «location»:
cd /home/test/lgsm/config-lgsm/csserverE vediamo quali file ci sono in questa cartella:
lsElenco dei file nella cartella csserver
Copiamo il contenuto del file «_default.cfg» nel file «csserver.cfg»:
cat _default.cfg >> csserver.cfgE passiamo alla modalità di editing del file «csserver.cfg»:
nano csserver.cfgModifica il file csserver.cfg
Troviamo la riga:
ip="0.0.0.0"E sostituiamo l'indirizzo IP suggerito, nel mio caso «192.168.0.166».
Dovrebbe risultare così:
ip="192.168.0.166"Teniamo premuti i tasti:
Ctr + XE dopo la proposta di salvataggio, clicchiamo su:
YTorniamo nella cartella utente «test»:
cd ~E proviamo di nuovo a avviare il server. Ora il server dovrebbe avviarsi senza problemi:
./csserver startAvvio del server
Per visualizzare informazioni più dettagliate, utilizziamo il comando:
./csserver detailsInformazioni dettagliate su server
Tra i parametri importanti, si segnalano:
- Server IP: 192.168.0.166:27015
- Internet IP: xxx.xx.xxx.xx:27015
- File di configurazione: /home/test/serverfiles/cstrike/csserver.cfg
In questa fase, il server di gioco è già accessibile nella rete locale.
Configurazione della ridirezione dell'indirizzo IP
Giocare in rete locale va bene, ma giocare con gli amici tramite internet è meglio!
Per ridirigere l'indirizzo IP ricevuto dal provider, utilizziamo il meccanismo NAT.
È inoltre opportuno notare che la maggior parte dei provider utilizza indirizzi IP dinamici per i propri clienti.
Per comodità e stabilità, è consigliato ottenere un indirizzo IP statico.
Poiché ho un router "TP-Link Archer C60", fornisco un esempio di configurazione della port forwarding, come è implementato nel mio router.
Per altri router, presumo che la configurazione della port forwarding sia simile.
È semplice: è necessario specificare il port forwarding dall'indirizzo IP esterno all'indirizzo IP interno del server per due porte:
- 27015
- 27005
Nella mia interfaccia di amministrazione del router, appare così
Interfaccia di amministrazione del router
Ecco fatto, dopo aver salvato le impostazioni del router, il server di gioco sarà accessibile in rete all'indirizzo IP esterno per le porte indicate!
Impostazioni aggiuntive con esempio di CS 1.6
Con riferimento a CS 1.6, vorrei fornire alcuni consigli utili.
Ci sono due file per la configurazione del server
Il primo si trova qui:
~/lgsm/config-lgsm/csserver/csserver.cfgIl secondo si trova qui:
~/serverfiles/cstrike/csserver.cfgIl primo file contiene impostazioni generali, come l'indirizzo IP, la mappa per il caricamento iniziale del server, ecc.
Il secondo file contiene impostazioni dei comandi che possono essere eseguiti tramite la console di "Counter-Strike", come "rcon_password" o "sv_password".
Nel secondo file, consiglio di impostare una password per la connessione al server tramite il CVar «sv_password» e di stabilire una password per la gestione dalla console del server stesso tramite il CVar «rcon_password».
L'elenco di tutte le variabili CVar può essere visualizzato qui http://txdv.github.io/cstrike-cvarlist
Probabilmente sarà necessario installare ulteriori mappe, come ad esempio «fy_pool_day».
Tutte le mappe per CS 1.6 si trovano qui:
~/serverfiles/cstrike/mapsTroviamo la mappa desiderata, la carichiamo direttamente sul server (se è in un archivio, dekomprimiamo), spostiamo il file con estensione «.bsp» nella cartella con i file «~/serverfiles/cstrike/maps» e riavviamo il server.
~./csserver restartTra l'altro, è possibile visualizzare tutti i comandi disponibili del server in questo modo
~./csserver
Risultato
Sono soddisfatto del risultato. Funziona tutto rapidamente e senza lag.
LinuxGSM ha molte impostazioni aggiuntive, come l'integrazione con Telegram e Slack per le notifiche, ma alcune funzionalità richiedono ancora miglioramenti.
In generale, lo consiglio per l'uso!
Fonti
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
Come notato centralhardware non tutti i NAS Synology supportano Docker, ecco l'elenco dei dispositivi che possono farlo. https://www.synology.com/ru-ru/dsm/packages/Docker.
Fonte: habr.com



