Install Quake 3 Ubuntu (Instalace Quake 3 serveru na Ubuntu)

By | 30/12/2022

Last Updated on 16/02/2025 by administrator

Install Quake 3 Ubuntu (Instalace Quake 3 serveru na Ubuntu)

Install Quake 3 Ubuntu

Motivace:

Článek popisuje návod jak stáhnout a nainstalovat Quake 3 Arena server (Install Quake 3 Ubuntu) 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
V souboru common.cfg možné přepisovat veškterou defaultní konfiguraci která je v souboru /home/q3server/lgsm/config-lgsm/q3server/_default.cfg. Např změna portu na které Q3 naslouchá se provede  příkazem níže:
port="27962"
Parametry Quake 3 serveru jako jméno serveru, maximální počet připojených lidí, rcon heslo, typ hry, fraglimit a time limit či rotace map, lze změnit v konfigu q3server.cfg níže:
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/

Věřím, že článek Install Quake 3 Ubuntu pomohl.

Další článek:

Instalace Enemy Territory serveru na Ubuntu

Zdroj:

[1] https://linuxgsm.com/servers/q3server/

[2] https://docs.linuxgsm.com/commands/update-lgsm

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *