DIY Linux Game Server : Counter Strike Source

Μετά τα πρώτα 10 λεπτά στο νέο server σας και εφόσον ελέγξαμε για ευπάθειες με τη χρήση του lynis, πρέπει να αποφασίσουμε τι να κάνουμε με αυτόν. Στο σημερινό άρθρο θα αναλύσουμε πως μπορούμε μόνοι μας να κάνουμε έναν game server που θα μπορεί άνετα να σηκώνει την παρέα μας και να παίζουμε τα αγαπημένα μας παιχνίδια.

diy-linux-game-server-counter-strike-source

Ο server που θα εγκαταστήσουμε είναι του γνωστού και μη εξαιρετέου Counterstrike Source που είναι εξέλιξη του CS 1.6 και φυσικά τρέχει native στο linux μέσω steam.

Πριν ξεκινήσουμε…

… να βεβαιωθούμε ότι ο server μας αντέχει το παιχνίδι που θα εγκαταστήσουμε και για αυτό το λόγο καλό είναι να δούμε τις απαιτήσεις του server που θα εγκατασταθεί αλλά και τις δυνατότητες του vps που έχουμε νοικιάσει. Ενδεικτικά οι ελάχιστες απαιτήσεις για έναν CS Source server είναι:

  • CPU από 2GHZ και πάνω (κατά προτίμηση διπύρηνος)
  • τουλάχιστον 512 ΜΒ RAM
  • Γραμμή με πολύ καλό upload (εφόσον έχετε VPS δεν υπάρχει τέτοιο θέμα)
  • Το CS:Source στη steam συλλογή σας
  • Φίλους να παίξετε😛

Αξίζει να αναφερθεί ότι αν ο αριθμός των παικτών είναι σχετικά υψηλός (από 8 και πάνω) οι απαιτήσεις σε RAM και CPU ενδέχεται να μην επαρκούν και δεν ήμασταν σε θέση να δοκιμάσουμε τον δικό μας, πόσους παίκτες αντέχει.

Εφόσον οι απαιτήσεις του παιχνιδιού ικανοποιούνται μπορούμε να προχωρήσουμε στην εγκατάσταση του game server μας.

Εγκατάσταση του game server

Η διαδικασία εγκατάστασης του server μας θα πραγματοποιηθεί με τη χρήση automated scripts από τη σελίδα GameServerManagers που ειδικεύεται στην δημιουργία servers σε Linux εύκολα, γρήγορα και πάνω από όλα απλά.

Ο server της δοκιμής μας τρέχει ubuntu 16.04 64bit με 512ΜΒ RAM και οι εντολές μας είναι προσαρμοσμένες για αυτόν. Αν ο server σας είναι σε άλλη αρχιτεκτονική (32bit) ή σε άλλη διανομή (CentOS ή Debian), στη σελίδα υπάρχουν ανάλογες εντολές (αφορά περισσότερο το κομμάτι των απαιτούμενων εξαρτήσεων).

Σε πρώτη φάση μπαίνουμε στον server μας και στη συνέχεια δίνουμε:

sudo apt install tmux mailutils postfix curl file lib32gcc1 libstdc++6 libstdc++6:i386 

Προτείνεται για κάθε νέο gameserver που δημιουργούμε, να έχουμε και έναν ξεχωριστό χρήστη, ούτως ώστε να μπορούμε να έχουμε τα πράγματα σε μια τάξη και να μη χάνει η μάνα το παιδί και το παιδί τη μάνα. Στη περίπτωση μας θα δημιουργήσουμε το χρήστη cssserver

adduser cssserver
passwd cssserver
su cssserver

και εφόσον εγκατασταθούν με επιτυχία τα προαπαιτούμενα πακέτα και δημιουργήσουμε επιτυχώς τον νέο μας χρήστη προχωρούμε στο κατέβασμα του script εγκατάστασης

wget https://gameservermanagers.com/dl/cssserver

chmod +x cssserver

./cssserver install

Κατά τη διάρκεια εγκατάστασης του server Θα ερωτηθείτε αν θέλετε να αλλάξετε όνομα στον Server σας ή αν θέλετε να τον ασφαλίσετε με password. Από τη στιγμή που ο server σας δεν θα είναι public και η IP (π.χ σε LAN στο σπίτι μας) του θα είναι μεταξύ των φίλων σας, δεν βρίσκουμε και ιδιαίτερο νόημα η πρόσβαση σε αυτόν να είναι κλειδωμένη με κωδικό. Η επιλογή φυσικά είναι δική σας.

Σε περίπτωση που αλλάξετε γνώμη, το αρχείο που θα τροποποιήσετε είναι το server.cfg και βρίσκεται στο φάκελο ~/serverfiles/cstrike. Περιττό να αναφέρουμε ότι ύστερα από κάθε αλλαγή, ο server πρέπει να επανεκκινείται.

Ξεκινώντας τον server

Είμαστε έτοιμοι να ξεκινήσουμε τον server μας και να παίξουμε. Παραγγείλαμε το freddo cappuccinάκι μας, φάγαμε το παγωτάκι μας και είμαστε έτοιμοι να παίξουμε. Ξεκινάμε τον server μας δίνοντας στο:

./cssserver start

για να πάρουμε το μήνυμα λάθους

[ WARN ] Starting cssserver: Multiple active network interfaces found.

Manually specify the IP you want to use within the cssserver script.
Set ip="0.0.0.0" to one of the following:
188.166.47.49
10.14.0.5
https://gameservermanagers.com/network-interfaces

Που σημαίνει ότι πρέπει να γίνει μια τροποποίηση στο bash αρχείο προκειμένου να βγει ο server προς τα έξω. Δίνουμε :

nano cssserver

και εντοπίζουμε τη γραμμή:

ip="0.0.0.0"

Και την αλλάζουμε στην ip του server μας (είναι η πρώτη που εμφανίζεται στο μήνυμα λάθους). Μέσα στο αρχείο θα παρατηρήσουμε εκτός από την IP που βγαίνει ο server μας, το μέγιστο αριθμό παικτών που δέχεται, το map με το οποίο θα παίξουμε και άλλες χρήσιμες για την παραμετροποίηση του πληροφορίες αλλά και το port στο οποίο «ακούει» ο server και το οποίο θα ανοίξουμε για να μπορεί ο server μας να είναι ορατός. Το default port για τον CS Source server είναι το port 27015.

Επομένως δίνουμε

sudo ufw allow 27015/tcp ; sudo ufw allow 27015/udp ; sudo ufw enable

Και εφόσον γίνουν όλα επιτυχώς είμαστε πανέτοιμοι να ξεκινήσουμε τον server μας με την εντολή που αναφέρθηκε παραπάνω. Πρόσεξα επίσης ότι κάθε φορά που έχει αναβάθμιση το counterstrike στο Steam, είναι αδύνατη η πρόσβαση στο server μας. Αυτό διορθώνεται εύκολα δίνοντας στο server

./cssserver update

Προκειμένου να ενημερωθεί και αυτός στην τελευταία έκδοση. Ύστερα από την ενημέρωση του ο gamerserver μας επανεκκινείται αυτόματα.

Στη περίπτωση που το μηχάνημα μας το επιτρέπει να σηκώσουμε 2 και 3 διαφορετικούς gameservers, καλό είναι να γίνονται νέοι χρήστες για κάθε διαφορετικό παιχνίδι καθώς επίσης να ορίζονται διαφορετικές πόρτες όπου θα ακούει ο κάθε ένας από αυτούς.

Παραμετροποίηση του server μας

Λογικό επόμενο είναι να θέλουμε να πειραματιστούμε περαιτέρω με το νέο μας server και δεδομένου ότι δε θα παίζουμε την ίδια και την ίδια πίστα, θα δούμε πως μπορούμε να κάνουμε τις απαραίτητες αλλαγές προκειμένου να μη βαρεθούμε. Οι αλλαγές που θα κάνουμε θα γίνουν στα αρχείο  cssserver. 

Πριν ξεκινήσουμε τις αλλαγές μας θα σταματήσουμε τον server μας δίνοντας

./cssserver stop

και στη συνέχεια

nano cssserver

Τα περιεχόμενα του αρχείου μας θα είναι σαν αυτά τις εικόνας που ακολουθεί

diy-linux-game-server-counter-strike-source-cssserver

Ανοίγοντας με το nano το αρχείο cssserver

Όπως παρατηρούμε και στην εικόνα, τα variables defaultmap και maxplayers είναι αυτά που αλλάζουν την πίστα που θα φορτώνει ο server μας και το μέγιστο αριθμό παικτών που εμείς επιτρέπουμε. Πιο κάτω βλέπουμε την πόρτα που ακούει ο server, την IP με την οποία βγαίνει και πιο κάτω οι παράμετροι με τους οποίους ξεκινά ο server. Αν θέλουμε να αλλάξουμε το χάρτη, η αλλαγή γίνεται δίνοντας το όνομα του επιθυμητού χάρτη. Οι χάρτες που είναι προεγκατεστημένοι, τους βλέπουμε δίνοντας

ls serverfiles/cstrike/maps/

Προσοχή!!! Δίνουμε το όνομα της πίστας χωρίς την κατάληξη, όλα με lowercase γράμματα. Μόλις κάνουμε τις απαιτούμενες αλλαγές επανεκκινούμε το server δίνοντας

./cssserver start

ή στην περίπτωση που ήδη τρέχει

./cssserver restart

Αραιώστε να φαινόμαστε πολλοί

Τελικά δεν μαζευτήκαμε όσοι περιμέναμε και για να συμπληρωθεί το καρέ που λένε και οι χαρτοπαίκτες. Για αυτό το λόγο θα προσθέσουμε μερικά bots για να μην τριγυρνάμε μόνοι μας, σαν τις άδικες κατάρες στο map. Βρήκα ένα πολύ χρήσιμο οδηγό που με λίγη τροποποίηση θα τον φέρουμε στα μέτρα μας.

Αρχικά πηγαίνουμε στο φάκελο ~/serverfiles/cstrike/cfg και δημιουργούμε το αρχείο mybots.cfg 

cd ~/serverfiles/cstrike/cfg && nano mybots.cfg

Στο αρχείο προσθέτουμε αυτά που αναφέρονται εδώ και σώζουμε. Το αρχείο αυτό δημιουργεί 4 bots που αν μπουν 4 άτομα μέσα στο server σταματούν να υπάρχουν. Αυτό το κάνουμε για να υπάρχει μια ισοτιμία μεταξύ των ομάδων. Αν ψάξετε το αρχείο θα δείτε ότι η δυσκολία των bots είναι στο Hard, πράγμα που δεν ενδείκνυται για αρχάριους παίκτες.

//0 is Easy, 1 is Normal, 2 is Hard, & 3 is Expert.
bot_difficulty 2

Το αλλάζουμε στη τιμή 1 και προχωρούμε παρακάτω. Αν θέλουμε να αυξήσουμε τον αριθμό των bots, εντοπίζουμε το σημείο

//Set to min # of bots allowed on server
bot_quota 4

και το αλλάζουμε στον αριθμό που επιθυμούμε.

Τέλος εντοπίζουμε το αρχείο css-server.cfg στον ίδιο φάκελο, το ανοίγουμε με το nano και στο τέλος του προσθέτουμε

// Start Botsfile
exec mybots.cfg

Restart στο server και είμαστε έτοιμοι. Φυσικά στη περίπτωση που θέλουμε να απενεργοποιήσουμε τα bots, κάνουμε comment την αντίστοιχη γραμμή.

Προσθέτουμε τον server μας στη λίστα των Favorites του CS:Source

Έχουμε βγει από τον server μας και είμαστε έτοιμοι να παίξουμε, ρουφάμε λίγο καφεδάκι (προαιρετικά), ανοίγουμε το CounterStrike Source και πηγαίνουμε στην επιλογή Find Servers και στο νέο παράθυρο που ανοίγει επιλέγουμε Favorites όπως φαίνεται στην ακόλουθη εικόνα

diy-linux-game-server-counter-strike-source-favorites

Εδώ θα προσθέσουμε τον Server μας

Στη συνέχεια κάνουμε δεξί κλικ μέσα στην άδεια λίστα και επιλέγουμε Add IP και στο νέο παράθυρο που θα ανοίξει, προσθέτουμε την ΙΡ του server μας όπως φαίνεται στην εικόνα (δηλαδή μαζί με το port που ακούει ο server) και τέλος επιλέγουμε Add this Address to Favorites

diy-linux-game-server-counter-strike-source-alias

Προσθέτουμε τον Server στα Favorites

Όπως καταλαβαίνετε η διαδικασία προσθήκης του server στα αγαπημένα θα πρέπει να επαναληφθεί και από τους φίλους σας για να μπορείτε να έχετε όλοι πρόσβαση. Ύστερα από αυτό το τελευταίο βήμα, με διπλό κλικ μπαίνουμε στον server και παίζουμε μέχρι να κόψει το αφρόγαλα από το freddo cappuccino ή να θυμηθούμε τη μητρική μας γλώσσα.

Καλή διασκέδαση!!!!

Cerebrux CS source Linux Server

edit 2/9/2016 : Ο server δεν υφίσταται πλέον , οι δοκιμές που έγιναν με τη δική σας βοήθεια ήταν επιτυχείς και ο server δεν κρέμασε ούτε λεπτό. 

Όπως κάποιοι καταλάβατε για τις ανάγκες του άρθρου φτιάξαμε τον δικό μας CS Source server και σας καλούμε να τον δοκιμάσετε για να δούμε τις αντοχές του, τυχόν προβλήματα και οτιδήποτε δεν μπορείς να ανακαλύψεις αν στο server σου μπαίνουν 2-3 άτομα. Τον server μας όπως είδατε και στις εικόνες θα τον βρείτε στη διεύθυνση:

188.166.47.49:27015

Ο server δεν είναι password protected και έχει όριο μέχρι 16 άτομα. Θα χαρούμε να παίξουμε μαζί σας.

Επίλογος

Σήμερα μάθαμε πως μπορούμε να κάνουμε το δικό μας server με το αγαπημένο μας παιχνίδι καθώς επίσης και μερικά πράγματα για τη διαχείριση του. Το ότι κάναμε σε VPS τον server μας ήταν καθαρά θέμα επιλογής.

Μπορούμε άνετα να τον φτιάξουμε τοπικά σε ένα single board computer (αρχιτεκτονικής x86) με σχεδόν ίδια διαδικασία ή ακόμη και να τον στήσουμε σε ένα όχι και τόσο παλιό PC. Η επιλογή είναι δική σας και όπως θα διαπιστώσετε και στα επόμενα άρθρα, ένας server στο σπίτι ή σε ένα VPS μπορεί να αναδειχθεί σε ένα σημαντικό εργαλείο δουλείας (πχ owncloud) αλλά και διασκέδασης (game server,media server κλπ).

Απορίες, παρατηρήσεις, ιδέες... Ελεύθερα ! Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s