aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Gameserver

Linux-serverbeheer: basis voor gameservers

Een gameserver soepel laten draaien begint met een stevige basis in Linux-serverbeheer. Of je nu een Metin2 PvP-server, een Minecraft-wereld of een eigen C++ serverapplicatie host, dezelfde kerntaken keren terug: inloggen, gebruikers scheiden, services automatisch starten en het netwerk beveiligen leunen allemaal op dezelfde handvol tools. Deze gids loopt door de eerste stappen nadat je een VPS huurt, met echte, werkende commando's in een logische volgorde.

Verbinden via SSH

Je bereikt Linux-servers meestal zonder grafische interface, via SSH. Je provider geeft je een IP-adres en een tijdelijk wachtwoord. De eerste verbinding ziet er zo uit:

ssh root@SERVER_IP

Een SSH-sleutel gebruiken in plaats van een wachtwoord is zowel veiliger als handiger. Je genereert een sleutelpaar op je eigen machine en kopieert de publieke sleutel naar de server:

ssh-keygen -t ed25519 -C "gameserver"
ssh-copy-id root@SERVER_IP

Providers gebruiken standaard poort 22. Als de jouwe een aangepaste poort toewees, geef die dan op met de optie -p: ssh -p 2222 root@SERVER_IP. Zodra inloggen met een sleutel werkt, is het uitschakelen van wachtwoordinlog een belangrijke beveiligingsstap.

Het systeem en kernpakketten bijwerken

De eerste taak is het bijwerken van de pakketlijst en geïnstalleerde software. Op de Debian/Ubuntu-familie:

apt update && apt upgrade -y

Op RHEL-afgeleiden zoals AlmaLinux/Rocky is het equivalent dnf upgrade -y. Enkele essentiële tools voor het beheren van een gameserver:

  • htop — live overzicht van CPU, RAM en processen
  • tmux of screen — sessies die een verbroken SSH-verbinding overleven
  • git — serverbestanden beheren met versiebeheer
  • ufw — een leesbare firewall-frontend
apt install -y htop tmux git ufw

Een aparte gebruiker aanmaken

Alles als root draaien is een groot risico; één verkeerd commando kan het hele systeem raken. Draai de gameserver onder zijn eigen beperkte gebruiker. Laten we een nieuwe gebruiker aanmaken en beheerdersrechten (sudo) toekennen:

adduser game
usermod -aG sudo game

Op RHEL-afgeleiden is de groep wheel in plaats van sudo. Je kunt nu inloggen als deze gebruiker en commando's zo nodig voorafgaan met sudo. De gameserverbestanden horen in de thuismap van deze gebruiker te staan, bijvoorbeeld onder /home/game/server. Om het bestandseigendom te corrigeren:

chown -R game:game /home/game/server

Services beheren met systemd

Als je je gameserver handmatig start met ./start.sh, stopt de applicatie wanneer de SSH-sessie sluit of de server herstart. De juiste oplossing is een systemd-service: hij draait op de achtergrond, herstart automatisch bij een crash en start mee bij het opstarten. Maak het bestand /etc/systemd/system/game.service aan:

[Unit]
Description=Gameserver
After=network.target

[Service]
Type=simple
User=game
WorkingDirectory=/home/game/server
ExecStart=/home/game/server/start.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Registreer en start de service nadat je het bestand hebt geschreven:

systemctl daemon-reload
systemctl enable --now game

Gebruik systemctl status game om de status te controleren en journalctl -u game -f om de live logs te volgen. Dankzij de regel Restart=on-failure brengt systemd de server binnen vijf seconden terug als die onverwacht afsluit.

Firewall en poortbeheer

Gameservers accepteren verbindingen op specifieke poorten. Al het andere sluiten verkleint het aanvalsoppervlak drastisch. Sta met ufw eerst SSH toe (zodat je jezelf niet buitensluit), open daarna de gamepoort:

ufw allow 22/tcp
ufw allow 30000/tcp
ufw enable

Vergeet voor games die UDP gebruiken niet het protocol op te geven: ufw allow 30000/udp. Je kunt je regels opsommen met ufw status numbered. Daarbovenop Fail2ban installeren blokkeert automatisch brute-force-pogingen tegen SSH en houdt je logs schoon.

Monitoring, back-ups en schijfcontrole

Beheer gaat door nadat de server draait. Maak van een paar commando's een vaste gewoonte:

  • df -h — schijfgebruik; logbestanden kunnen de schijf stilletjes vullen
  • free -h — vrij geheugen en swap
  • htop — welk proces de CPU opslokt onder belasting

Regelmatige back-ups van de database en wereld-/personagebestanden zijn essentieel. Een eenvoudige MySQL-back-up ziet er zo uit:

mysqldump -u root -p game_db > /home/game/backup/game_db_$(date +%F).sql

Door dit commando aan een cron-taak te koppelen, kun je elke nacht een automatische back-up maken. De back-up buiten de server bewaren, op een aparte locatie, redt je in een rampscenario.

Veelgestelde vragen

Welke Linux-distributie kies ik voor een gameserver?

Ubuntu Server LTS is de meest praktische keuze dankzij brede community-ondersteuning en actuele pakketten. Debian is slanker en zeer stabiel, terwijl AlmaLinux/Rocky geschikt zijn voor wie RHEL-compatibiliteit wil. Begin je net, start dan met Ubuntu LTS; de meeste commando's in dit artikel werken direct.

Hoeveel spelers kan een server aan?

Dat hangt af van het type game, het aantal CPU-cores dat het gebruikt en het beschikbare RAM. Een single-threaded gameloop loopt bij veel spelers tegen een CPU-knelpunt aan. Houd de belasting in de gaten met htop om het knelpunt te vinden, en stap zo nodig over op een krachtigere VPS.

Mijn SSH-verbinding valt steeds weg, wat moet ik doen?

Start het draaiende proces binnen tmux; ook als de verbinding wegvalt, gaat het proces door en keer je terug met tmux attach. Op de lange termijn is de gameserver als systemd-service draaien de robuustste oplossing.

Vastgelopen bij de serverinstallatie? We kunnen samen werken aan de Linux-configuratie, beveiliging en automatisering van je gameserver — neem contact met me op.

Devamı için