ARK: Survival Evolved has a free dedicated server for Linux that you can download anonymously with SteamCMD. It is one of the most resource-hungry game servers around, so a clean setup matters: enough RAM, a raised open files limit and a service manager that restarts it and keeps it updated. In this tutorial you will install the ARK server on Ubuntu 24.04, run it as a systemd service, open the required ports and configure the most common game settings.
Prerequisites
To follow this guide you need:
- A server running Ubuntu 24.04 LTS (x86_64), for example a CubePath VPS or dedicated server. Plan for at least 4 CPU cores and 8 GB of RAM for a single map with a small group; more players, bigger bases and larger maps push memory use well beyond that.
- At least 40 GB of free disk space on SSD storage. The server files alone are around 20 GB and saves grow over time.
- A non-root user with
sudoprivileges. - ARK: Survival Evolved on Steam on the PC you will play from.
Step 1 - Installing SteamCMD
SteamCMD is in Ubuntu's multiverse repository and depends on 32-bit libraries. Enable both, then install it:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd
Accept the Steam license agreement when prompted by selecting I AGREE. The binary is installed as /usr/games/steamcmd.
Step 2 - Creating a dedicated user and downloading ARK
Create an unprivileged user to own the server files and run the process:
sudo useradd -m -s /bin/bash steam
sudo -iu steam
The ARK dedicated server is Steam app 376030. Download it into /home/steam/ark. +force_install_dir must come before +login:
/usr/games/steamcmd +force_install_dir /home/steam/ark +login anonymous +app_update 376030 validate +quit
This is a large download, so expect it to take a while. It ends with:
Success! App '376030' fully installed.
Confirm the server binary exists and go back to your sudo user:
ls /home/steam/ark/ShooterGame/Binaries/Linux/ShooterGameServer
exit
Step 3 - Opening the firewall
ARK uses these ports:
| Port | Protocol | Purpose |
|---|---|---|
| 7777 | UDP | Game client traffic (Port) |
| 7778 | UDP | Raw socket port, always Port + 1 |
| 27015 | UDP | Steam query port, used by server browsers (QueryPort) |
| 27020 | TCP | RCON, only if you enable it |
If UFW is enabled, open the game and query ports:
sudo ufw allow 7777:7778/udp
sudo ufw allow 27015/udp
Leave RCON closed unless you need remote administration, and in that case allow it only from your own IP address.
Step 4 - Creating the systemd service
ARK takes its map and basic session settings as a single ?-separated argument on the command line. Everything else goes in GameUserSettings.ini, which you will edit in Step 6.
Create the unit file:
sudo nano /etc/systemd/system/ark.service
[Unit]
Description=ARK: Survival Evolved dedicated server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam/ark/ShooterGame/Binaries/Linux
LimitNOFILE=100000
ExecStartPre=-/usr/games/steamcmd +force_install_dir /home/steam/ark +login anonymous +app_update 376030 +quit
ExecStart=/home/steam/ark/ShooterGame/Binaries/Linux/ShooterGameServer "TheIsland?listen?SessionName=CubePath ARK?Port=7777?QueryPort=27015?MaxPlayers=20" -server -log
TimeoutStartSec=1800
TimeoutStopSec=120
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
What these lines do:
LimitNOFILE=100000raises the open files limit for the ARK process. The server opens a very large number of files and crashes with "too many open files" errors under the default limit of 1024; 100000 is the value the ARK server documentation recommends. The kernel-wide maximum (fs.file-max) on Ubuntu 24.04 is already far higher, so you do not need to change it.ExecStartPrechecks for game updates before each start. The leading-lets the server start even if Steam is unreachable, andTimeoutStartSecgives large updates time to finish.TheIslandis the map. Other official maps includeTheCenter,ScorchedEarth_P,Ragnarok,Aberration_P,Extinction,Valguero_P,Genesis,CrystalIsles,Gen2,LostIslandandFjordur.SessionNameis the name shown in the server list.MaxPlayerscaps the number of connected players.
Reload systemd and start the server:
sudo systemctl daemon-reload
sudo systemctl enable --now ark
Step 5 - Verifying the server
Loading the map takes several minutes, and much longer on the very first start. Follow the log:
sudo journalctl -u ark -f
Once loading has finished, check that the process is listening on its UDP ports:
sudo ss -ulpn | grep ShooterGame
UNCONN 0 0 0.0.0.0:7777 0.0.0.0:* users:(("ShooterGameServ",pid=5230,fd=...))
UNCONN 0 0 0.0.0.0:7778 0.0.0.0:* users:(("ShooterGameServ",pid=5230,fd=...))
UNCONN 0 0 0.0.0.0:27015 0.0.0.0:* users:(("ShooterGameServ",pid=5230,fd=...))
Check memory use with systemctl status ark --no-pager; the Memory: line shows how much RAM the server is using with no players online, which gives you an idea of your headroom.
To connect, open Steam and go to View > Game Servers > Favorites, click Add a server and enter your_server_ip:27015. Once Steam shows the server, you can join from there or find it in the in-game server list by its session name (enable Show Player Servers).
Step 6 - Configuring GameUserSettings.ini
The first start creates the configuration files in ShooterGame/Saved/Config/LinuxServer/. The server rewrites GameUserSettings.ini when it shuts down, so always stop it before editing, or your changes are lost:
sudo systemctl stop ark
sudo -u steam nano /home/steam/ark/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
Find the [ServerSettings] section and set or add these keys, keeping the other lines in the section as they are:
[ServerSettings]
ServerPassword=your_join_password
ServerAdminPassword=your_strong_admin_password
DifficultyOffset=1.0
XPMultiplier=1.0
TamingSpeedMultiplier=3.0
HarvestAmountMultiplier=2.0
AutoSavePeriodMinutes=15
ServerPVE=True
ServerPasswordis what players need to join. Leave it empty for a public server.ServerAdminPasswordunlocks admin commands in-game. Use a long, unique value.- The multipliers change progression speed;
1.0is the official rate. AutoSavePeriodMinutescontrols how often the world is saved to disk.ServerPVE=Truedisables player versus player damage. Remove it or set it toFalsefor PvP.
Start the server again:
sudo systemctl start ark
In game, open the console (Tab by default) and run enablecheats your_strong_admin_password to become admin. From then on you can run admin commands with the admincheat prefix, for example admincheat saveworld to force a save or admincheat broadcast Restarting in 5 minutes to message everyone.
Step 7 - Backing up saves
The world and player data are stored in ShooterGame/Saved/SavedArks/. Take backups from there with a cron job for the steam user. This one runs every night at 05:00 and keeps 7 days of archives:
sudo -u steam mkdir -p /home/steam/backups
sudo -u steam crontab -e
0 5 * * * tar -czf /home/steam/backups/ark-$(date +\%F).tar.gz -C /home/steam/ark/ShooterGame/Saved SavedArks Config && find /home/steam/backups -name 'ark-*.tar.gz' -mtime +7 -delete
The archive includes Config so a restore brings back your settings too. The % is escaped because cron treats a bare % as a newline. Run admincheat saveworld before a manual backup if you want the most recent state, and copy the archives off the server regularly.
Troubleshooting
- The log shows "Too many open files" or the server crashes while loading. Confirm the limit applies with
cat /proc/$(pgrep -f ShooterGameServer)/limits | grep 'open files'. It must show 100000. - The process is killed during loading. The server ran out of memory. Check with
sudo journalctl -k | grep -i oom, then add RAM or swap, or choose a smaller map. - Settings revert after a restart. You edited
GameUserSettings.iniwhile the server was running. Stop the service first, then edit. - The server does not appear in Steam. Make sure UDP 27015 is open and that you added the server with the query port, not the game port.
Conclusion
You now have an ARK: Survival Evolved dedicated server on Ubuntu 24.04 that runs under systemd, updates itself on restart and keeps nightly backups of its saves and configuration. As next steps, you can add Steam Workshop mods with the ActiveMods key, run a second map on different ports and link them into a cluster so players can transfer between them, or schedule a daily restart with a systemd timer to keep memory use under control.
