Instalace Enemy Territory serveru na Ubuntu 24.04

By | 02/06/2024

Last Updated on 02/06/2024 by administrator

Instalace Enemy Territory serveru na Ubuntu 24.04

Instalace Enemy Territory serveru na Ubuntu 24.04

Motivace:

Článek popisuje návod, jak stáhnout a nainstalovat Enemy Territory Legacy server na Ubuntu 24.04.

OS:

Implementace instalace byla prováděna na Ubuntu 24.04 LTS. Nicméně minimální požadavek na OS je Ubuntu 20.04 TLS. [1]

Implementace [1]:

1. Příprava balíčků a stažení Enemy Territory Legacy 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 spuštění ET: Legacy serveru:

apt install curl bc binutils bsdmainutils bzip2 jq lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0 netcat-openbsd pigz tmux unzip -y

Vytvořit nového uživatele etlserver a zvolit silné heslo:

adduser etlserver

Výstup příkazu adduser etlserver 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é

info: Adding user `etlserver' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `etlserver' (1000) ...
info: Adding new user `etlserver' (1000) with group `etlserver (1000)' ...
info: Creating home directory `/home/etlserver' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for etlserver
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
info: Adding new user `etlserver' to supplemental / extra groups `users' ...
info: Adding user `etlserver' to group `users' ...

Přihlásit se pod novým uživatelem etlserver. Díky parametru mínus se přejde automaticky do domovského adresáře /home/etlserver:

su - etlserver

Příkaz níže stáhne pomocí wget script soubor linuxgsm.sh a provede ho spustitelným a poslední příkaz vytvoří soubor etlserver ze souboru linuxgsm.sh:

wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh etlserver

Výstup příkazu wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh etlserver ukazuje stažení souboru linuxgsm.sh:

--2024-06-02 20:28:58-- https://linuxgsm.sh/
Resolving linuxgsm.sh (linuxgsm.sh)... 104.21.6.158, 172.67.135.1, 2606:4700:3032::ac43:8701, ...
Connecting to linuxgsm.sh (linuxgsm.sh)|104.21.6.158|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/linuxgsm.sh [following]
--2024-06-02 20:28:59-- https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/linuxgsm.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.110.133, 185.199.111.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18431 (18K) [text/plain]
Saving to: 'linuxgsm.sh'

linuxgsm.sh                                    100%[==================================================================================================>]  18.68K  --.-KB/s    in 0.003s

2024-06-02 20:28:59 (2.91 MB/s) - 'linuxgsm.sh' saved [18431/18431]

Installed ET: Legacy server as etlserver

Před instalací serveru je nutné mít cca 2 GB na disku.

2. Instalace Enemy Territory Legacy serveru:

Instalace se provede příkazem:

./etlserver install

Výstup příkazu ./etlserver install bude navádět k vytvoření složky /home/etlserver, 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 Enemy Territory Legacy server:

=================================
LinuxGSM_
by Daniel Gibbs
Version: v24.2.1
Game: ET: Legacy
Website: https://linuxgsm.com
Contributors: https://linuxgsm.com/contrib
Sponsor: https://linuxgsm.com/sponsor
=================================
fetching GitHub install_server_dir.sh...OK

Server Directory
=================================
/home/etlserver
Continue? [Y/n] Y
mkdir: created directory '/home/etlserver/serverfiles'
fetching GitHub install_logs.sh...OK

Creating Log Directories
=================================
installing log dir: /home/etlserver/log...OK
installing LinuxGSM log dir: /home/etlserver/log/script...OK
creating LinuxGSM log: /home/etlserver/log/script/etlserver-script.log...OK
installing console log dir: /home/etlserver/log/console...OK
creating console log: /home/etlserver/log/console/etlserver-console.log...OK
installing game log dir: /home/etlserver/serverfiles/Logs...OK
creating symlink to game log dir: /home/etlserver/log/server -> /home/etlserver/serverfiles/Logs...OK
fetching GitHub check_deps.sh...OK

Checking ET: Legacy Dependencies
=================================
fetching GitHub ubuntu-24.04.csv...OK
bc
binutils
bsdmainutils
bzip2
ca-certificates
cpio
curl
distro-info
file
gzip
hostname
jq
lib32gcc-s1
lib32stdc++6
netcat-openbsd
pigz
python3
tar
tmux
unzip
util-linux
uuid-runtime
wget
xz-utils
Information! Required dependencies already installed.
fetching GitHub install_server_files.sh...OK

Installing ET: Legacy Server
=================================
######################################################################### 100.0%
OK
verifying etlegacy-v2.78.1-i386-et-260b.tar.xz with MD5...OK
extracting etlegacy-v2.78.1-i386-et-260b.tar.xz...OK

Pozn. Aktuální nejvyšší verze Enemy Territory Legacy serveru je 2.78.1 (2. června 2024)

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 ET: Legacy Configs
=================================
default configs from https://github.com/GameServerManagers/Game-Server-Configs
fetching GitHub server.cfg...OK
copying server.cfg config file.
'/home/etlserver/lgsm/config-default/config-game/server.cfg' -> '/home/etlserver/serverfiles/etmain/etlserver.cfg'
changing hostname.
changing rcon/admin password.

Config File Locations
=================================
Game Server Config File: /home/etlserver/serverfiles/etmain/etlserver.cfg
LinuxGSM Config: /home/etlserver/lgsm/config-lgsm/etlserver
Documentation: https://docs.linuxgsm.com/configuration/game-server-config
fetching GitHub fix.sh...OK
fetching GitHub install_stats.sh...OK

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
fetching GitHub install_complete.sh...OK

=================================
Install Complete!

To start server type:
./etlserver start

fetching GitHub core_exit.sh...OK

Vše hotovo, nyní bude spuštěn ET: Legacy server:

./etlserver start

Výstup příkazu ./etlserver start ukazuje, že ET: Legacy server byl nastartován:

fetching GitHub core_exit.sh...OK
etlserver@ETlegacyU24:~$ ./etlserver start
fetching GitHub command_start.sh...OK
[ .... ] Starting etlserver: fetching GitHub check_root.sh...OK
fetching GitHub check_system_dir.sh...OK
fetching GitHub check_executable.sh...OK
fetching GitHub check_logs.sh...OK
fetching GitHub check_config.sh...OK
fetching GitHub check_status.sh...OK
fetching GitHub core_logs.sh...OK
[ OK ] Starting etlserver: LinuxGSM

Příkazem níže ověřit, zda ET: Legacy server naslouchá na základním UDP portu 27960:

ss -tunlp | grep etlded

Výstup příkazu ss -tunlp | grep etlded ukazuje, že Enemy Territory Legacy 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:(("etlded",pid=14234,fd=12))

Nyní je možné se na Enemy Territory 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 ET: Legacy. Hra by měla být vidět pod Play a kliknout na Local, a následně 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 ET: Legacy serveru, nebo porovnat verzi ET: Legacy serveru a verzi ET: Legacy klienta.

Pozn. autora: V mém praktickém případě při kliknutím na refresh ve hře je vidět ET: Legacy server na stejné podsítí i s použitím portu UDP/27960. Pokud se používá Proxmox, tak není nutné použít privilegiovaný kontejner.

3. Nahození Enemy Territory Legacy serveru po restartu Ubuntu:

Přihlásit se pod uživatelem etlserver:

su - etlserver

Spustit cron:

crontab -e

a přidat úplně dole:

@reboot bash /home/etlserver/etlserver 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:

./etlserver 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 etlserver:

su - etlserver

Spustit cron:

crontab -e

a přidat úplně dole:

*/5 * * * * /home/etlserver/etlserver monitor > /dev/null 2>&1
0 0 * * 0 /home/etlserver/etlserver 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:

./etlserver details

Debug:

Při potíží ze serverem, je možné použít příkaz níže:

./etlserver debug

Logy:

Logy serveru jsou umístěny ve složce níže:

cd /home/etlserver/logs

Backup:

Příkaz níže provede zálohu celého serveru v tar bzip2 archivu:

./etlserver backup

7. Změna herních parametrů v configu:

Parametry Enemy Territory Legacy serveru jako jméno serveru, maximální počet připojených lidí, rcon heslo, lze změnit v konfigu etconfig_server.cfg níže:

vi /home/etlserver/serverfiles/etmain/etlserver.cfg

Má poznámka – Nešlo mi změnit defaultní port UDP/27960 na jiný v souboru etconfig_server.cfg. Zkoušel jsem snad přidávat příkaz set net_port „27961“, nebo port „27961“ do každého cfg souboru, ale bez úspěchu. Vytvoření common.cfg také nepomohlo k změnění portu,

Rotaci map lze změnit souboru mapvotecycle.cfg:

vi /home/etlserver/serverfiles/etmain/mapvotecycle.cfg

Při jakýchkoliv úpravách v configu je vždy potřeba provést restart Enemy Territory Legacy serveru pod etlserver uživatelem:

su - etlserver
./etlserver restart

Kdo se vše připojil na Enemy Territory Legacy server lze zjistil příkazem níže:

cat /home/etlserver/log/console/etlserver-console* | grep "entered"

Výstup příkazu cat /home/etlserver/log/console/etlserver-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 Enemy Territory Legacy serveru z internetu:

Pro přístup z internetu na Enemy Territory Legacy 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 Enemy Territory Legacy 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 Enemy Territory server používat jsou zde https://portforward.com/wolfenstein-enemy-territory-server/

Další článek:

Instalace Quake 3 serveru na Ubuntu

Zdroj:

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

Napsat komentář

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