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/