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

By | 30/12/2022

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
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/

Další článek:

Instalace Enemy Territory serveru na Ubuntu

Zdroj:

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

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

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *