How to install an ARK Survival Server on CentOS 7

29742653174_41765bcf04_b

This article will walk you through how to setup Ark: Survival Evolved on CentOS 7 on a ServerMania dedicated server, cloud server, or SSD cloud virtual private server.

What you’ll need:

-A CentOS server
-Root access
-A sufficient amount of RAM: We recommend at least 8GB

Step 1: Update the server

media_1488326075314.png

Before we begin, let’s update the server:

yum update -y

This may take some time depending on how up to date your server is.

Step 2: Add a user for the Ark server

media_1488326185332.png

Add a new user to run the Ark server in:

adduser arkserver

Set the password on the new user:

passwd arkserver

Step 3: Open ports on iptables

Screen Shot 2017-02-28 at 8.59.03 PM

Run these commands to open ports in iptables:

iptables -A INPUT -p udp -m udp –sport 27015 –dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp –sport 7777 –dport 1025:65355 -j ACCEPT
iptables -A INPUT -p tcp -m tcp –sport 32330 –dport 1025:65355 -j ACCEPT

Save iptables configuration:

/sbin/service iptables save

 

Step 4: Install the required libraries

Run the following command to install the libraries required for SteamCMD:

yum install glibc.i686 libstdc++.i686 ncurses-libs.i686 -y

Step 5: Update system settings

media_1488326792742.png

SteamCMD requires a few changes to sysctl.conf to run properly. This command will update the max files open:

echo “fs.file-max=100000” >> /etc/sysctl.conf

sysctl -p /etc/sysctl.conf

Step 6: Update security limits file

media_1488326946795.png

We’ll input information into our limits.conf file with this command:

echo -e “* soft nofile 1000000\n* hard nofile 1000000” >> /etc/security/limits.conf

Step 7: Switch to arkserver user

media_1488327111893.png

We’ll now switch into our arkserver user:

su – arkserver
cd ~

Step 8: Download and extract SteamCMD

media_1488327198783.png

Download SteamCMD and some required software

yum install nano wget screen -y
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

Extract the tar.gz file:

tar xf steamcmd_linux.tar.gz

Step 10: Launch and update SteamCMD

media_1488327269002.png

We will now launch and update SteamCMD. App 376030 is Ark Survival Evolved Dedicated Server and it will be installed in the /ark directory:

./steamcmd.sh +login anonymous +force_install_dir ./ark +app_update 376030 validate +quit

This process will take some time to complete.

The screen will display ” Success! App ‘376030’ fully installed.” upon completion.

Step 11: Create an update script

media_1488328594737.png

Let’s create a file called updatearkserver and open it in the vi text editor:

vi /home/arkserver/updatearkserver

Press i to enter insert mode. Paste this content into the file:

login anonymous
force_install_dir ./ark
app_update 376030
quit

Hit escape and type :wq to write quit the file

Now when you want to update your server, simply run:

./steamcmd.sh +runscript updatearkserver

Step 12: Create a start script

media_1488328902927.png

Create a file called arkserver.sh in the vi text editor:

vi /home/arkserver/ark/arkserver.sh

Type i and paste this content into the file:

#!/bin/bash

servername=”ServerName”
port=”7777″
queryport=”27015″
rconport=”32330″
rconpassword=”YourAdminPassword”
maxplayers=”50″

screen -dmS ark ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?Multihome=0.0.0.0?SessionName=$?MaxPlayers=$?QueryPort=$?RCONPort=$?Port=$?ServerAdminPassword=$ -server -log

Hit escape and type :wq to write quit the file.

Update the permissions of the file

chmod +x /home/arkserver/ark/arkserver.sh

To run the server, execute:

sh /home/arkserver/ark/arkserver.sh

To quit the server, execute:

screen -S ark -X quit

Step 13: Connect to your server

You can now connect to your Ark: Survival Evolved game server. Open Steam > click View > Server > and add your server to the Favorites list. Once you open the game, click Join Ark and your server will be available to connect.

About The Author

generic avatar icon
  • Very nice instructions, just what I was looking for for Linux.

    I’m playing with putting this on AWS for my own amusement and use CloudFormation to put this whole assembly into an automated stack. There I intended to use Amazon Linux, which is pretty much EL based, so your instructions should work out of the box.

    Cheers!

  • The steps using iptables doesn’t work on out-of-the-box CentOS 7.4, it’s my understanding that it was replaced by firewalld. This is what worked for me (iptables did not):

    firewall-cmd –permanent –add-port=27015/udp
    firewall-cmd –permanent –add-port=7777/udp
    firewall-cmd –permanent –add-port=32330/udp