Instalace Enemy Territory serveru na Ubuntu

By | 14/07/2023

Last Updated on 02/06/2024 by administrator

Instalace Enemy Territory serveru na Ubuntu

Instalace Enemy Territory serveru na Ubuntu

Motivace:

Článek popisuje návod, jak stáhnout a nainstalovat Enemy Territory Legacy 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 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 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é

Adding user `etlserver' ...
Adding new group `etlserver' (1000) ...
Adding new user `etlserver' (1000) with group `etlserver' ...
Creating home directory `/home/etlserver' ...
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

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:

--2023-07-10 15:52:19--  https://linuxgsm.sh/
Resolving linuxgsm.sh (linuxgsm.sh)... 172.67.135.1, 104.21.6.158, 2606:4700:3031::6815:69e, ...
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]
--2023-07-10 15:52:19--  https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/linuxgsm.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19130 (19K) [text/plain]
Saving to: 'linuxgsm.sh'

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

2023-07-10 15:52:20 (5.59 MB/s) - 'linuxgsm.sh' saved [19130/19130]

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:

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 Dependencies
=================================
fetching GitHub ubuntu-22.04.csv...OK
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.
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

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 command_start.sh...OK
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/

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 *