Creating an Ark: Survival Evolved dedicated server

Wow, this one was fun. I spent several days knocking my head against my desk trying to figure out why this wasn’t working, only to find out I was being silly.

So if you want to install and run a dedicated Ark: Survival Evolved server, you’ll first need to install the prerequisites. For our server, we used SteamCMD, as I feel it’s the easiest way to keep the game server updated. So install the dependencies.

# sudo yum install glibc libstdc++

Now, there’s some quirks to Ark: Survival Evolved that require us to make some changes to our server. If you haven’t already, you’ll need to increase the open files limit for your server by editing your configurations.

  1. Add the following line to the /etc/sysctl.conf file:
  2. Run the following command to apply the change:
    # sudo sysctl -p /etc/sysctl.conf
  3. Add the following lines to /etc/security/limits.conf:
    * soft nofile 1000000
    * hard nofile 1000000
  4. Add the following line to /etc/pam.d/common-session:
    session required

Now we want to create a specific user to run your server. You can absolutely run the server as root, but do you really want to risk some exploit being discovered, allowing some hacker root access to your host? Didn’t think so.

# sudo useradd -m gameserver
# su - gameserver

Now we want to go ahead and install SteamCMD.

# mkdir ~/steamcmd
# cd ~/steamcmd

Now, download the SteamCMD files.

# wget

And extract the files.

# tar -xvf steamcmd_linux.tar.gz

Navigate to the steamcmd directory, and start SteamCMD.

# cd ~/steamcmd
# ./

Next, you’ll need to login to Steam. In order to install Ark: Survival Evolved, you do not need to login to your Steam account. Which is nice, because with the recent requirements for Steam Guard, and all the extra security, it just gets super annoying having to login and verify every time you need to update.

login anonymous

Now, we’ll define our install directory. Without defining this, it’ll install the game files in our steamcmd directory. It’s possible to keep going like that, but I prefer to use a separate install directory so I can organize my Steam apps more efficiently.

force_install_dir /home/gameserver/ARK

And now install the game, which includes the game server files.

app_update 376030 validate

Depending on the speed of your internet connection, it may take quite a while for the game files to download and install. Once the files are installed, you can exit SteamCMD.


Great! Now your game is installed. You could just run your server in a separate screen by running the command:

~./ARK/ShooterGameServer TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password> -server -log

Where <server_name> is the name you are going to give your server, <join_password> is the password any player would have to enter to join your server, and <admin_password> is the password you would need to enter in the client console to enable cheats.

Unfortunately, we’re not quite ready to join the server, because you probably haven’t opened up the ports that Ark: Survival Evolved uses.

Port Purpose
UDP 27015 Query port for Steam’s server browser
UDP 7777 Game client port
TCP 32330 RCON for remote console server access (optional)

[su_spoiler title=”Finding nonstandard ports”]

Note: For my setup, I had to open up a different game client port for some unknown reason. I’m sure it’s different for a reason, but I have no idea why. If your server is not joinable after following these instructions, you should check which ports the game server is using by using netstat.

# sudo netstat -tulpn

You should see a list of ports and the services using them. You’d be looking for the ports being used by ShooterGameServer. Add those ports to your firewall rules.


Add these ports to your firewall rules.

# sudo firewall-cmd --permanent --add-port=27015/udp
# sudo firewall-cmd --permanent --add-port=7777/udp
# sudo firewall-cmd --permanent --add-port=32330/tcp

And reload the rules.

# sudo firewall-cmd --reload

Okay, now you can find your server when you search for LAN servers in the game client. For most people, that’s all you’ll need to do to run and play on a dedicated server. For me though, I wanted to have a way to be able to update the server when I need to, and I wanted to also have a way to start the server automatically as a service. If you’d prefer to just run a bash script to keep it updated and start/stop the server, I found a great script on Reddit. I modified it a little to suit my needs, and I think it works pretty well. Just make sure you edit the config file as needed, and run the script in a new screen session.

To run the server as a service, you’ll want to add a service file to systemd. An added bonus of doing this is that the service will automatically update the open file limits on-the-fly. Create the file /etc/systemd/system/ark-dedicated.service and add this text:

Description=ARK: Survival Evolved dedicated server

ExecStart=/home/gameserver/ARK/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<SESSION_NAME> -server -log
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID


Make sure to reload your service lists.

# sudo systemctl daemon-reload

Before starting the service, make sure you add your configuration settings in the /home/gameserver/ARK/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini file.

Now you can start the service.

# sudo systemctl start ark-dedicated

And make sure it runs on system startup.

# sudo systemctl enable ark-dedicated

That’s it! You should be all set to join your server now. I hope this tutorial helps a few people looking to host their own servers, and hopefully you won’t have such a hard time of it as I did.

Thanks for reading,


Leave your comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.