Πριν ξεκινήσεις
Εγκαταστήστε το SteamCMD
Εγκαταστήστε τον διακομιστή Counter-Strike: Global Offensive
Διαμόρφωση
Εκτέλεση του διακομιστή σας
Τρέξιμο με systemd
Τελικές Σημειώσεις
Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή Counter-Strike: Global Offensive στο Arch Linux.
Αυτό το σεμινάριο προϋποθέτει ότι έχετε συνδεθεί με έναν τυπικό λογαριασμό χρήστη και έχετε δικαιώματα sudo. Θα χρησιμοποιήσουμε έναν κανονικό λογαριασμό χρήστη, επειδή η δημιουργία πακέτων με AUR δεν θα πρέπει να γίνεται από τον λογαριασμό root.
Πριν ξεκινήσεις
Εάν χρησιμοποιείτε μια έκδοση 64-bit του Arch Linux, είναι πολύ σημαντικό να έχετε multilibενεργοποιημένο το αποθετήριο. Εάν δεν είναι ενεργοποιημένο, το SteamCMD δεν μπορεί να πραγματοποιήσει λήψη ή εκτέλεση των αρχείων διακομιστή του παιχνιδιού. Για να ενεργοποιήσετε το multilib, απλώς καταργήστε το σχόλιο των παρακάτω γραμμών στο /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist
Αυτό δεν ισχύει για συστήματα Arch Linux 32-bit.
Εγκαταστήστε το SteamCMD
Υπάρχει ένα πακέτο AUR για το SteamCMD. Είναι ίσως ο ευκολότερος τρόπος εγκατάστασης του SteamCMD στο Arch. Ωστόσο, υπάρχουν μερικά πράγματα που πρέπει να σημειωθούν σχετικά:
- Όλες οι σχετικές διαδρομές είναι σχετικές με το
/usr/share/steamcmd.
- Για να αναβαθμίσετε το ίδιο το SteamCMD, πρέπει να είστε στον λογαριασμό root.
Εάν βρίσκεστε σε διακομιστή 64-bit, πρέπει να εγκαταστήσετε το πακέτο lib32-gcc-libs.
sudo pacman -Sy lib32-gcc-libs
Τώρα πρέπει να φτιάξουμε το πακέτο. Χρησιμοποιώντας το curl, κατεβάστε το tarball για το πακέτο.
curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz
Μόλις ολοκληρωθεί η λήψη, εξαγάγετε και αλλάξτε στον κατάλογο που δημιουργήθηκε.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Τώρα, χρησιμοποιώντας makepkg, δημιουργήστε το πακέτο.
makepkg -ci
Εάν δεν μεταβιβάσατε τη -iσημαία στην εντολή makepkg, χρησιμοποιήστε την ακόλουθη εντολή για να την εγκαταστήσετε.
sudo pacman -U *.pkg.tar.xz
Τώρα έχετε εγκαταστήσει το SteamCMD και είστε έτοιμοι για λήψη του διακομιστή Counter-Strike: Global Offensive.
Εγκαταστήστε τον διακομιστή Counter-Strike: Global Offensive
Αυτός ο οδηγός χρησιμοποιεί έναν ξεχωριστό χρήστη για την εκτέλεση του διακομιστή, επομένως θα δημιουργήσουμε έναν νέο χρήστη και ομάδα csgo με τον δικό του αρχικό φάκελο στο /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
Τώρα για να εγκαταστήσετε τον διακομιστή.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
Μόλις ολοκληρωθεί η λήψη, έχετε εγκαταστήσει τον διακομιστή.
Διαμόρφωση
Παρόλο που μπορείτε να εκτελέσετε τον διακομιστή, θα πρέπει να γίνουν ορισμένες ρυθμίσεις, ώστε ο διακομιστής να μην είναι πολύ γενικός. Το κύριο αρχείο στο οποίο βάζουμε ρυθμίσεις είναι το server.cfgαρχείο. Παρακάτω είναι ένα πολύ βασικό server.cfgαρχείο.
Για να ανοίξετε/δημιουργήσετε το αρχείο, χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή. Χρησιμοποιώ το vim σε αυτό το παράδειγμα.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Προσθέστε τα ακόλουθα. Μπορείτε να βρείτε περισσότερες ρυθμίσεις στο Wiki προγραμματιστών Valve. Φροντίστε να αλλάξετε ορισμένες από τις ρυθμίσεις για να ταιριάζουν στις ανάγκες σας.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "email@example.com"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Εκτέλεση του διακομιστή σας
Για να εκτελέσετε τον διακομιστή σας χωρίς επίβλεψη, θα χρειαστείτε έναν πολυπλέκτη όπως το GNU Screen ή το tmux . Σε αυτό το άρθρο, πρόκειται να χρησιμοποιήσω το tmux για την εκτέλεση του διακομιστή, αλλά αν προτιμάτε και γνωρίζετε πώς να χρησιμοποιείτε την οθόνη, μη διστάσετε να το χρησιμοποιήσετε.
Εγκαταστήστε το tmux χρησιμοποιώντας το pacman.
sudo pacman -Sy tmux
Μπορείτε να ξεκινήσετε τον διακομιστή με την ακόλουθη εντολή. Μπορείτε να αλλάξετε τον χάρτη εάν θέλετε. Διαβάστε τις "Τελικές Σημειώσεις" για περισσότερες πληροφορίες σχετικά με τις τιμές game_typeκαι game_mode. Αυτό το παράδειγμα είναι για έναν κλασικό περιστασιακό διακομιστή.
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'
Εάν χρειαστεί ποτέ να συνδέσετε την κονσόλα, εκτελέστε τα παρακάτω.
sudo -u csgo tmux attach -t csgo-console
Μπορείτε να φύγετε από την κονσόλα διακομιστή πληκτρολογώντας CTRL + B, στη συνέχεια απελευθερώνοντας αυτά τα πλήκτρα και, στη συνέχεια, πατώντας το D .
Τρέξιμο με systemd
Η εκτέλεση του διακομιστή με το systemd είναι βολικό για πολλούς λόγους. Το κυριότερο είναι ότι μπορείτε να το ξεκινήσετε όταν ξεκινά το VPS. Αυτό απαιτεί να γραφτεί ένα σενάριο και μια μονάδα συστήματος. Παρόλο που αυτή είναι καλή ιδέα, είναι προαιρετική .
Το πρώτο πράγμα που πρέπει να γράψετε είναι το σενάριο έναρξης. Για να δημιουργήσετε το σενάριο, χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή. Εδώ χρησιμοποιείται το vim, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου όπως το nano.
sudo -u csgo vim ~csgo/server/csgo.sh
Προσθέστε τα παρακάτω και φροντίστε να κοιτάξετε τη γραμμή με την εντολή έναρξης καθώς έχει τη λειτουργία και τον τύπο παιχνιδιού.
#!/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
Τώρα πρέπει να φτιάξετε τη μονάδα systemd.
sudo vim /usr/lib/systemd/system/csgo.service
Προσθέστε τα ακόλουθα.
[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
Τώρα βεβαιωθείτε ότι το csgo.shαρχείο είναι εκτελέσιμο.
sudo chmod +x ~csgo/server/csgo.sh
Μετά από όλα αυτά, μπορείτε να το χρησιμοποιήσετε systemctlγια να ξεκινήσετε και να σταματήσετε τον διακομιστή. Επίσης, μπορείτε να το χρησιμοποιήσετε για να το ξεκινήσετε κατά την εκκίνηση.
Να ξεκινήσω:
sudo systemctl start csgo.service
Να σταματήσει:
sudo systemctl stop csgo.service
Για να επανεκκινήσεις:
sudo systemctl restart csgo.service
Για να ενεργοποιήσετε κατά την εκκίνηση:
sudo systemctl enable csgo.service
Για να απενεργοποιήσετε κατά την εκκίνηση:
sudo systemctl disable csgo.service
Παρόλο που το systemd χειρίζεται την εκκίνηση και τη διακοπή του διακομιστή, μπορείτε να αποκτήσετε πρόσβαση στην κονσόλα με την ακόλουθη εντολή.
sudo -u csgo tmux attach -t csgo-console
Τελικές Σημειώσεις
Το SteamCMD εγκαθίσταται σε μια περιοχή όπου μόνο το root μπορεί να αλλάξει αρχεία (βλ. σημείωση στην ενότητα "Εγκατάσταση SteamCMD"). Εάν ποτέ χρειαστεί να αναβαθμίσετε το ίδιο το SteamCMD, απλώς εκτελέστε το ως root.
sudo steamcmd +quit
Εάν χρειάζεται να ενημερώσετε τον διακομιστή. Πρώτα σταματήστε τον διακομιστή και μετά χρησιμοποιήστε το SteamCMD για ενημέρωση (χρησιμοποιώντας την ίδια εντολή για εγκατάσταση).
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
Η λειτουργία παιχνιδιού και ο τύπος παιχνιδιού στην εντολή έναρξης είναι σημαντικά ανάλογα με το είδος του διακομιστή που θέλετε. Ακολουθεί ένας γρήγορος πίνακας με τις πιθανές τιμές.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Υπάρχουν πολλά περισσότερα θέματα διαμόρφωσης που δεν καλύπτονται σε αυτό το σεμινάριο. Εάν χρειάζεστε περισσότερες πληροφορίες, ανατρέξτε στο Wiki προγραμματιστών Valve.