Last Updated on 24/03/2024 by administrator
Instalace Quake 3 serveru na Ubuntu (Install Quake 3 Ubuntu)
Install Quake 3 Ubuntu
Motivace:
Článek popisuje návod jak stáhnout a nainstalovat Quake 3 Arena server na Ubuntu 22.04.
OS:
Implementace instalace byla prováděna na Ubuntu 22.04 LTS. Nicméně minimální požadavek na OS je Ubuntu 16.04 TLS. [1]
Implementace [1]:
1. Příprava balíčků a stažení Quake 3 serveru:
Příkazem apt update se provede aktualizace seznamu balíčků z repozitářů:
apt update
Před instalací je nutné nainstalovat všechny potřebně balíčky pro spustění Q3 serveru:
apt install curl bc binutils bsdmainutils bzip2 jq lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0 netcat tmux unzip -y
Vytvořit nového uživatele q3server a zvolit silné heslo. :
adduser q3server
Výstup příkazu adduser q3server ukazuje postup vytvoření uživatele. Všechny údaje při vytváření je možné „odentrovat“ a nakonec potvrdit „Y“, že jsou všechny údaje správné
Creating home directory `/home/q3server' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for q3server Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
Přihlásit se pod novým uživatelem q3server. Díky parametru mínus se přejde automaticky do domovského adresáře /home/q3server:
su - q3server
Příkaz níže stáhne pomocí wget script soubor linuxgsm.sh a provede ho spustitelným a poslední příkaz vytvoří soubor q3server ze souboru linuxgsm.sh:
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh q3server
Výstup příkazu wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh q3server ukazuje stažení souboru linuxgsm.sh:
--2022-12-23 22:04:30-- https://linuxgsm.sh/ Resolving linuxgsm.sh (linuxgsm.sh)... 172.67.135.1, 104.21.6.158, 2606:4700:3032::ac43:8701, ... Connecting to linuxgsm.sh (linuxgsm.sh)|172.67.135.1|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/linuxgsm.sh [following] --2022-12-23 22:04:30-- https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/linuxgsm.sh Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.109.133, 185.199.110.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 19069 (19K) [text/plain] Saving to: 'linuxgsm.sh' linuxgsm.sh 100%[========================================================================================================================>] 18.62K --.-KB/s in 0.002s 2022-12-23 22:04:30 (9.98 MB/s) - 'linuxgsm.sh' saved [19069/19069] Installed Quake 3: Arena server as q3server
Před instalací serveru je nutné mít cca 2 GB na disku.
2. Instalace Quake 3 server:
Instalace se provede příkazem:
./q3server install
Výstup příkazu ./q3server install bude navádět k vytvoření složky /home/q3server, což stačí potvrdit „Y„. Dále se vytvoří složky pro logy a zkontrolují se, zda jsou nainstalované balíčky, které jsou nezbytné k instalaci a spuštění serveru. Pokud jsou všechny závislé balíčky nainstalovány, zobrazí se hláška Information! Required dependencies already installed. Pokud je vše v pořádku, začne se instalovat Quake 3 server:
Server Directory
=================================
/home/q3server
Continue? [Y/n] Y
Creating log directories
=================================
installing log dir: /home/q3server/log...OK
installing LinuxGSM log dir: /home/q3server/log/script...OK
creating LinuxGSM log: /home/q3server/log/script/q3server-script.log...OK
installing console log dir: /home/q3server/log/console...OK
creating console log: /home/q3server/log/console/q3server-console.log...OK
installing game log dir: /home/q3server/serverfiles/Logs...OK
creating symlink to game log dir: /home/q3server/log/server -> /home/q3server/serverfiles/Logs...OK
Checking Dependencies
=================================
bc
binutils
bsdmainutils
bzip2
ca-certificates
cpio
curl
distro-info
file
gzip
hostname
jq
lib32gcc-s1
lib32stdc++6
netcat
python3
tar
tmux
unzip
util-linux
wget
xz-utils
Information! Required dependencies already installed.
Installing Quake 3: Arena Server
=================================
########################################################
verifying quake3-1.32c-x86-full-linux.tar.xz with MD5...OK
extracting quake3-1.32c-x86-full-linux.tar.xz...OK
Pokud instalace serveru proběhla úspěšně stačí potvrdit „Y„:
================================= Was the install successful? [Y/n] Y
Pozn: Pokud instalace neproběhla korektně, jeden z důvodů může být nedostatek místa na disku.
Při korektní instalaci se začnout stahovat configy z githubu a nakonci je tázáno zda si přejeme zasílat anonymní statistiku:
Downloading Quake 3: Arena Configs ================================= default configs from https://github.com/GameServerManagers/Game-Server-Configs copying server.cfg config file. '/home/q3server/lgsm/config-default/config-game/server.cfg' -> '/home/q3server/serverfiles/baseq3/q3server.cfg' changing hostname. changing rcon/admin password. Config File Locations ================================= Game Server Config File: /home/q3server/serverfiles/baseq3/q3server.cfg LinuxGSM Config: /home/q3server/lgsm/config-lgsm/q3server Documentation: https://docs.linuxgsm.com/configuration/game-server-config LinuxGSM Stats ================================= Assist LinuxGSM development by sending anonymous stats to developers. More info: https://docs.linuxgsm.com/configuration/linuxgsm-stats The following info will be sent: * game server * distro * game server resource usage * server hardware info Allow anonymous usage statistics? [Y/n] n ================================= Install Complete! To start server type: ./q3server start
Vše hotovo, nyní bude spuštěn Quake 3 server:
./q3server start
Příkazem níže ověřit, zda Quake 3 naslouchá na základním UDP portu 27960:
ss -tunlp | grep q3ded
Výstup příkazu ss -tunlp | grep q3ded ukazuje, že Quake 3 běží na všech IP adresách serveru (0.0.0.0) a portu UDP/27960:
udp UNCONN 0 0 0.0.0.0:27960 0.0.0.0:* users:(("q3ded",pid=14234,fd=12))
Nyní je možné se na Quake 3 server připojit na lokální síti.
Pokud je nakonfigurovaný firewall (lze zjistit příkazem sudo ufw status), je nutné povolit provoz UDP/27960:
sudo ufw allow 27960/udp
Spustit hru Quake 3. Hra by měla být vidět pod local servers, kliknutím na refresh ve hře. Případně ve hře v konzoli stačí zadat /connect <IP adresa serveru>:<port>
Pokud se nelze připojit, zkontrolovat zda je povolený firewall na Quake3 serveru, nebo porovnat verzi Quake 3 serveru a verzi Quake 3 klienta.
Pozn. autora: V mém praktickém případě při kliknutím na refresh ve hře je vidět Quake 3 server na stejné podsítí i s použitím portu UDP/27960 ale i UDP/27962. Pokud se používá Proxmox, tak není nutné použít privilegiovaný kontejner.
3. Nahození Quake 3 serveru po restartu Ubuntu:
Přihlásit se pod uživatelem q3server:
su - q3server
Spustit cron:
crontab -e
a přidat úplně dole:
@reboot bash /home/q3server/q3server start
4. Aktualizace serveru [2]:
Je dobré pravidelně aktualizovat LinuxGSM, pro získání nových funkcí a oprav chyb. Tento příkaz neaktualizuje hru. To se provede příkazem:
./q3server update-lgsm
Upozornění: Automaticky se provede update souboru _default.cfg.
5. Automatický Health check serveru a aktualizace LinuxGSM [2]:
Pomocí Cronu lze LinuxGSM pravidelně automaticky aktualizovat a také monitorovat herní server. Monitoring serveru kontroluje, zda proces běží. Pokud server přestane běžet, LinuxGSM server se restartuje a pošle upozornění:
Přihlásit se pod uživatelem q3server:
su - q3server
Spustit cron:
crontab -e
a přidat úplně dole:
*/5 * * * * /home/q3server/q3server monitor > /dev/null 2>&1 0 0 * * 0 /home/q3server/q3server update-lgsm > /dev/null 2>&1
Aktualizace LinuxGSM se bude provádět v neděli o půlnoci a monitoring serveru každých 5 min.
6. Debug serveru
Detaily serveru:
Příkaz níže zobrazí např. jméno serveru, defaultní mapu serveru, maximalní počet hráčů, veřejnou IP adresu serveru s portem na kterem naslouchá herní server, RCON password, config soubor a mnoho dalšího:
./q3server details
Debug:
Při potíží ze serverem, je možné použít příkaz níže:
./q3server debug
Logy:
Logy serveru jsou umístěny ve složce níže:
cd /home/q3server/logs
Backup:
Příkaz níže provede zálohu celého serveru v tar bzip2 archivu:
./q3server backup
7. Změna herních parametrů v configu:
Jak bylo zmíněno výše není doporučeno měnit jakýkoliv soubor se jménem _default.cfg, proto je dobré aby nebyl tento soubor Vám customizovaný. V tomto případě doporučuji použit soubor common.cfg:
vi /home/q3server/lgsm/config-lgsm/q3server/common.cfg
port="27962"
vi /home/q3server/serverfiles/baseq3/q3server.cfg
Při jakýchkoliv úpravách v configu je vždy potřeba provést restart Quake 3 serveru pod q3server uživatelem:
./q3server restart
Kdo se vše připojil na Quake 3 server lze zjistil příkazem níže:
cat /home/q3server/log/console/q3server-console* | grep "entered"
Výstup příkazu cat /home/q3server/log/console/q3server-console* | grep „entered“ ukazuje, že uživatel martin se několikrát do hry připojil:
broadcast: print "martin^7 entered the game\n" broadcast: print "martin^7 entered the game\n" broadcast: print "martin^7 entered the game\n"
8. Přístup k Quake 3 serveru z internetu:
Pro přístup z internetu na Quake 3 server je potřeba mít veřejnou IP adresu (zeptat se svého poskytovatele připojení). Tuto veřejnou IP adresu je potřeba namapovat k Quake 3 serveru. To se nejčastěji provádí na routeru přes port forwarding (přesměrování portů), kde stačí povolit port UDP/27960. Každý router má ve svém nastavení port forwarding jinde. Např. TP-Link má tuto funkci pod Forwarding > Virtual Servers. Obecný průvodce pro několik routerů, kde nastavit port forwarding je možné najít zde: https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/
Všechny porty, co může Quake 3 používat jsou zde https://portforward.com/quake-3/
Další článek:
Instalace Enemy Territory serveru na Ubuntu
Zdroj:
[1] https://linuxgsm.com/servers/q3server/
[2] https://docs.linuxgsm.com/commands/update-lgsm