SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor

Cómo instalar un servidor FiveM en un VPS

Instala FXServer en Ubuntu, fija una compilación de artifacts, añade la clave de licencia de Cfx.re, abre 30120 TCP y UDP y protege txAdmin.

Qué necesita un servidor FiveM en un VPS

Un servidor FiveM en un VPS necesita un usuario de Linux sin privilegios, una compilación de artifacts de Cfx.re, una clave de licencia y un puerto abierto en TCP y UDP. La instalación tarda unos diez minutos. El resto de esta guía cubre los aspectos que determinan si el servidor se puede utilizar: la velocidad de un solo núcleo de CPU, la memoria que necesitan los recursos y un panel de administración que nunca debe quedar expuesto en una dirección pública.

Hay tres requisitos fijos. Los binarios del servidor, denominados artifacts, proceden del listado oficial de compilaciones de Cfx.re. La clave de licencia se obtiene en el portal de Cfx.re, en portal.cfx.re, el servicio que las guías antiguas llaman keymaster, y está vinculada a la dirección de la máquina que la utiliza. Cada jugador que se conecta necesita una copia legítima de GTA V (Grand Theft Auto V) en Steam, Rockstar Games Launcher o Epic Games, además de una cuenta gratuita de Cfx.re. El cliente comprueba la propiedad del juego al iniciarse, por lo que un servidor basado en cualquier otra cosa no funciona. Esta guía no cubre contenido alternativo de ningún tipo.

Alojar el servidor es una tarea distinta de jugar en la máquina. La cuestión de si puede ejecutar el juego en un VPS es independiente y tiene una respuesta diferente.

Por qué la velocidad de un solo núcleo determina la respuesta de un servidor FiveM

FXServer, el binario del servidor FiveM, ejecuta la lógica del juego en un subproceso principal. Cada script de recurso, cada gestor de eventos y cada actualización de estado pasan por ese bucle único. Los núcleos adicionales ayudan al kernel, a la base de datos y a la pila de red. No dividen el bucle del juego. Por eso, una máquina con 4 vCPU en un núcleo lento sufre tirones bajo carga, mientras que una máquina con 2 vCPU en un núcleo rápido mantiene una ejecución fluida.

Esto invierte el criterio habitual al elegir un VPS, donde el número de núcleos suele ser el dato principal. Compruebe la velocidad por núcleo antes de contratar el servicio. Empiece por el modelo de CPU:

lscpu | grep -E 'Model name|MHz'

Después, busque la puntuación publicada de ese modelo en pruebas de un solo subproceso. La valoración de un solo subproceso de PassMark y la puntuación de un solo núcleo de Geekbench son públicas. Ambas miden el trabajo realizado por un núcleo, que es el dato relevante en este caso. A continuación, mida la máquina que realmente le han asignado:

sudo apt update && sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

Lea la línea events per second. Ejecute el mismo comando en dos proveedores candidatos y podrá compararlos de forma objetiva, porque la carga de trabajo es idéntica y está limitada a un solo núcleo. Una prueba de VPS reproducible muestra cómo mantener comparables esos valores entre máquinas.

Después, compruebe que el núcleo sea realmente suyo:

vmstat 1 5

La última columna, st, es el tiempo de steal: el porcentaje de tiempo durante el que su CPU virtual estaba lista para ejecutarse, pero el hipervisor la hizo esperar. Un valor estable superior a 1 o 2 indica que comparte un núcleo físico con vecinos con mucha carga. El bucle del juego lo percibe de inmediato en forma de rubber banding. Tiempo de steal causado por un vecino ruidoso explica cómo leer esa columna y qué hacer al respecto.

La memoria depende de los recursos que ejecute, no sólo del número de slots. Los datos base del servidor de Cfx.re utilizan unos cientos de megabytes. Un framework de roleplay con cuarenta o cincuenta recursos y una base de datos MariaDB en la misma máquina requiere una configuración diferente: 4 GB es un mínimo razonable y 8 GB ofrece margen suficiente con entre 32 y 64 slots. Son cifras habituales publicadas por configuraciones de la comunidad. Tómelas como punto de partida y supervise free -m con una carga real de jugadores.

Cree un usuario e instale las dependencias

Ejecute el servidor con un usuario normal, nunca como root. Hay dos motivos. Usar root es una mala práctica en cualquier servicio expuesto a Internet. Además, el artefacto para Linux se ejecuta dentro de un sistema de archivos raíz Alpine Linux incluido, por lo que los archivos desempaquetados por root no pueden ser ejecutados por otros usuarios. Esta es la causa más habitual de que una instalación nueva no se inicie.

sudo adduser --disabled-password --gecos "" fivem
sudo apt update
sudo apt install -y git xz-utils curl tcpdump
sudo -iu fivem

Todo lo que se indica a continuación se ejecuta con el usuario fivem. Se necesita xz-utils porque la descarga es un archivo .tar.xz, y git se usa para clonar los datos base del servidor.

Descargar una compilación de artefacto fijada

La compilación para Linux se encuentra en el canal build_proot_linux del servidor de artefactos de Cfx.re. La página de descargas del servidor de Cfx.re marca una compilación como Recommended y otra más reciente como Latest. Ambas etiquetas pasan a compilaciones nuevas cuando se publican nuevas versiones. Fije en su lugar la carpeta numerada. Si vuelve a compilar el servidor el próximo mes, obtendrá el mismo binario que probó este mes. La actualización se convierte así en una decisión deliberada.

mkdir -p ~/FXServer/server
cd ~/FXServer/server
curl -fLO https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/35245-6efb47dff473c0e2a12fb50b08d74c0eb24a50d5/fx.tar.xz
tar xf fx.tar.xz
ls

La compilación 35245 tenía la etiqueta Recommended cuando consulté la página de descargas del servidor de Cfx.re el 9 de octubre de 2026. Abra esa página, seleccione Linux y copie en la URL el nombre de la carpeta del enlace fx.tar.xz actual. El nombre consta del número de compilación y un hash de commit. El antiguo listado del directorio de artefactos al que todavía enlazan muchas guías ahora redirige a la misma página.

Una compilación fijada también tiene una vida útil limitada. Cfx.re admite un artefacto Recommended hasta seis semanas después de que aparezca el siguiente. Su política indica que los artefactos de servidor no compatibles con más de tres meses de antigüedad no podrán aceptar conexiones desde el navegador de servidores. Una compilación obsoleta sigue funcionando, pero los jugadores ya no pueden conectarse desde el navegador. Por tanto, programe las actualizaciones en lugar de fijar una compilación indefinidamente.

ls debería mostrar ahora run.sh y un directorio alpine. Ese directorio contiene la clave del procedimiento: el artefacto para Linux incluye su propio sistema de archivos raíz Alpine y ejecuta el servidor dentro de él mediante proot, una herramienta de espacio de usuario que emula chroot sin privilegios de root. Por eso una sola descarga funciona en Ubuntu, Debian y Rocky sin paquetes específicos de la distribución.

Ahora clone los datos base del servidor, que contienen los recursos predeterminados que inicia server.cfg:

git clone https://github.com/citizenfx/cfx-server-data.git ~/FXServer/server-data

Obtener una clave de licencia y escribir server.cfg

Inicie sesión en portal.cfx.re con su cuenta de Cfx.re y cree una clave de servidor. El portal solicita la dirección IP de la máquina que la utilizará, y la clave queda vinculada a esa dirección. Si cambia a un VPS nuevo, edite la clave en el portal en lugar de crear una segunda. El cambio se aplica de inmediato, pero FXServer sólo vuelve a validar la clave cuando se reinicia.

Escriba ~/FXServer/server-data/server.cfg:

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap

sv_hostname "My FiveM server"
sv_maxclients 48
set onesync on
sv_scriptHookAllowed false

sv_licenseKey ChangeMe

add_ace group.admin command allow
add_principal identifier.fivem:1 group.admin

sv_maxclients acepta un valor de 1 a 2048. Un valor de 32 o superior requiere que onesync esté establecido en on o legacy, y un valor superior a 64 requiere on. OneSync es el modo de conocimiento del estado del servidor y permite superar el límite reducido de ranuras del juego base. Establecer 128 ranuras con OneSync desactivado no proporciona 128 ranuras. Proporciona una configuración que el servidor rechaza.

sv_licenseKey acepta la clave sin comillas ni espacios finales. FXServer divide esa línea en los espacios en blanco, por lo que un carácter adicional invalida la clave y el servidor no inicia.

rcon_password falta deliberadamente en ese archivo. RCON (consola remota) sólo se activa cuando se establece la variable y entonces escucha en el mismo puerto UDP que el juego. Una contraseña de RCON en un puerto público es un canal de comandos remoto hacia el servidor. Déjela sin establecer salvo que tenga una necesidad concreta. Si la utiliza, hágala larga y aleatoria.

sv_scriptHookAllowed permanece en false. La documentación oficial lo marca como no recomendado porque permitir clientes de Script Hook V expone el servidor a abusos desde el cliente.

Las dos últimas líneas funcionan conjuntamente. add_ace group.admin command allow permite que el grupo group.admin ejecute todos los comandos, y add_principal identifier.fivem:1 group.admin hace que el ID de cuenta de Cfx.re 1 herede de ese grupo. Eso es lo que concede permisos de administrador a la cuenta. La sintaxis documentada es add_principal [child_principal] [parent_principal], por lo que ambas partes son necesarias: una línea add_principal que sólo indique la cuenta no tiene ningún grupo del que heredar y no concede permisos. Sustituya 1 por su propio ID numérico. De lo contrario, habrá concedido permisos de administrador a la cuenta de otra persona y no a la suya.

Inícielo una vez manualmente:

cd ~/FXServer/server-data
bash ~/FXServer/server/run.sh +exec server.cfg

Desde una segunda sesión SSH, solicite información del servidor:

curl -s http://127.0.0.1:30120/info.json | head -c 200

El JSON que contiene las variables y los recursos del servidor indica que FXServer está enlazado y responde. Connection refused significa que nunca enlazó el puerto, por lo que debe revisar la salida de la consola en lugar de hacer suposiciones.

Un servidor sin clave muestra esto y se detiene:

This server does not have a license key specified. Please set the sv_licenseKey console variable to a key from https://keymaster.fivem.net/.

El mensaje todavía muestra la dirección antigua de keymaster. Esa dirección lleva al mismo portal de Cfx.re. Si la clave está establecida y el servidor aún no se ejecuta, la causa habitual es que la IP registrada para la clave ya no coincide con la de esta máquina.

¿Qué puertos debe tener abiertos un servidor FiveM?

El puerto 30120, tanto para TCP (protocolo de control de transmisión) como para UDP (protocolo de datagramas de usuario). FiveM usa el mismo número de puerto para dos protocolos y necesita ambos. Si abre sólo TCP, el síntoma resulta confuso: http://your.ip:30120/info.json responde en un navegador, por lo que el servidor parece funcionar, mientras el cliente del juego se queda en Failed to get info from server y nunca se conecta, porque las consultas del cliente y el tráfico del juego utilizan UDP.

sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enable
sudo ufw status verbose

Mantenga abierta una segunda sesión SSH mientras habilita cualquier firewall. Conceptos básicos de ufw para un VPS explica la política predeterminada de denegación que hace que las reglas anteriores sean suficientes por sí solas.

La mayoría de los proveedores también ejecutan un firewall de red fuera del sistema invitado, que se controla desde el panel y no desde el shell. Una regla de ufw no demuestra nada sobre esa capa. Cuando TCP responde desde el exterior y los jugadores siguen sin poder conectarse, supervise el tráfico mientras alguien lo intenta:

sudo tcpdump -ni any udp port 30120

Si llegan paquetes, el firewall externo funciona correctamente y el problema está dentro del servidor. Si no llega ningún paquete, algo situado delante del servidor los está descartando. Compruebe entonces el panel del proveedor.

Gestionar el servidor con txAdmin sin exponerlo

txAdmin se incluye en el artifact que ya descargó. Inicie run.sh sin el argumento +exec y abrirá un panel web en el puerto TCP 40120. Después, mostrará en la consola la URL del panel y un PIN de corta duración. Use ese PIN una vez para vincular su cuenta de Cfx.re. A partir de ese momento, inicie sesión con la cuenta de administrador que txAdmin crea.

txAdmin no tiene una contraseña predeterminada. Por tanto, el riesgo no es una credencial que haya olvidado cambiar. El riesgo está en la función del panel: es una consola remota. Reinicia el servidor, modifica server.cfg, implementa los datos del servidor y ejecuta comandos como el usuario del servidor. Si 40120 queda accesible desde Internet, la página de inicio de sesión queda expuesta públicamente. Los escáneres detectan los puertos de panel abiertos en cuestión de horas. No abra 40120 en el firewall. Acceda mediante un túnel SSH desde su propio equipo:

ssh -N -L 40120:127.0.0.1:40120 fivem@YOUR_SERVER_IP

Después, abra http://127.0.0.1:40120 en el navegador. El tráfico del panel circula dentro de la conexión SSH y el puerto permanece cerrado para el resto.

Hay un problema que conviene conocer antes de intentar resolverlo de otra forma. txAdmin lee TXHOST_INTERFACE (el valor predeterminado es 0.0.0.0) para decidir en qué interfaz escuchar. La documentación indica explícitamente que el mismo valor se fuerza en FXServer. Si lo establece en 127.0.0.1 para ocultar el panel, también vinculará el servidor de juego a loopback. Como resultado, ningún jugador podrá acceder al servidor. Cierre el puerto del panel con el firewall, no con esa variable. Para mover el panel a otro puerto, establezca TXHOST_TXA_PORT. Acepta cualquier valor excepto 30120. La convar antigua +set txAdminPort aparece en muchas guías. La documentación de txAdmin la marca como obsoleta e indica que dejará de funcionar en una versión futura.

Mantener el servidor en ejecución después de cerrar la sesión

bash run.sh termina junto con la sesión SSH. tmux es adecuado mientras realiza pruebas: ejecute tmux new -s fivem, inicie el servidor, pulse Ctrl-b y después d para separarlo, y use tmux attach -t fivem para volver. Una sesión de tmux no sobrevive a un reinicio, por lo que todo lo importante debe configurarse en una unidad de systemd.

Escriba /etc/systemd/system/fivem.service:

[Unit]
Description=FiveM FXServer
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=fivem
Environment=HOME=/home/fivem
WorkingDirectory=/home/fivem/FXServer/server-data
ExecStart=/bin/bash /home/fivem/FXServer/server/run.sh +exec server.cfg
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now fivem
systemctl status fivem
journalctl -u fivem -f

enable --now realiza dos tareas: inicia el servicio inmediatamente y vuelve a iniciarlo después de un reinicio. Un servidor iniciado manualmente deja de estar disponible tras la siguiente actualización del kernel. journalctl -u fivem -f es ahora su consola, porque un servicio de systemd no tiene un terminal en el que pueda escribir. Si administra el servidor mediante txAdmin, elimine +exec server.cfg de ExecStart y apunte WorkingDirectory a /home/fivem/FXServer/server, porque txAdmin inicia el servidor del juego por sí mismo y mantiene su carpeta de datos junto a run.sh.

Qué respaldar y dónde se encuentra

No merece la pena respaldar los artifacts, porque puedes volver a descargar la compilación fijada en un minuto. Hay cuatro elementos que sólo te pertenecen a ti.

  • ~/FXServer/server-data/resources: todos los recursos que instalaste, compraste o escribiste.
  • server.cfg, esté donde esté: toda la configuración del servidor, incluidos tus principals administrativos.
  • ~/FXServer/server/txData: la configuración, la lista de administradores y los registros de txAdmin. Con el artifact de Linux, esta carpeta se crea junto a run.sh.
  • La base de datos de MariaDB o MySQL, si tu framework utiliza una. Los personajes, el dinero, los vehículos y los inventarios se almacenan allí y en ningún otro sitio. Por tanto, un respaldo de los recursos sin un volcado de la base de datos restaura un mundo vacío.
mkdir -p ~/backups
mysqldump -u fivem -p --single-transaction fivem_db > ~/backups/fivem-$(date +%F).sql

Un volcado almacenado en el mismo disco que el servidor no es un respaldo, porque el disco es el componente que puede fallar. Envíalo fuera del servidor siguiendo una programación. Para eso sirven los respaldos de restic desde un VPS.

Modos de fallo y mensajes que verá

Permiso denegado en el cargador. El servidor se cierra inmediatamente y muestra una línea como esta:

run.sh: line 8: /home/fivem/FXServer/server/alpine/opt/cfx-server/ld-musl-x86_64.so.1: Permission denied

Esto ocurre porque el archivo se extrajo con sudo. Por tanto, todo lo que está dentro de alpine/ pertenece a root y el usuario fivem no puede ejecutar el cargador que contiene. Corrija la propiedad con sudo chown -R fivem:fivem /home/fivem/FXServer o elimine el directorio y vuelva a extraerlo como fivem.

tar no puede abrir la descarga. tar (child): xz: Cannot exec: No such file or directory indica que falta el paquete xz-utils. Por eso tar no puede descomprimir un archivo .tar.xz. Instálelo y vuelva a extraer el archivo. Una descarga que termina demasiado rápido suele ser una página de error HTML guardada como fx.tar.xz. tar informa de que ese archivo está dañado.

El servidor se ejecuta, pero nadie puede conectarse. Compruebe primero los puertos, en este orden: la regla de ufw para TCP y UDP en 30120, el firewall de red del proveedor y, por último, la IP registrada para la clave de licencia. Ejecute curl contra info.json desde fuera del servidor. Esto permite distinguir entre un problema de red y un problema del servidor con un solo comando.

El tiempo de tick aumenta cuando llegan jugadores. El panel de rendimiento de txAdmin muestra el tiempo de tick del servidor. Si aumenta con el número de jugadores mientras el uso total de CPU parece bajo, un recurso está saturando el hilo principal. Recuerde el cálculo: en un servidor con 4 vCPU, un solo núcleo completamente ocupado representa aproximadamente el 25 por ciento de la CPU total en top. Puede parecer que el uso es bajo, pero no lo es. Detenga los recursos uno por uno y supervise el tiempo de tick para identificar cuál consume los recursos.

Dimensionamiento frente a otros servidores de juegos

Un servidor FiveM jugable necesita un núcleo rápido y suficiente memoria para la lista de recursos que realmente ejecuta. El número de ranuras depende de esos dos factores, y ninguna cantidad de vCPU compensa un núcleo lento. Elegir un VPS para servidores de juegos analiza ese equilibrio para una flota mixta, y ejecutar un servidor de Minecraft en un VPS presenta la misma estructura subyacente: un bucle principal de actualización, por lo que la velocidad por núcleo también determina el límite.

FAQ

¿Cuánta CPU y RAM necesita un servidor de FiveM?

Importa más un núcleo rápido que varios lentos, porque FXServer ejecuta la lógica del juego en un único subproceso principal. Compare la puntuación de un solo subproceso publicada para el modelo de CPU y confírmela en el servidor con sysbench cpu --threads=1 run. Compruebe también que vmstat muestre un tiempo de steal cercano a cero. En cuanto a la memoria, los datos base del servidor de Cfx.re ocupan unos cientos de megabytes, mientras que un framework de roleplay con cuarenta o cincuenta resources y una base de datos local funciona cómodamente con 8 GB y queda limitado por debajo de 4 GB. Son cifras habituales de la comunidad, así que supervise free -m durante los picos en lugar de confiar en ellas.

¿Los jugadores necesitan tener GTA V para conectarse a mi servidor de FiveM?

Sí. Cada jugador que se conecte necesita una copia legítima y con licencia de GTA V en Steam, Rockstar Games Launcher o Epic Games, además de una cuenta gratuita de Cfx.re. El cliente de FiveM comprueba la propiedad del juego antes de conectarse. No existe una forma compatible de evitarlo, y ejecutar un servidor que intente eludir este requisito queda fuera de lo permitido por Cfx.re.

¿Qué puertos debe tener abiertos un servidor de FiveM?

El puerto 30120, tanto en TCP como en UDP. Los endpoints HTTP, como info.json, y las descargas de resources usan TCP. El tráfico del juego del cliente usa UDP. Abrir sólo TCP produce el caso confuso en el que el servidor responde en un navegador, pero los jugadores ven Failed to get info from server. txAdmin necesita el puerto TCP 40120, que debe permanecer cerrado a Internet.

¿Es seguro dejar txAdmin accesible en el puerto 40120?

No. txAdmin es una consola remota que reinicia el servidor, edita la configuración y ejecuta comandos. Un panel expuesto equivale a exponer el plano de control de todo el servidor del juego. No hay una contraseña predeterminada, pero una página de inicio de sesión pública invita a ataques contra las credenciales que no puede ver. Mantenga el puerto 40120 cerrado en el firewall y acceda al panel mediante un túnel SSH con ssh -N -L 40120:127.0.0.1:40120 user@server. Después, abra http://127.0.0.1:40120 en el navegador. No vincule txAdmin a 127.0.0.1 con TXHOST_INTERFACE, porque esa configuración también obliga al servidor del juego a usar loopback y ningún jugador podrá conectarse.

¿Debo fijar una build de artifact o usar siempre la última recomendada?

Fije la carpeta de la build numerada. La etiqueta recommended cambia periódicamente a una build nueva. Por tanto, un script que descargue la build recommended puede entregarle un binario distinto en cada reconstrucción, y un servidor que funcionaba ayer puede fallar al volver a desplegarlo por motivos no relacionados con sus cambios. Registre el número de build y el hash del commit que probó. Actualice de forma deliberada y conserve la carpeta anterior en el disco para poder volver a ella editando una sola ruta en la unidad de systemd. No deje una versión fijada sin actualizar: la política de Cfx.re hace que los artifacts no compatibles con más de tres meses no puedan unirse desde el navegador de servidores. Actualice dentro del periodo de soporte.

#fivem#game-server#txadmin#single-thread#vps