Skip to content

Ports und Netzwerk

ElGregor edited this page Aug 15, 2026 · 1 revision

Ports und Netzwerk

Home · Zurück: Quickstart-Linux

Welche Ports der Project-Zomboid-Dedicated-Server (B42) braucht, wie Firewall und Router zu konfigurieren sind und was der Docker-Pfad anders macht.

Port-Tabelle

Port Protokoll Zweck Quelle
16261 UDP (siehe Quellen-Konflikt unten) Haupt-Spielport (DefaultPort, aus GAME_PORT) Repo-Default (.env.example); Protokoll-Konflikt siehe unten
16262 UDP Zweiter Spiel-UDP-Port (UDPPort, aus DIRECT_PORT) Repo-Default (.env.example) + Community-Quelle (pzwiki: UDP)
27015 (RCON_PORT) TCP RCON-Fernsteuerung — niemals öffentlich freigeben Repo-Default (.env.example: RCON_PORT=27015)
27015 TCP Nur Docker-Variante: fester Port-Mapping-Eintrag Repo-Default (docker-compose.yml)

Die ersten drei Ports gelten für die native systemd-Installation; der 27015/tcp-Eintrag der Docker-Variante ist identisch zum RCON-Port, wird aber fest im Compose-File gemappt.

Quellen-Konflikt: TCP oder UDP für 16261?

Zu Port 16261 widersprechen sich die Quellen:

  • pzwiki listet 16261 und 16262 beide als UDP (Community-Quelle: pzwiki).
  • Andere Recherche (Storage-Guide-Projekt) fand 16261 als TCP (Community-Quelle: Storage-Guide-Recherche).

Heuristik dieses Projekts (gilt projektweit): 16261 in beiden Protokollen freigeben (tcp + udp) und zusätzlich 16262/udp öffnen. Damit ist beide Lesarten abgedeckt; ein zusätzlich geöffneter TCP-Port ist risikoarm, ein fehlender Protokoll-Eintrag verhindert dagegen Verbindungen (Heuristik).

Die Repo-Doku docs/02-setup-linux.md empfiehlt in ihrer Firewall-Sektion lediglich 16261/udp und 16262/udp (Repo-Default) — wer ganz sichergehen will, ergibt wie oben beschrieben das TCP-Äquivalent.

Firewall (UFW)

Empfehlung aus der Repo-Doku (docs/02, 1:1 — dort ohne den TCP-Zusatz):

sudo ufw allow 16261/udp && sudo ufw allow 16262/udp
sudo ufw allow from <deine-ip> to any port 27015 proto tcp   # RCON nur intern

Ergänzt um die Projekt-Heuristik (16261 auch als TCP):

sudo ufw allow 16261/tcp

Der RCON-Eintrag zeigt das Muster: Verwaltungsports nur für bekannte IP(s) freigeben, nie weltweit (Heuristik/Best Practice).

Router / Port-Forwarding

Für Erreichbarkeit aus dem Internet (Repo-Doku docs/02, 1:1):

  • UDP 16261 und 16262 auf die interne IP des Hosts weiterleiten
  • Nach Projekt-Heuristik zusätzlich 16261/tcp weiterleiten (siehe Quellen-Konflikt oben)
  • RCON 27015/tcp nicht weiterleiten (Heuristik/Best Practice)

Stabilität der Adresse (Heuristik): entweder dem Host eine feste interne IP zuweisen (DHCP-Reservierung) oder DynDNS einrichten, falls Spieler per Hostname verbinden sollen.

RCON und Sicherheit

  • RCON läuft auf RCON_PORT (Repo-Default: 27015, TCP), aktiviert per RCON_ENABLED=true (Repo-Default). Die Repo-Skripte nutzen RCON für In-Game-Ansagen (announce.sh) vor Updates/Stopps.
  • RCON nur lokal, aus dem eigenen Netz oder über VPN/SSH-Tunnel nutzen; der Port gehört nicht ins Port-Forwarding (Heuristik/Best Practice, konsistent mit docs/02).
  • Server-Schutzmechanismen aus der Konfiguration (Repo-Defaults, Details in Server-Konfiguration): PingLimit=400 (hohe Pings werden gekickt), DenyLoginOnOverloadedServer=true (keine Logins bei Überlast), MaxAccountsPerUser=1 (ein Account pro Steam-User).

Docker-Spezialfall

Port-Mapping aus docker/docker-compose.yml (1:1):

ports:
  - "16261:16261/udp"
  - "16262:16262/udp"
  - "27015:27015/tcp"

Beim Docker-Betrieb veröffentlicht Compose genau diese drei Ports; die .env-Variablen GAME_PORT/DIRECT_PORT ändern das Mapping nicht (Repo-Verhalten). systemd-Firewall- und UFW-Hinweise gelten analog, aber Start/Stop laufen über docker compose, nicht über make start (Docker-Betrieb).

Verbindung testen

Serverseite — ist der Port gebunden? (dieselbe Prüfung wie im Healthcheck-Skript, das ss -ulnp nach :${GAME_PORT} durchsucht):

ss -lun | grep 16261          # UDP-Sockets zeigen
sudo ss -ulnp | grep 16261  # mit Prozessanzeige

Test-Paket per netcat (Heuristik — UDP-„Verbindungen" sind unbestätigt, ein fehlender Fehler ist kein Beweis):

nc -vzu <server-ip> 16261
nc -vzu <server-ip> 16262

Clientseite:

  1. Project Zomboid starten → Join ServerInternet bzw. Favorites
  2. Verbinden mit der Server-IP; bei gesetztem SERVER_PASSWORD wird das Join-Passwort abgefragt
  3. Server nicht sichtbar? Public=false (Repo-Default) versteckt den Server aus der öffentlichen Liste — direkte IP-Verbindung nutzen (Repo-Verhalten)

Weiter: Docker-Betrieb

Vertieft in Repo: docs/02-setup-linux.md (Firewall- und Router-Sektion).

Clone this wiki locally