Tutorial completo sobre cómo configurar un servidor de juegos en línea Garry's Mod
Este artículo proporciona un tutorial paso a paso sobre cómo configurar un servidor de juegos en línea Garry's Mod para administradores de servidores y jugadores.

Tutorial completo sobre cómo configurar un servidor de juegos en línea de Garry's Mod

Este artículo ofrece una guía paso a paso para configurar un servidor de juegos en línea de Garry's Mod. Incluye consejos como elegir una ubicación adecuada, instalar y configurar SRCDS, ajustes de seguridad y optimizar el ping y los recursos de hardware.
0 acciones
0
0
0
0

¿Estás listo para configurar un servidor Garry's Mod estable, seguro y de baja latencia?

Esta guía paso a paso para administradores de servidores, jugadores y equipos de DevOps explica el proceso completo de configuración de un servidor de Garry's Mod (SRCDS) con SteamCMD. Este artículo abarca la elección de la ubicación correcta, la instalación y configuración de SRCDS, ajustes de seguridad como RCON y firewall, optimización de ping y hardware, gestión de Workshops, automatización de actualizaciones y copias de seguridad, y consejos prácticos para el mantenimiento y la monitorización.

Elegir la ubicación y el plan adecuados

La selección de la ubicación es muy importante para Garry's Mod, ya que la experiencia del jugador depende del ping. Para jugadores de un país específico, elijan el centro de datos más cercano: Europa (Fráncfort/Londres), Norteamérica (Nueva York/Chicago), América Occidental (Los Ángeles), Asia (Singapur/Tokio), Australia (Sídney), Brasil (São Paulo).

El propósito del ping a continuación 80 ms Para una experiencia aceptable y por debajo 60 ms Recomendado para experiencia competitiva.

Recomendación de hardware según el número de jugadores

  • Pequeño (hasta 12 jugadores): 2 vCPU, 4 GB de RAM, SSD, ancho de banda de 100 Mbps.
  • Mediano (12–32 jugadores): 4 vCPU, 8-16 GB de RAM, SSD NVMe, 1 Gbps.
  • Grande (más de 32 jugadores o complementos pesados): Servidor con 6+ vCPU, 32 GB+ de RAM, NVMe, 1–10 Gbps y alto nivel de E/S.

Utilice servidores dedicados para juegos o servidores anti-DDoS para minimizar la latencia y protegerse de ataques. Utilice una CDN para distribuir archivos de descarga (mapas, complementos) y así reducir el ancho de banda y acelerar las descargas.

Prerrequisitos y preparación del sistema

Sistema operativo recomendado: Ubuntu 20.04/22.04 O Debian 11/12. Ejecute los siguientes comandos como un usuario con acceso sudo para actualizar el sistema e instalar los requisitos previos.

sudo apt update && sudo apt upgrade -y
sudo apt install -y wget lib32gcc-s1 lib32stdc++6 ca-certificates screen tmux unzip

Si el paquete comando de vapor Disponible en tanques:

sudo apt install -y steamcmd

De lo contrario, instale SteamCMD manualmente:

sudo mkdir -p /opt/steamcmd
sudo chown $USER:$USER /opt/steamcmd
cd /opt/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

Cree un usuario no root para ejecutar el servidor:

sudo useradd -m -s /bin/bash gmod
sudo passwd gmod
sudo mkdir -p /home/gmod/server
sudo chown -R gmod:gmod /home/gmod

Descargue e instale SRCDS con SteamCMD

Inicie sesión con el usuario gmod y ejecute SteamCMD para instalar el servidor de Garry's Mod:

sudo su - gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit

Para descargar elementos del taller (por ejemplo, colección o mapa):

/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +workshop_download_item 4020 <WORKSHOP_ID> +quit

Para cargar automáticamente una colección al iniciar SRCDS, utilice los siguientes parámetros:

+host_workshop_collection <COLLECTION_ID> +host_workshop_authkey <STEAM_WEB_API_KEY>

Configuración del servidor: server.cfg y parámetros de ejecución

Coloque el archivo de configuración base en la ruta /inicio/gmod/servidor/garrysmod/cfg/server.cfg Crear o editar. Ejemplo de configuración básica:

hostname "My GMod Server"
rcon_password "PUT_A_STRONG_PASSWORD_HERE"
sv_password ""
sv_cheats 0
sv_lan 0
sv_allowdownload 1
sv_allowupload 1
sv_maxrate 30000
sv_minrate 5000
sv_timeout 120
sv_voiceenable 1
sv_pure 0
sv_region 3

Consejos de configuración:

  • tasa máxima de sv y tasa mínima de sv Ajuste según el ancho de banda y la cantidad de jugadores.
  • Para administrar mods y acceder a archivos desde colección de talleres Úselo para que los reproductores descarguen archivos automáticamente.

Ejemplo de parámetro de ejecución SRCDS:

cd /home/gmod/server
./srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015 +host_workshop_collection <COLLECTION_ID> -autoupdate

Ejecutar el servidor como un servicio systemd

Cree un servicio systemd para facilitar su administración e inicio automático al arrancar el sistema. Ejemplo de creación de un archivo de servicio:

sudo tee /etc/systemd/system/gmod.service <<'EOF'
[Unit]
Description=Garry's Mod Server
After=network.target

[Service]
Type=simple
User=gmod
WorkingDirectory=/home/gmod/server
ExecStart=/home/gmod/server/srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015
Restart=on-failure
RestartSec=10
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable gmod.service
sudo systemctl start gmod.service
sudo journalctl -u gmod.service -f

Firewall, puertos y seguridad de red

Puertos comunes de Garry's Mod/SRCDS:

  • UDP 27015 (juego y consulta)
  • TCP/UDP 27015 (RCON puede usar TCP)
  • UDP 27005 (cliente de Steam)

Ejemplo de configuración con UFW:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27005/udp
sudo ufw enable

Para protegerse contra DDoS, utilice planes de servidor anti-DDoS para filtrar los ataques de red antes de que lleguen al servidor.

Optimizar el rendimiento y reducir el ping

Consejos clave para mejorar el rendimiento del servidor:

  • Elija una ubicación cercana a los jugadores para reducir el RTT.
  • Utilice SSD/NVMe para reducir los tiempos de carga de mapas y aumentar la E/S.
  • Utilice una CPU de alta frecuencia para los cálculos físicos; GMod depende de la frecuencia de un solo núcleo en muchos casos.

Configuración del kernel de red (ejemplo):

sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.wmem_max=26214400

Además, equilibre sv_maxrate, tickrate y maxplayers en función de los recursos y la cantidad de jugadores, y pruebe los mods pesados antes de publicarlos en el servidor.

Gestión de mods, taller y automatización de descargas

Utilice SteamCMD para agregar mods desde el Workshop:

/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +workshop_download_item 4020 <WORKSHOP_ID> +quit

Sugerencia: utilice la colección y pase su ID en el parámetro +colección_del_taller_del_anfitrión Configurar Steam para descargar elementos cuando el servidor esté en ejecución.

Para instalar complementos manualmente, simplemente copie los archivos a garrysmod/complementos Introdúzcalo y reinicie el servidor.

Actualizaciones y copias de seguridad automáticas

Un script simple para actualizar SRCDS:

#!/bin/bash
systemctl stop gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit
systemctl start gmod

Poner en cron (ejemplo todos los días a las 4 am):

sudo crontab -e
0 4 * * * /home/gmod/update_gmod.sh >> /var/log/gmod_update.log 2>&1

Copia de seguridad: desde carpetas garrysmod/mapas, garrysmod/complementos Realice copias de seguridad de cfg con regularidad. Utilice rsync o instantáneas de infraestructura en la nube y almacenamiento de objetos (compatible con S3) para una recuperación rápida.

Monitoreo, registros y mantenimiento

Inicia sesión garrysmod/registros y systemd son visibles. Use logrotate para rotar los registros.

Para monitorear el estado del servidor se utilizan herramientas como Prometeo + Grafana O Zabbix Se recomienda monitorear la CPU, la RAM, la red y la pérdida de paquetes.

Los reinicios programados (por ejemplo, cada 6 a 12 horas) pueden reducir las pérdidas de memoria y los problemas causados por los complementos.

Consejos prácticos para gerentes y DevOps

  • Primero pruebe las actualizaciones en un servidor de prueba para identificar problemas de modificación.
  • Utilice un nombre de dominio o DNS para el servidor para facilitar el cambio de IP; cree un registro A para server.example.com.
  • Utilice CDN para descargar archivos y Load Balancer y BGP/Anycast para alta disponibilidad.

Práctica recomendada: al aumentar la capacidad o proporcionar un servicio público, utilice la división del tráfico de archivos en CDN y un diseño distribuido para reducir la carga del servidor y mejorar la disponibilidad.

Resumen y recomendaciones generales

Siguiendo esta guía, podrás configurar un servidor de Garry's Mod estable, seguro y optimizado, desde la instalación de SRCDS con SteamCMD hasta la configuración de server.cfg, el servicio systemd, el firewall y la protección anti-DDoS. Presta atención a la ubicación, el hardware adecuado y el uso de la CDN para un rendimiento óptimo.

El centro de datos más cercano a sus usuarios objetivo (por ejemplo, Europa: Frankfurt/Londres, Asia: Singapur/Tokio) es la mejor opción para obtener el ping más bajo.
Puedes instalar SRCDS creando un usuario que no sea root, descargando SteamCMD y ejecutando el comando +app_update 4020 desde SteamCMD.
Habilite RCON solo cuando sea necesario, utilice contraseñas seguras y restricciones de acceso IP y utilice un túnel de administración o VPN si es posible.
Utilice la colección y configure su ID en +host_workshop_collection para que Steam descargue elementos automáticamente; pruebe los mods pesados antes de publicarlos.
La mejor práctica es realizar copias de seguridad periódicas de los mapas, complementos y carpetas cfg con rsync o una instantánea en la nube y almacenarlas en un almacenamiento de objetos (compatible con S3).

También te puede gustar