Cómo crear un servidor FiveM desde cero en Ubuntu Linux
Guía técnica para montar un servidor FiveM en VPS Ubuntu 24.04: descargar artifacts, configurar server.cfg, generar license key y abrir puertos con UFW.
Montar un servidor FiveM en Linux es más barato en recursos que en Windows y gana estabilidad en uptimes largos, pero exige conocer algunos detalles específicos de la plataforma: los artifacts oficiales se entregan como tarball, CFX exige license key atada al IP, y el puerto por defecto necesita estar liberado en TCP y UDP — olvidarse de uno de los dos es la causa número uno de “el servidor no aparece en la lista”.
Este tutorial cubre la instalación desde cero en una VPS Ubuntu 24.04 LTS, desde el usuario dedicado hasta el servidor aceptando conexiones. La persona objetivo es el dueño de un servidor nuevo que va a migrar de un host gestionado a una VPS Linux y necesita entender qué hace cada pieza.
Tiempo estimado: 20 a 30 minutos en una VPS razonable, contando la descarga de los artifacts.
Prerrequisitos
Necesitas una VPS Ubuntu 24.04 LTS con acceso sudo, al menos 2 GB de RAM y ~5 GB libres en disco. Conexión SSH funcionando y el IP público de la VPS a mano (lo vas a necesitar para generar la license key).
Antes de empezar, anota los datos de acceso que vas a usar a lo largo del tutorial. En una VPS Hostini recién aprovisionada, vienen en el correo de bienvenida:
Ubuntu 24.04 LTS SSH como root o sudo 30120 (TCP+UDP) recommended Confirma la versión del sistema antes de continuar:
lsb_release -a
La salida debe mostrar Description: Ubuntu 24.04 LTS o similar. Si estás en una versión antigua (20.04, 22.04), el tutorial todavía funciona — solo los comandos de paquete pueden variar levemente.
Crear usuario dedicado para el servidor
Correr FiveM como root es una práctica insegura: cualquier falla en un resource mal escrito se convierte en acceso administrativo total a la máquina. Crear un usuario separado lleva 30 segundos y aísla el impacto.
Crea el usuario fivem con directorio home estándar:
sudo adduser --disabled-password --gecos "" fivemEl flag --disabled-password impide el login directo por contraseña (accedes vía sudo su - fivem desde tu usuario sudo). Esto reduce la superficie de ataque por brute-force SSH en el usuario del servidor.
Cambia al usuario recién creado:
sudo su - fivemDe aquí en adelante, todos los comandos que involucran archivos del servidor corren dentro de esta sesión. Estás en /home/fivem.
Instalar dependencias del sistema
FiveM en Linux exige algunas libs del sistema que no vienen por defecto en Ubuntu Server. Que falte cualquiera de ellas resulta en un error genérico “segmentation fault” en el startup, que es difícil de diagnosticar.
Sal hacia el usuario sudo (exit) y actualiza el índice de paquetes:
sudo apt update
sudo apt install -y xz-utils curl screen libssl3 ca-certificatesxz-utils extrae el tarball de los artifacts (formato .tar.xz), screen mantiene el servidor corriendo después de que te desconectes del SSH, y libssl3 es el runtime de TLS que FiveM linkea dinámicamente.
Para servidor en producción, systemd es superior a screen — reinicia solo después de un crash, integra con journalctl, sobrevive a un reboot del host. La sección “Próximos pasos” indica cómo migrar después de que confirmes que el servidor sube correctamente.
Descargar los artifacts oficiales
CFX publica builds linux del servidor en runtime.fivem.net. Cada build tiene un hash único y es incremental. Para producción, usa siempre la rama recommended.
Vuelve al usuario fivem y crea la estructura de carpetas:
sudo su - fivem
mkdir -p ~/server ~/server-data
cd ~/serverLa separación entre server/ (artifacts) y server-data/ (tu configuración y resources) facilita el upgrade: descargas nuevos artifacts reemplazando server/ sin tocar tus datos.
Descarga el tarball más reciente de la rama recommended. El link cambia en cada build — consulta siempre https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/ en el navegador para obtener la versión actual. Reemplaza la URL de abajo por la actual:
curl -sLo fx.tar.xz https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/15601-COMMIT_HASH/fx.tar.xz
tar xf fx.tar.xz
rm fx.tar.xzDespués de extraer, tendrás el binario run.sh y las carpetas alpine/ y opt/ dentro de ~/server/.
Builds con más de 6 meses generalmente ya no logran conectarse a la master list de CFX porque los endpoints de licenciamiento cambiaron. Si estás retomando un servidor parado hace mucho tiempo, descarga un build nuevo antes de intentar diagnosticar problemas de conexión.
Generar la license key
Desde 2018 CFX exige license key para cualquier servidor — sin ella el servidor sube pero rechaza todas las conexiones con error de autenticación. La key es gratuita y está atada al IP público de la máquina.
En un navegador, accede a keymaster.fivem.net, inicia sesión con tu cuenta CFX y crea una nueva key. El panel pide:
- IP address: el IP público de tu VPS (el mismo que usas en el SSH)
- Server type: VPS / Dedicated
La key generada tiene formato xxxxxxxxxxxxxxxxxxxx. Cópiala y guárdala.
Si el IP de tu VPS cambia (migración, nuevo proveedor, cambio de plan), la key existente deja de funcionar. Ve al keymaster y actualiza el IP — no necesitas generar una nueva, solo edita la existente. Los servidores Hostini tienen IP estático, así que esto solo es problema si migras.
Configurar el server.cfg
El archivo server.cfg define nombre, slots, license key, recursos cargados y puertos. Vamos a partir del template oficial y ajustar lo mínimo para que el servidor suba.
Inicializa el server-data/ con el template oficial vía git:
cd ~/server-data
git clone https://github.com/citizenfx/cfx-server-data.git .Esto trae un server.cfg de ejemplo y la carpeta resources/ con recursos básicos (mapmanager, chat, spawnmanager). Suficiente para el primer boot.
Edita el server.cfg:
nano server.cfgBusca la línea sv_licenseKey changeme y reemplaza changeme por la key generada en el keymaster. Ajusta también:
sv_hostname "Mi Servidor FiveM"
sv_maxclients 32
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"0.0.0.0 hace que el servidor escuche en todas las interfaces de red. Usa 127.0.0.1 solamente si vas a hacer reverse proxy.
Abrir los puertos en el firewall
Ubuntu 24.04 viene con ufw instalado pero inactivo. Antes de activar el firewall, libera SSH para no quedarte fuera, después abre el puerto de FiveM.
Libera los puertos necesarios:
sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enableConfirma con sudo ufw status — debes ver las tres reglas activas.
Si olvidas el allow OpenSSH y activas el firewall por una sesión SSH, pierdes acceso inmediatamente. Siempre confirma la regla de SSH antes de ufw enable. Si te quedas fuera, será necesario usar la consola web de la VPS para corregir.
Levantar el servidor
Con la config lista y el firewall liberado, es hora del primer boot.
Vuelve al usuario fivem e inicia el servidor dentro de un screen para que siga corriendo después de que te desconectes:
sudo su - fivem
screen -S fivem
cd ~/server-data
bash ~/server/run.sh +exec server.cfgVerás el log del servidor desplazarse. Logs de éxito incluyen Authenticating server license key... seguido de Server license key authenticated. Después, Server started, ready for connections.
Para desacoplar del screen sin matar el proceso, presiona Ctrl+A seguido de D. Para volver a acoplar después: screen -r fivem.
Verificación
Confirma que el servidor está respondiendo en el puerto y es visible externamente.
Desde la propia VPS, prueba localmente:
curl -s http://localhost:30120/info.json
La respuesta debe ser un JSON con vars, enhancedHostSupport y resources. Si viene vacío o da Connection refused, el servidor no terminó de subir o crasheó — vuelve al screen y revisa el log.
Desde otra máquina, abre el cliente FiveM y conecta por IP directo:
IP_DE_TU_VPS:30120
Si conecta, el servidor está operativo y visible para CFX. En hasta 5 minutos también aparece en la lista pública filtrando por el nombre.
Resolución de problemas
El servidor sube pero no aparece en la lista pública
Casi siempre es UDP bloqueado. Confirma con sudo ufw status que la regla 30120/udp está activa. En algunos proveedores hay un firewall en el borde de la red además del UFW de la máquina — verifica el panel del proveedor.
Error “Server license key invalid”
La key está atada a un IP diferente al actual. Ve al keymaster, edita la key existente y actualiza el IP al de la VPS.
El servidor mata el proceso después de algunos minutos
Falta de RAM. Ejecuta free -h y revisa si la VPS tiene el swap agotado. FiveM vanilla necesita al menos 2 GB libres; con framework roleplay, planifica 8 GB.
Próximos pasos
Con el servidor base operativo, considera:
- Migrar de
screenasystemd: crea un service unit que reinicia el servidor después de un crash y sobrevive a un reboot del host. - Configurar backup automatizado del
server-data/hacia un storage externo — perder la base de datos del framework es caro. - Instalar framework (ESX, QBCore, vRP) por encima del servidor vanilla, dependiendo del tipo de gameplay.
- Agregar reverse proxy con nginx o caddy para servir el panel de estado del servidor en HTTPS.
- Monitorear CPU y RAM con herramientas básicas como
htopo un agente de métricas dedicado.
Si estás llevando esto a producción, vale la pena considerar una VPS optimizada para servidores de juegos — máquinas con CPU de alto clock single-thread, IP estático y protección contra ataques de saturación, que es el punto débil típico de servidores FiveM expuestos.
Preguntas frecuentes
¿Cuál es la diferencia entre artifacts recommended y latest?
La rama `latest` recibe correcciones antes, pero puede introducir regresiones. La `recommended` es validada por CFX después de algunos días en testing y es la elección estándar para servidores en producción. Solo usa `latest` si necesitas un fix específico o estás probando funcionalidades nuevas.
¿Por qué mi servidor aparece offline aunque está corriendo?
Casi siempre es el firewall bloqueando UDP 30120. FiveM usa TCP para HTTP de estado y UDP para el tráfico de juego — si el UDP no pasa, el servidor no aparece en la lista de CFX ni acepta conexiones. Confirma con `sudo ufw status` y libera los dos puertos.
¿Necesito license key incluso en un servidor privado de pruebas?
Sí. Desde 2018 CFX exige license key para cualquier servidor — incluido localhost. La key es gratuita, se genera en keymaster.fivem.net y queda atada al IP del servidor. Sin ella, el servidor inicia pero rechaza conexiones con error de autenticación.
¿Cuánta RAM consume un servidor FiveM básico?
Un servidor vanilla con 32 slots y pocos resources consume entre 1.5 y 3 GB de RAM. Servidores roleplay con framework (ESX/QBCore) y 64 slots superan fácilmente 6 GB. Para proyectos serios, planifica 8 GB como piso y CPU con buen single-thread, ya que FiveM es predominantemente single-threaded.
¿Puedo correr el servidor como root?
Puedes, pero no deberías. Correr servicios de red expuestos como root es una práctica insegura — cualquier exploit en FiveM o en resources mal escritos se convierte en RCE con privilegio total. Crea un usuario dedicado (`adduser fivem`) y corre todo desde él.
¿El servidor se reinicia solo si la VPS se reinicia?
No, a menos que lo configures. Para resiliencia real usa `systemd` con un service unit dedicado o `tmux`/`screen` con autostart en el crontab `@reboot`. Sin esto, cualquier reboot del host tumba el servidor hasta intervención manual.