Alokace a porty v Pterodactylu – jak je správně nastavit
Co je alokace v Pterodactylu, jak přidat rozsah portů, kdy použít IP alias a 0.0.0.0, jak dát serveru další porty a proč Docker obchází ufw.
Každý herní server v Pterodactylu potřebuje aspoň jednu alokaci – dvojici IP adresa + port, na které bude naslouchat. Alokace patří k nodu a Panel je přiděluje serverům. Bez alokací server nevytvoříte, a špatně zvolená IP je častý důvod, proč se na jinak běžící server nikdo nepřipojí.
Jak alokace funguje uvnitř
Wings spouští server jako Docker kontejner a port z alokace publikuje z hostitele do kontejneru (podobně jako docker run -p IP:PORT:PORT). Uvnitř kontejneru je port dostupný v proměnné SERVER_PORT a v eggu v zápisu {{SERVER_PORT}}. Egg ho typicky dosadí do startovního příkazu nebo do konfiguračního souboru hry (např. server-port v server.properties).
Proto by se port v konfiguraci hry neměl ručně měnit – při dalším startu ho egg stejně přepíše hodnotou z alokace.
Přidání alokací
V administraci otevřete Nodes → váš node → Allocation:
- IP Address – IP adresa, na které má server naslouchat.
- IP Alias – volitelný text, který se uživatelům zobrazí místo IP (např. doména
mc.example.cz). - Ports – jeden port, seznam nebo rozsah, např.
25565-25600.
Rozsah vytvoří samostatnou alokaci pro každý port. Nepřidávejte zbytečně tisíce portů naráz – formulář a stránka nodu pak zbytečně zpomalují.
Jakou IP zadat
| Situace | Co zadat |
|---|---|
| VPS s jednou veřejnou IP | veřejnou IP nodu |
| Node za NAT (domácí server, některé cloudy) | 0.0.0.0 + IP alias s veřejnou IP/doménou |
| Více veřejných IP | každou IP zvlášť, servery rozdělit |
Při 0.0.0.0 server naslouchá na všech rozhraních. Hráčům by se ale zobrazila nicneříkající adresa, proto se hodí IP alias.
Častá chyba: zadat 127.0.0.1 nebo interní IP z cloudu, kterou provider na rozhraní nepřiřazuje jako veřejnou. Kterou IP rozhraní skutečně má, zjistíte:
ip -4 addr show
Primární a další alokace
Server má jednu primární alokaci (ta se dosazuje do SERVER_PORT) a může mít další. Ty se hodí například pro:
- Minecraft query nebo RCON na jiném portu,
- voice plugin (Simple Voice Chat apod.) s vlastním UDP portem,
- hry, které potřebují víc portů (Rust: hra + RCON + Rust+ aplikace).
Další alokace přidáte v administraci u serveru v záložce Build Configuration. Pokud chcete, aby si je uživatelé mohli přidávat sami, nastavte serveru Allocation Limit větší než 1 a v Settings → Advanced zapněte automatické vytváření alokací s rozsahem portů. Uživatel pak v záložce Network klikne na „Create Allocation“.
Další porty nejsou v eggu automaticky v proměnných – jejich číslo musí uživatel nastavit v konfiguraci hry nebo pluginu ručně.
TCP, nebo UDP?
Wings publikuje porty pro TCP i UDP zároveň, nemusíte to v Panelu rozlišovat. Rozlišovat to ale musíte ve firewallu a u providera:
| Hra | Protokol |
|---|---|
| Minecraft Java | TCP (query UDP) |
| Minecraft Bedrock | UDP |
| Valheim, Rust, většina Steam her | UDP |
| FiveM | TCP i UDP |
Pozor: Docker a ufw
Porty publikované Dockerem obcházejí běžná pravidla ufw. Docker zapisuje vlastní řetězce do iptables a provoz do kontejnerů jde přes ně dřív, než se uplatní pravidla ufw v řetězci INPUT. Prakticky to znamená:
ufw deny 25565port kontejneru nezablokuje,- naopak zapomenuté
ufw allowobvykle nevadí, port bude stejně dostupný.
Pokud potřebujete port kontejneru omezit (např. backend server za proxy), použijte řetězec DOCKER-USER, který Docker respektuje:
# povolit backend jen z IP proxy, ostatním zahodit
sudo iptables -I DOCKER-USER -p tcp --dport 25566 ! -s 203.0.113.10 -j DROP
Pravidlo přežije restart jen s nástrojem jako iptables-persistent. Další tipy najdete v článku Zabezpečení herního serveru.
Ověření, že port opravdu naslouchá
Na nodu:
sudo ss -tulpn | grep 25565
Z jiného počítače (TCP):
nc -vz mc.example.cz 25565
Pokud ss port ukazuje, ale zvenku se nepřipojíte, problém je mimo server – firewall u providera, bezpečnostní skupina v cloudu nebo NAT na routeru.
Shrnutí
- Alokace = IP + port na nodu, server má jednu primární a volitelně další.
- Za NATem použijte
0.0.0.0a IP alias. - Port neměňte v konfiguraci hry, ale v alokaci.
- Docker obchází ufw – omezení řešte v
DOCKER-USER.