Este tutorial explica cómo configurar un servidor Counter-Strike: Global Offensive en Arch Linux.
Este tutorial asume que ha iniciado sesión con una cuenta de usuario estándar y tiene privilegios de sudo. Utilizaremos una cuenta de usuario normal porque la creación de paquetes con AUR no debe hacerse desde la cuenta raíz.
Antes de que empieces
Si está utilizando una versión de 64 bits de Arch Linux, es muy importante que tenga multilibhabilitado el repositorio. Si no está habilitado, SteamCMD no puede descargar ni ejecutar los archivos del servidor del juego. Para habilitar multilib, simplemente descomente las siguientes líneas /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist
Esto no se aplica a los sistemas Arch Linux de 32 bits.
Instalar SteamCMD
Hay un paquete AUR para SteamCMD. Es posiblemente la forma más fácil de instalar SteamCMD en Arch. Sin embargo, hay algunas cosas a tener en cuenta al respecto:
- Todos los caminos relativos son relativos a
/usr/share/steamcmd.
- Para actualizar SteamCMD, debe estar en la cuenta raíz.
Si está en un servidor de 64 bits, debe instalar el paquete lib32-gcc-libs.
sudo pacman -Sy lib32-gcc-libs
Ahora debemos construir el paquete. Usando curl, descargue el tarball para el paquete.
curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz
Una vez que finalice la descarga, extraiga y cambie al directorio creado.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Ahora, usando makepkg, compila el paquete.
makepkg -ci
Si no pasó la -ibandera al comando makepkg, use el siguiente comando para instalarlo.
sudo pacman -U *.pkg.tar.xz
Ahora tiene SteamCMD instalado y listo para descargar el servidor Counter-Strike: Global Offensive.
Instale The Counter-Strike: Global Offensive Server
Esta guía utiliza un usuario separado para ejecutar el servidor, por lo que crearemos un nuevo usuario y grupo csgo con su propia carpeta de inicio /var/lib.
sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo
Ahora para instalar el servidor.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
Una vez que finaliza la descarga, tienes el servidor instalado.
Configurando
Aunque puede ejecutar el servidor, se debe realizar alguna configuración para que el servidor no sea demasiado genérico. El archivo principal en el que ponemos la configuración es el server.cfgarchivo. Debajo hay un server.cfgarchivo muy básico .
Para abrir / crear el archivo, use su editor favorito. Yo uso vim en este ejemplo.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Agrega lo siguiente. Se pueden encontrar más configuraciones en Valve Developer Wiki. Asegúrese de cambiar algunas de las configuraciones para satisfacer sus necesidades.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Ejecutando su servidor
Para ejecutar su servidor sin supervisión, necesitará un multiplexor como GNU Screen o tmux . En este artículo, voy a usar tmux para ejecutar el servidor, pero si prefieres y sabes cómo usar la pantalla, no dudes en usarla.
Instale tmux usando pacman.
sudo pacman -Sy tmux
Puede iniciar el servidor con el siguiente comando. Puede cambiar el mapa si lo desea. Lea las "Notas finales" para obtener más información sobre los valores game_typey game_mode. Este ejemplo es para un servidor casual clásico.
sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
Si alguna vez necesita conectarse a la consola, ejecute lo siguiente.
sudo -u csgo tmux attach -t csgo-console
Puede dejar la consola del servidor escribiendo CTRL + B luego liberar esas llaves y luego presionando D .
Ejecutando con systemd
Ejecutar el servidor con systemd es conveniente por muchas razones. La principal es que puede hacer que se inicie cuando se inicia el VPS. Esto requiere que se escriba un script y una unidad systemd. Aunque es una buena idea, es opcional .
Lo primero que debes escribir es el script de inicio. Para crear el script, use su editor favorito. Aquí se usa vim, pero puede usar cualquier editor de texto como nano.
sudo -u csgo vim ~csgo/server/csgo.sh
Agregue lo siguiente y asegúrese de mirar la línea con el comando de inicio, ya que tiene el modo y el tipo de juego.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="csgo"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
;;
stop)
sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Ahora necesita hacer la unidad systemd.
sudo vim /usr/lib/systemd/system/csgo.service
Agrega lo siguiente.
[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Ahora asegúrese de que el csgo.sharchivo sea ejecutable.
sudo chmod +x ~csgo/server/csgo.sh
Después de todo eso, puede usar systemctlpara iniciar y detener el servidor. También puede usarlo para que comience en el arranque.
Para comenzar:
sudo systemctl start csgo.service
Para detener:
sudo systemctl stop csgo.service
Para reiniciar:
sudo systemctl restart csgo.service
Para habilitar en el arranque:
sudo systemctl enable csgo.service
Para deshabilitar en el arranque:
sudo systemctl disable csgo.service
Aunque systemd maneja el inicio y la detención del servidor, puede acceder a la consola con el siguiente comando.
sudo -u csgo tmux attach -t csgo-console
Notas finales
SteamCMD se instala en un área donde solo la raíz puede cambiar los archivos (vea la nota en la sección "Instalar SteamCMD"). Si alguna vez necesita actualizar SteamCMD, simplemente ejecútelo como root.
sudo steamcmd +quit
Si necesita actualizar el servidor. Primero detenga el servidor y luego use SteamCMD para actualizar (usando el mismo comando para instalar).
sudo systemctl stop csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service
El modo de juego y el tipo de juego en el comando de inicio son importantes dependiendo del tipo de servidor que desee. Aquí hay una tabla rápida de los posibles valores.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Hay muchos más temas de configuración no cubiertos en este tutorial. Si necesita más información, consulte Valve Developer Wiki.