V Rising Server on a VPS: step-by-step
Servidores de jogos · By Kevin Marcondes · Published on · Updated on · 8 min read
Want to play with friends in a persistent world? This guide shows how to host a V Rising server on an Ubuntu VPS using SteamCMD and Wine. You’ll open the correct UDP ports, configure ServerHostSettings.json, create a systemd service, and verify connectivity from the game client. A direct, practical step-by-step.
Prerequisites and resource sizing
This tutorial uses Ubuntu Server 22.04 LTS (64-bit) on a VPS with a public IPv4 and SSH access. You will need root privileges to install packages and create services.
Open the game UDP ports at both the VPS provider and the OS: 9876 (GamePort) and 9877 (QueryPort). If you enable RCON, also allow the TCP port you configure.
Choose a VPS based on CPU, RAM, disk, and bandwidth. Suggestions below are starting points—adjust for mods, map size, tick rate and concurrent players.
If you’re considering packaging the server in containers, compare pros and cons of VMs vs containers in Docker vs virtual machines for HA.
- Public IPv4 and TCP 22 open for SSH.
- UDP 9876 and 9877 open at provider and on the OS (ufw/iptables).
- SSD with good IOPS for saves and autosaves.
- Regular backups of the save directory.
- Maintenance window to update the binary via SteamCMD.
| Concurrent players | Suggested vCPU | Suggested RAM | Storage / IOPS |
|---|---|---|---|
| 2–6 | 2 vCPU | 4 GB | SSD, ~10–20 GB free |
| 7–16 | 3–4 vCPU | 6–8 GB | Fast SSD, ~20–40 GB |
| 17–30 | 4–6 vCPU | 8–12 GB | Fast SSD, ~40–80 GB |
1) Prepare the VPS: user, updates and firewall
Run system updates, create a dedicated user (steam) and enable the firewall, allowing SSH and the V Rising ports. Be careful when changing a remote firewall: always keep your SSH session open to avoid locking yourself out.
Also check your provider’s firewall/VPC rules. Help: AWS Security Groups and GCP VPC firewall.
# Atualizar sistema
sudo apt update && sudo apt -y upgrade
# Criar usuário dedicado sem shell de login interativo
sudo adduser --disabled-login --gecos "" steam
# UFW: liberar SSH e portas do V Rising (UDP)
sudo apt -y install ufw
sudo ufw allow 22/tcp
sudo ufw allow 9876/udp
sudo ufw allow 9877/udp
# (Opcional) se usar RCON, ajuste a porta TCP correspondente
# sudo ufw allow 25575/tcp
sudo ufw --force enable
# Diretórios do servidor
sudo mkdir -p /srv/vrising/save-data
sudo chown -R steam:steam /srv/vrising
2) Install SteamCMD and Wine on Ubuntu
We’ll install SteamCMD (Steam’s command-line client) and Wine to run the Windows server binary on Linux. This requires 32-bit packages for compatibility.
After installation, steamcmd will be available at /usr/games/steamcmd.
# Habilitar arquitetura i386 e repositório multiverse (para steamcmd)
sudo dpkg --add-architecture i386
sudo add-apt-repository multiverse -y
sudo apt update
# Instalar SteamCMD, Wine e dependências comuns
sudo apt install -y steamcmd wine64 wine32:i386 winbind lib32gcc-s1
# Verificações rápidas (opcional)
/usr/games/steamcmd +quit
wine64 --version
3) Download and update the server with SteamCMD
Install the VRising Dedicated Server into /srv/vrising. Anonymous login often works. If you get an authorization error, authenticate with your Steam account inside steamcmd.
To run commands as the steam user, use sudo -u steam. Avoid putting passwords on the command line on shared machines; if needed, log in interactively in the steamcmd prompt.
# Opção A: tentar login anônimo
sudo -u steam /usr/games/steamcmd \
+force_install_dir /srv/vrising \
+login anonymous \
+app_update 1829350 validate \
+quit
# Opção B: se anônimo falhar, use sua conta Steam (substitua usuário/senha)
# sudo -u steam /usr/games/steamcmd \
# +force_install_dir /srv/vrising \
# +login SEU_USUARIO SEU_PASSWORD \
# +app_update 1829350 validate \
# +quit
4) Configure the server: ports, password and name
The server uses two main config files: ServerHostSettings.json (name, ports, password, listing) and ServerGameSettings.json (game rules). You can keep defaults in VRisingServer_Data/StreamingAssets/Settings or point to a persistent data path.
Create/edit ServerHostSettings.json. Use a strong password. Adjust GamePort/QueryPort to match your firewall and save the file. Minimal example:
- Common config path (default): /srv/vrising/VRisingServer_Data/StreamingAssets/Settings/ServerHostSettings.json
- Separate saves: use -persistentDataPath and keep JSONs in /srv/vrising/save-data/Settings/
{
"Name": "MeuServidorVPS",
"Description": "Servidor privado em VPS",
"GamePort": 9876,
"QueryPort": 9877,
"MaxConnectedUsers": 10,
"MaxConnectedAdmins": 2,
"SaveName": "world1",
"Password": "troque-esta-senha",
"ListOnMasterServer": false
}
5) Create a systemd service to start automatically
Create a systemd unit to start the server at boot and make restarts easier. We use wine64 to run the Windows executable. Adjust WorkingDirectory and parameters (server name, ports, save).
After creating the unit file, reload systemd and enable the service.
# /etc/systemd/system/vrising.service
[Unit]
Description=V Rising Dedicated Server (Wine)
After=network.target
[Service]
User=steam
WorkingDirectory=/srv/vrising
Environment=WINEDEBUG=-all
ExecStart=/usr/bin/wine64 VRisingServer.exe \
-persistentDataPath /srv/vrising/save-data \
-serverName "MeuServidorVPS" \
-saveName "world1" \
-gamePort 9876 \
-queryPort 9877
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
6) Verify operation and connect
Start the service and check the logs. Verify UDP ports are listening. In the game client, connect to the public IP on the GamePort (default 9876).
If your provider uses NAT/firewall, adjust external rules as well—without them the server won’t show up or accept connections.
# Habilitar e iniciar
sudo systemctl daemon-reload
sudo systemctl enable --now vrising
# Acompanhar logs e checar portas
journalctl -u vrising -f
ss -lun | egrep '9876|9877'
Maintenance and common issues
Keep the binary updated via SteamCMD and run regular backups of your saves. If you see connection errors, review both OS and provider firewall rules. Tips below.
To reduce waste and right-size cloud capacity to real usage, see ideas in reduzir custos na nuvem sem retrabalho. For continuous operation, consider alerts with monitoramento remoto de servidores Linux.
- Update without data loss: stop the service, run steamcmd +app_update 1829350 validate, then start the service again.
- Backups: compress /srv/vrising/save-data (worlds and configs) and store them off the VPS.
- Closed ports: check UFW/iptables and your provider’s firewall; test externally with nmap/udp.
- Anonymous download failed: log in to steamcmd with your Steam account.
- Lag or low TPS: increase vCPU/RAM, prioritize SSD and reduce parallel loads on the VPS.
- Public listing: set ListOnMasterServer=true and ensure QueryPort is reachable externally.
- RCON: enable only with a strong password and protect the TCP port with firewall rules.
Frequently asked questions
Which ports does a V Rising server use by default?
The server uses UDP 9876 (GamePort) and UDP 9877 (QueryPort) by default. If you enable RCON, configure and allow a specific TCP port. Make sure those ports are allowed both in the VPS provider firewall/VPC and in the OS firewall (ufw/iptables), and update the ServerHostSettings.json ports to match your rules.
Do I need Windows Server or can I use Linux?
The dedicated server binary is distributed for Windows, but you can run it on Linux using Wine; this guide uses Ubuntu, SteamCMD and wine64 to run the Windows executable. Alternatively, a VPS running Windows Server can run the executable natively; in both cases you must open the same UDP ports and apply equivalent firewall rules.
How do I update without losing the world?
Stop the systemd service, run SteamCMD in the install directory with app_update 1829350 validate, and then restart the service. Saves are stored in the save directory or the path set with -persistentDataPath, so back up the save-data folder before updating to avoid accidental loss and verify the service is stopped before updating the binary.
Why doesn’t my server appear in the public list?
Enable ListOnMasterServer=true in ServerHostSettings.json, ensure the QueryPort (default 9877 UDP) is reachable externally, and confirm provider-level firewall or NAT isn’t blocking UDP. Also allow time for listing propagation. If UDP is blocked at the provider, update the control panel rules and the OS firewall so the master server can query your instance.
How many resources does a VPS need to run without lag?
Resource needs depend on concurrent players, mods and save frequency. As a starting point the guide suggests 2 vCPU and 4 GB RAM for small groups; for 10–20 players consider 3–4 vCPU and 6–8 GB. Monitor CPU, RAM and disk I/O and increase resources if you see high load, low TPS, or lag.
Can I run this inside Docker?
Running inside Docker is possible but requires a suitable image and careful handling of data volumes, Wine compatibility and shutdown signaling. Containerizing changes how you manage saves, updates and service restarts; evaluate trade-offs between container isolation and using full VMs for high availability and persistent storage before choosing Docker for production.
Need help automating your server?
If you want assistance standardizing deployment, monitoring, automating backups and keeping your server stable, get in touch. We can review your VPS, firewall and systemd service.
Discuss your infrastructureSee also
- Tutorial: Implement Canary releases with Traefik in Docker Compose using headers and weighted routing for gradual PHP deployments
- Tutorial: Configure HAProxy with Let's Encrypt and health checks to load balance traffic between Docker containers on a VPS (step-by-step)
- Hands‑On Tutorial: Implement mTLS Between Nginx and Microservices with smallstep CA in Docker Compose
- Tutorial: configure cgroup v2 and systemd ResourceControl to limit CPU, memory and I/O for Docker containers on Debian