Creating a Dedicated ARK Server on Ubuntu
This guide demonstrates how to set up a personal ARK: Survival Evolved server on a Linode Compute Instance running a modern Ubuntu distribution.
Supported distributions: Ubuntu 20.04 and 18.04. Recent non-LTS releases like Ubuntu 21.10, 21.04, and 20.10 should also be supported. Ubuntu 16.04 should still be supported, though that LTS release is no longer receiving free security patches or software updates.
Create an 8GB or larger Dedicated CPU Compute Instance. This recommendation is based on the system requirements for an ARK server. Other plans may also work. See the Getting Started guide for instructions.
Ark will be installed through the Steam command-line interface (CLI). See our guide Install SteamCMD for a Steam Game Server if you haven’t installed Steam already.
To connect to your Ubuntu Ark server, you must have a copy of the Ark: Survival Evolved game client running on a local machine.
root or with the
sudo prefix. For more information on privileges, see our Users and Groups guide.
For security reasons, do not run your Ark server as
root. Instead, create a separate
arkuser to run your server application. Make sure to take note of the password you assign:
Configure a firewall, ensuring the following ports are open. See the How to Configure a Firewall with UFW guide for instructions.
Port Use UDP 27015 For the Steam server browser query UDP 7777 For the game client UDP 7778 For raw UDP socket TCP 27020 (Optional) For remote console (RCON) server access
Run the following command to increase the allowed number of open files:
echo "fs.file-max=100000" >> /etc/sysctl.conf && sysctl -p
Update the hard and soft file limits by running:
echo "* soft nofile 1000000" >> /etc/security/limits.conf echo "* hard nofile 1000000" >> /etc/security/limits.conf
Enable PAM limits by issuing this command:
echo "session required pam_limits.so" >> /etc/pam.d/common-session
Switch your session to that of the
arkuser, and create a
serverdirectory that will contain your ARK server files:
su - ark mkdir server
Create a symlink from
arkuser’s home directory:
ln -s /usr/games/steamcmd steamcmd
steamcmdwith the following options to install the ARK server:If you want to run an Ark: Survival of the Fittest server, replace the instances of
steamcmd +login anonymous +force_install_dir /home/ark/server +app_update 376030 +quit
This will take several minutes to complete.
Instead of using a script, we suggest creating a systemd unit file for your Ark server. That will allow it to start automatically after a reboot.
Switch back to your root user session:
Create a new systemd service file by opening it in Nano (or the editor of your choice):
Copy and paste the following lines to the new file. Replace the
customnamevalue within the
SessionNameparameter on line 12 with a unique name you will use to identify your Ark server.
- File: /lib/systemd/system/ark.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[Unit] Description=ARK Survival Evolved [Service] Type=simple Restart=on-failure RestartSec=5 StartLimitInterval=60s StartLimitBurst=3 User=ark Group=ark ExecStartPre=/home/ark/steamcmd +login anonymous +force_install_dir /home/ark/server +app_update 376030 +quit ExecStart=/home/ark/server/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=mumbly -server -log ExecStop=killall -TERM srcds_linux [Install] WantedBy=multi-user.target
Exit the file and save the buffer.
Update systemd to apply your changes:
Enable your new systemd unit and start your ARK server:
systemctl enable ark.service systemctl start ark
As noted previously, Ark is not cross-platform multiplayer compatible. However, in 2020, Studio Wildcard announced cross-play between Steam and Epic Games versions of Ark. Most importantly, the Epic version cannot use mods, so if you have Epic players joining, be sure to use a vanilla version.
To allow Epic players on to your server, add
-crossplay to the command to start the server. This file is the same
ark.service from above, but with the
-crossplay argument added to the ExecStart parameter:
ExecStart=/home/ark/server/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=mumbly -server -log -crossplay
If you only have Epic players joining the server, you can add
-epiconly to keep Steam players out.
Once you’ve started the server, you can add or remove settings by editing the
GameUserSettings.ini file under
/home/ark/server/ShooterGame/Saved/Config/LinuxServer. Add the following settings within the
[ServerSettings] section (near the bottom) of that file, replacing the “example” passwords with your own (don’t make them the same password):
- File: /home/ark/server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
ServerPassword determines the password that users will be required to enter when connecting to your server. You can omit this line to allow access without a password.
ServerAdminPassword specifies the administrative password that will be used when issuing game commands.
ServerPassword option when connecting to the server, you will need to click on Show Password Protected in the client’s filters.
Several options can be configured within this file. See the Server Configuration section of the Ark wiki.
If you make any changes while the server is running, you will need to stop and start it again before those changes take effect. To stop the server, enter:
systemctl stop ark
To start it again, enter:
systemctl start ark
On your local computer, open the Ark: Survival Evolved game client.
Click on “Join Ark”:
As the server list populates, you can filter the results using the session filters in the lower-left corner of the window. Select “Unofficial” from the Session Filter pull-down menu and check the Show Password Protected box (the checkmark is somewhat faint, so look closely):
Enter the server’s custom name (set in the Creating and Starting the Ark Service section above) in the Name Filter at the top of the window. Your server should appear. Click Join and you should be prompted for the password and then click “Accept”:
You should now be connected to the dedicated Ark Server you created within this guide.
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
This page was originally published on