Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

This tutorial explains how to setup a Counter-Strike: Global Offensive server on Arch Linux.

This tutorial assumes that you logged in with a standard user account and have sudo privileges. We will be using a normal user account because building packages with AUR should not be done from the root account.

Before You Begin

If you are using a 64-bit version of Arch Linux, it is very important that you have the multilib repository enabled. If it is not enabled, SteamCMD cannot download or run the game server files. To enable multilib, simply uncomment the following lines in /etc/pacman.conf.

[multilib]
Include = /etc/pacman.d/mirrorlist

This does not apply to 32-bit Arch Linux systems.

Install SteamCMD

There is an AUR package for SteamCMD. It is possibly the easiest way to install SteamCMD on Arch. There are a few things to note about it though:

  • All relative paths are relative to /usr/share/steamcmd.
  • To upgrade SteamCMD itself, you must be on the root account.

If you are on a 64-bit server, you must install the package lib32-gcc-libs.

sudo pacman -Sy lib32-gcc-libs

Now we must build the package. Using curl, download the tarball for the package.

curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz

Once the download finishes, extract and change to the directory created.

tar -xvzf steamcmd.tar.gz
cd steamcmd

Now, using makepkg, build the package.

makepkg -ci

If you didn't pass the -i flag to the makepkg command, then use the following command to install it.

sudo pacman -U *.pkg.tar.xz

You now have SteamCMD installed and ready to download Counter-Strike: Global Offensive server.

Install The Counter-Strike: Global Offensive Server

This guide uses a separate user to run the server, so we will create a new csgo user and group with it's own home folder in /var/lib.

sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo

Now to install the server.

sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit

Once that finishes downloading, you have the server installed.

Configuring

Although you can run the server, some configuration should be done so that the server isn't too generic. The main file that we put settings in is the server.cfg file. Below is a very basic server.cfg file.

To open/create the file, use your favorite editor. I use vim in this example.

sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg

Add the following. More settings can be found on the Valve Developer Wiki. Be sure to change some of the settings to suit your needs.

hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"

exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip

Running Your Server

To run your server unattended, you will need a multiplexer like GNU Screen or tmux. In this article, I am going to use tmux to run the server, but if you prefer and know how to use screen, feel free to use it.

Install tmux by using pacman.

sudo pacman -Sy tmux

You can start the server with the following command. You can change the map if desired. Please read the "Final Notes" for more information on the game_type and game_mode values. This example is for a classic casual server.

sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'

If you ever need to attach to the console, run the following.

sudo -u csgo tmux attach -t csgo-console

You can leave the server console by typing CTRL + B then releasing those keys and then pressing D.

Running With systemd

Running the server with systemd is convenient for many reasons. The main one is that you can have it start when the VPS starts. This requires a script and a systemd unit to be written. Even though this is a good idea, it is optional.

The first thing to write is the start script. To create the script, use your favorite editor. Here vim is used, but you can use any text editor like nano.

sudo -u csgo vim ~csgo/server/csgo.sh

Add the following and be sure to look at the line with the start command as it has the game mode and type.

#!/bin/sh

USER=$2

if [ -z $2 ]; then
  USER="csgo"
fi

case "$1" in
  start)
    sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
    ;;

  stop)
    sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
    sleep 10
    sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
    sleep 5
    ;;

  *)
    echo "Usage: $0  user"
esac

exit 0

Now you need to make the systemd unit.

sudo vim /usr/lib/systemd/system/csgo.service

Add the following.

[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target

[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking

[Install]
WantedBy=multi-user.target

Now make sure the csgo.sh file is executable.

sudo chmod +x ~csgo/server/csgo.sh

After all that, you can use systemctl to start and stop the server. Also you can use it to make it start on boot.

To start:

sudo systemctl start csgo.service

To stop:

sudo systemctl stop csgo.service

To restart:

sudo systemctl restart csgo.service

To enable at boot:

sudo systemctl enable csgo.service

To disable at boot:

sudo systemctl disable csgo.service

Even though systemd handles starting and stopping the server, you can access the console with the following command.

sudo -u csgo tmux attach -t csgo-console

Final Notes

SteamCMD is installed in an area where only root can change files (see note in the "Install SteamCMD" section). If you ever need to upgrade SteamCMD itself, just run it as root.

sudo steamcmd +quit

If you need to update the server. First stop the server and then use SteamCMD to update (using the same command to install).

sudo systemctl stop csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service

The game mode and game type in the starting command are important depending on what kind of server you want. Here's a quick table of the possible values.

      Game Mode      | game_type | game_mode
Classic Casual       | 0         | 0
Classic Competitive  | 0         | 1
Arms Race            | 1         | 0
Demolition           | 1         | 1
Deathmatch           | 1         | 2

There are a lot more configuration topics not covered in this tutorial. If you need more information, please refer to the Valve Developer Wiki.


A 2019 Arch Linux telepítése Vultr szerverre

A 2019 Arch Linux telepítése Vultr szerverre

Bevezetés Az Arch Linuxnak kisebb, de még mindig erős követése van, mint a népszerűbb disztribúciók. Filozófiája egészen más, előnyei vannak an

Az Arch Linux telepítése Vultr szerverre

Az Arch Linux telepítése Vultr szerverre

A Vultr azt a fantasztikus funkciót kínálja, hogy a kiváló sablonjaik mellett saját egyéni képét is használhatja, amely lehetővé teszi a futtatást.

A Devtools használata Arch Linuxon

A Devtools használata Arch Linuxon

A Devtools csomag eredetileg a Megbízható felhasználók számára készült, hogy megfelelően hozzon létre csomagokat a hivatalos adattárak számára. Azonban hétköznapi felhasználók is használhatják

Makepkg használata Arch Linuxon

Makepkg használata Arch Linuxon

Ha közvetlenül a makepkg-ot használja, az némileg szennyezi a rendszert. Az alap-fejlesztési csomagcsoportot telepíteni kell. Ily módon alapértelmezés szerint függőségekre van szükség

A PostgreSQL 11.1 telepítése Arch Linuxra

A PostgreSQL 11.1 telepítése Arch Linuxra

Előfeltételek Egy Vultr-szerver, amelyik naprakész Arch Linuxot futtat (lásd ezt a cikket.) Sudo hozzáférés. A rootként futtatandó parancsok előtt # és egy szerepel

A HTTPS használata Arch Linux webszerveren

A HTTPS használata Arch Linux webszerveren

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáférés Parancsok szükségesek t

Telepítse az Arch Linuxot a Btrfs Snapshotting segítségével

Telepítse az Arch Linuxot a Btrfs Snapshotting segítségével

Előszó Az Arch Linux egy általános célú disztribúció, amely jól ismert élvonalbeli technológiájáról és rugalmas konfigurációjáról. A Btrfs pillanatképekkel tak

Csomagok építése Arch Linuxon (beleértve az AUR-t is)

Csomagok építése Arch Linuxon (beleértve az AUR-t is)

Arch Linuxon a hivatalos adattárak a következők: core, extra és közösségi. Ezek a csomagok már le vannak fordítva, és telepítésük a pacman-en keresztül történik. A th

A Spigot szerver beállítása Arch Linuxon

A Spigot szerver beállítása Arch Linuxon

Ez az oktatóanyag elmagyarázza, hogyan állíthat be Minecraft szervert a Spigot használatával Arch Linux rendszeren. Ez az oktatóanyag feltételezi, hogy Ön normál felhasználó (nem root felhasználó), és hav

Az Nginx 1.14 telepítése Arch Linuxra

Az Nginx 1.14 telepítése Arch Linuxra

Előfeltételek Egy Vultr-szerver, amelyik naprakész Arch Linuxot futtat (lásd ezt a cikket.) Sudo hozzáférés. A rootként futtatandó parancsok előtagja #. Th

Az Apache 2.4 telepítése Arch Linuxra

Az Apache 2.4 telepítése Arch Linuxra

Előfeltételek Egy Vultr-szerver, amely naprakész Arch Linuxot futtat. További információért tekintse meg ezt az útmutatót. Sudo hozzáférés. A parancsokat rootként kell futtatni ar

A Python 3.7 telepítése Arch Linux webszerverre

A Python 3.7 telepítése Arch Linux webszerverre

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáférés: A parancsokhoz szükség van

A Perl 5.28 telepítése Arch Linux webszerverre

A Perl 5.28 telepítése Arch Linux webszerverre

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáférés: A parancsokhoz szükség van

A PHP 7.3 telepítése Arch Linux webszerverre

A PHP 7.3 telepítése Arch Linux webszerverre

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáféréssel. A parancsok megkövetelik

Setup Mumble Server on Arch Linux

Setup Mumble Server on Arch Linux

This tutorial explains how to setup a Mumble server (Murmur) on Arch Linux. Everything done in this tutorial is done as the root user. Installation an

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

This tutorial explains how to setup a Counter-Strike: Global Offensive server on Arch Linux. This tutorial assumes that you logged in with a standard use

Állítson be egy Team Fortress 2 szervert Arch Linuxon

Állítson be egy Team Fortress 2 szervert Arch Linuxon

Ez az oktatóanyag elmagyarázza, hogyan állíthat be egy Team Fortress 2 szervert Arch Linux rendszeren. Feltételezem, hogy nem root felhasználói fiókkal van bejelentkezve, amely sudo hozzáféréssel rendelkezik

A MariaDB 10.3 vagy a MySQL 8.0 telepítése Arch Linuxra

A MariaDB 10.3 vagy a MySQL 8.0 telepítése Arch Linuxra

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Sudo hozzáférés: A rootként futtatandó parancsok előtagja # és egy

A MongoDB 4.0 telepítése Arch Linuxra

A MongoDB 4.0 telepítése Arch Linuxra

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket) Sudo hozzáférés: A rootként futtatandó parancsok előtagja # és egy

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket