
¡Saludos!
Por razones bien conocidas, tenemos que pasar más tiempo en casa frente al monitor.
En esta situación, es momento de recordar tiempos pasados.
Como ya se indica en el título de este artículo, trataremos sobre la configuración de un Synology NAS como servidor de juegos.
Achtung — ¡en el artículo hay muchas capturas de pantalla (las capturas son clicables)!
Antes de comenzar, aquí está la lista de herramientas que necesitaremos:
Synology NAS — aquí no veo limitaciones, creo que cualquier modelo servirá, siempre y cuando no haya planes de tener un servidor de 10k jugadores.
Docker — no se requieren habilidades especiales, solo es necesario entender el principio de funcionamiento de manera general.
LinuxGSM — se puede leer sobre qué es LinuxGSM en el sitio web oficial https://linuxgsm.com.
A partir de ahora (abril de 2020), LinuxGSM tiene disponibles 105 servidores de juegos.
Puedes ver toda la lista aquí https://linuxgsm.com/servers.
Steam — un mercado de juegos.
Servidor de juegos LinuxGSM tiene integración con SteamCMD, es decir, el servidor de juegos LinuxGSM solo se podrá usar para juegos de Steam.
Instalación de Docker en el Synology NAS
En esta etapa es simple, accedemos al panel de administración de Synology, luego a ‘Package centre’, encontramos e instalamos Docker.
Package centre
Abrimos y vemos algo parecido a esto (ya tengo instalado este contenedor)
Gestión del contenedor
Luego, pasamos a la pestaña ‘Registry’, escribimos en la búsqueda ‘gameservermanagers’, seleccionamos la imagen ‘gameservermanagers/linuxgsm-docker’ y hacemos clic en el botón ‘Download’.
gameservermanagers/linuxgsm-docker
Después pasamos a la pestaña ‘Image’, esperamos a que termine la descarga de la imagen y hacemos clic en el botón ‘Launch’.
Descarga de la imagen
En la ventana emergente, necesitamos ir a ‘Advanced Settings’, luego a la pestaña ‘Network’ y marcar la casilla ‘Use the same network as Docker Host’.
El resto de configuraciones, como el ‘Container Name’, lo cambiamos a nuestro gusto.
Container Name — como no es difícil adivinar, este es el nombre del contenedor, que se usará más adelante. Recomiendo nombrarlo de manera concisa, por ejemplo, ‘test’.
Luego hacemos clic en el botón ‘Apply’ o ‘Next’ varias veces hasta completar la configuración.
Configuración Avanzada
Pasamos a la pestaña ‘Container’ y vemos el nuevo contenedor iniciado (si no, lo iniciamos).
Aquí se puede detener, iniciar, eliminar y realizar otras acciones.
Configuración del contenedor Docker LinuxGSM
Antes de conectarse al Synology NAS a través de SSH, debe activar el acceso SSH en el panel de administración.
Conexión a través de SSH.
Luego, es necesario usar la dirección IP Synology NAS servidores para conectarse a través de SSH.
Vamos al terminal (o a cualquier otro equivalente, por ejemplo en Windows esto PuTTY) y utilizamos el siguiente comando:
ssh user_name@IPEn mi caso, se ve así
ssh admin@192.168.0.166La dirección IP del servidor Synology NAS
Después de autorizar, hay que ejecutar el comando para acceder al contenedor "test" (el campo "Container Name" en la configuración de Docker) como usuario "root"
sudo docker exec -u 0 -it test bashConexión a Docker
Antes de instalar "LinuxGSM" hay que realizar algunas acciones.
Establezcamos una contraseña para el usuario "root"
passwdA continuación, actualizaremos todos los paquetes
apt update && apt upgrade && apt autoremoveEsperamos a que finalice el proceso...
Actualización de paquetes
A continuación, instalaremos las utilidades necesarias
apt-get install sudo iproute2 netcat nano mc p7zip-rar p7zip-fullDado que ejecutar diversas acciones como "root" no es la mejor idea, añadiremos un nuevo usuario "test".
adduser testY permitiremos que el nuevo usuario utilice "sudo"
usermod -aG sudo testCambiamos al nuevo usuario "test"
su testInstalación y configuración de LinuxGSM
Veamos un ejemplo de configuración de LinuxGSM usando "Counter-Strike", también conocido como "CS 1.6" https://linuxgsm.com/lgsm/csserver
Vamos a la página de instrucciones de "Counter-Strike" linuxgsm.com/lgsm/csserver.
En la pestaña "Dependencies", copiamos el código para "Ubuntu 64-bit."
Al momento de escribir este artículo, este código se ve así:
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
Instalación de dependencias
Durante el proceso de instalación, necesitas aceptar la "Steam License":
Steam License
Vamos a la pestaña "Install", copiamos el código del 2º paso (nos saltamos el 1º paso, el usuario "test" ya existe):
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh csserver
Esperamos a que se descargue:
Descargando
Y comenzamos la instalación:
./csserver installSi todo ha salido bien, veremos "Install Complete!"
Install Complete!
Iniciamos… y vemos el error "Multiple IP addresses found."
./csserver startMultiple IP addresses found
Luego, necesitamos especificar explícitamente al servidor qué IP utilizar.
En mi caso, es:
192.168.0.166Vamos a la carpeta cuyo camino fue mencionado como "location":
cd /home/test/lgsm/config-lgsm/csserverY veamos qué archivos hay en esta carpeta:
Muestra el contenido del directorio. Si no se proporciona una ruta, se muestra el contenido del directorio actual.Lista de archivos en la carpeta csserver
Copiamos el contenido del archivo "_default.cfg" al archivo "csserver.cfg":
cat _default.cfg >> csserver.cfgY entramos en el modo de edición del archivo "csserver.cfg":
nano csserver.cfgEdición del archivo csserver.cfg
Buscamos la línea:
ip="0.0.0.0"Y reemplazamos la dirección IP que se sugería, en mi caso es "192.168.0.166".
Así será más o menos:
ip="192.168.0.166"Presionamos la combinación de teclas:
Ctr + XY después de la propuesta, hacemos clic en:
YRegresamos a la carpeta del usuario «test»:
cd ~Y nuevamente intentamos iniciar el servidor. Ahora el servidor debería iniciarse sin problemas:
./csserver startIniciando el servidor
Para ver información más detallada, utilizamos el comando:
.\/csserver detailsInformación detallada sobre servidor
De los parámetros importantes, se deben señalar:
- IP del servidor: 192.168.0.166:27015
- IP de Internet: xxx.xx.xxx.xx:27015
- Archivo de configuración: \/home\/test\/serverfiles\/cstrike\/csserver.cfg
En esta etapa, el servidor de juegos ya está disponible en la red local.
Configuración de redirección de dirección IP
Jugar en red local está bien, ¡pero jugar con amigos a través de Internet es mejor!
Para redirigir la dirección IP que el enrutador recibió del proveedor, utilizamos el mecanismo NAT.
También es relevante notar que la mayoría de los proveedores utilizan direcciones IP dinámicas para sus clientes.
Para comodidad y estabilidad de funcionamiento, es recomendable obtener una dirección IP estática.
Como tengo un enrutador «TP-Link Archer C60», doy un ejemplo de configuración de redirección, tal como se implementa en mi enrutador.
Para otros enrutadores, supongo que la configuración de redirección se realiza de manera similar.
Es muy simple: solo es necesario especificar la redirección de la dirección IP externa a la dirección IP interna del servidor para dos puertos:
- 27015
- 27005
En el panel de administración de mi enrutador, esto se ve así
Panel de administración del enrutador
¡Y eso es todo! Después de guardar la configuración del enrutador, el servidor de juegos estará disponible en la red a través de la dirección IP externa para los puertos especificados.
Configuraciones adicionales con el ejemplo de CS 1.6
Con el ejemplo de CS 1.6, me gustaría dar algunos consejos útiles.
Hay dos archivos para la configuración del servidor
El primero se encuentra aquí:
~\/lgsm\/config-lgsm\/csserver\/csserver.cfgEl segundo se encuentra aquí:
~\/serverfiles\/cstrike\/csserver.cfgEl primer archivo contiene configuraciones generales, como la dirección IP, el mapa para la primera carga del servidor, etc.
El segundo archivo contiene configuraciones de comandos que se pueden ejecutar a través de la consola de «Counter-Strike», como «rcon_password» o «sv_password».
En el segundo archivo, recomiendo establecer una contraseña para conectarse al servidor a través de la CVar «sv_password» y establecer una contraseña para la administración desde la consola del propio servidor a través de la CVar «rcon_password».
La lista de todas las variables CVar se puede ver aquí http://txdv.github.io/cstrike-cvarlist
También es probable que sea necesario instalar mapas adicionales, como «fy_pool_day».
Todas las mapas para CS 1.6 están aquí:
~\/serverfiles\/cstrike\/mapsEncontramos el mapa que necesitamos, lo subimos directamente al servidor (si está en un archivo comprimido, lo descomprimimos), movemos el archivo con la extensión «.bsp» a la carpeta de archivos «~\/serverfiles\/cstrike\/maps» y reiniciamos el servidor.
~.\/csserver restartPor cierto, todos los comandos disponibles del servidor se pueden ver así
~.\/csserver
Summary
Estoy satisfecho con el resultado. Todo funciona rápido y no tiene lag.
LinuxGSM tiene muchas configuraciones adicionales, como la integración con Telegram y Slack para notificaciones, pero algunas funciones aún requieren ajustes.
En general, lo recomiendo para su uso.
Fuentes
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
Como notó centralhardware no todos los Synology NAS pueden usar Docker, aquí está la lista de dispositivos que pueden https://www.synology.com/ru-ru/dsm/packages/Docker.
Fuente: habr.com



