Minecraft-Server-Port 25565 auf Hetzner und Linux richtig öffnen

Der Container läuft, aber niemand kann joinen? Dieser Guide zeigt, wie du Port 25565 in Docker, UFW und der Hetzner Cloud Firewall korrekt freigibst.

Netzwerk
setupmc.com Team

Brauchst du eine sauberere Basis?

Erzeuge erst ein Compose-Setup, statt weiter manuell zu flicken

Wenn du die Server-Basis noch aufräumen willst, nutze den Konfigurator für ein saubereres Docker-Compose-Setup und komm danach für das nächste Problem zu den Guides zurück.

Konfigurator öffnen

Wann du genau diesen Guide brauchst

Diese Anleitung ist genau dann die richtige, wenn dein Minecraft-Container sauber startet, aber Spieler von außen nicht verbinden können. Typische Symptome sind:

  • Connection refused
  • Verbindungs-Timeouts
  • lokal auf localhost funktioniert es, über die öffentliche IP aber nicht
  • docker compose ps sieht gesund aus, trotzdem kann niemand joinen

Das Ziel ist klar: Minecraft-Java-Traffic muss TCP-Port 25565 aus dem Internet bis zu deinem Server durchkommen.

60-Sekunden-Check

  1. Prüfe, ob Docker 25565:25565 wirklich veröffentlicht.
  2. Prüfe, ob der Linux-Host auf Port 25565 lauscht.
  3. Erlaube 25565/tcp in der Host-Firewall.
  4. Erlaube 25565/tcp in der Hetzner Cloud Firewall.
  5. Teste aus einem anderen Netzwerk.

Voraussetzungen

  • Ein laufender Minecraft-Java-Server in Docker oder Docker Compose
  • Eine öffentliche IPv4 oder IPv6 auf deinem Hetzner-Server
  • SSH-Zugriff auf den Linux-Host

Wenn der Server noch gar nicht ausgerollt ist, beginne mit Einrichten eines Minecraft-Servers auf einem Hetzner Cloud-Server mit Docker Compose.

Schritt 1: Prüfen, ob Docker den Spiel-Port überhaupt veröffentlicht

Fange bei der lokalen Wahrheit an. Wenn Docker den Port nie veröffentlicht hat, helfen Firewall-Änderungen nicht.

docker compose ps
docker ps --format 'table {{.Names}}\t{{.Ports}}'

Du solltest 25565/tcp auf dem Host sehen, zum Beispiel:

0.0.0.0:25565->25565/tcp
:::25565->25565/tcp

Wenn dort nichts veröffentlicht ist, korrigiere zuerst die Compose-Datei:

services:
  mc:
    image: itzg/minecraft-server:latest
    ports:
      - "25565:25565"

Danach neu anwenden:

docker compose up -d

Schritt 2: Prüfen, ob der Host auf 25565 lauscht

Bestätige als Nächstes, dass der Linux-Host den Port wirklich offen hat:

sudo ss -tlnp | grep 25565

Wenn der Befehl nichts zurückgibt, trifft meistens eines davon zu:

  • der Container läuft nicht
  • das Port-Mapping fehlt
  • der Dienst ist beim Start fehlgeschlagen

Dann zuerst die Logs ansehen:

docker compose logs -f

Schritt 3: Die Linux-Host-Firewall öffnen

Wenn du UFW nutzt, erlaube Minecraft explizit:

sudo ufw allow 25565/tcp
sudo ufw status

Wenn du rohe iptables- oder nftables-Regeln pflegst, stelle sicher, dass eine eingehende Allow-Regel für 25565/tcp existiert.

Entferne dabei nicht versehentlich deinen SSH-Zugang. Wenn deine Firewall sehr restriktiv ist, halte 22/tcp für deine Admin-IP offen.

Schritt 4: Die Hetzner Cloud Firewall öffnen

Hetzner Cloud Firewalls sitzen vor dem Server. Das heißt: Dein Linux-Host kann korrekt konfiguriert sein und der Traffic wird trotzdem vorher verworfen.

In der Hetzner-Konsole:

  1. Öffne dein Projekt.
  2. Gehe zu Firewalls.
  3. Erstelle oder bearbeite die Firewall, die am Minecraft-Server hängt.
  4. Füge eine eingehende Regel für TCP, Port 25565, Quelle 0.0.0.0/0 hinzu, wenn der Server öffentlich erreichbar sein soll.
  5. Wenn auch IPv6-Spieler joinen sollen, ergänze ::/0.

Für den ersten Test sollte die Regel bewusst einfach sein. Später kannst du andere Ports wie SSH enger absichern.

Schritt 5: Von außen testen

Teste nicht nur vom Host selbst aus. Nutze stattdessen:

  • das normale Minecraft-Spiel aus einem anderen Netz
  • einen Freund
  • einen Mobilfunk-Hotspot

Im Java-Spiel verbindest du dich mit:

DEINE_SERVER_IP:25565

Wenn das funktioniert, ist der Verbindungsweg sauber. Für eine schönere Serveradresse geht es mit Minecraft-Domain ohne Port: SRV-Record richtig einrichten weiter.

Häufige Fehler

SymptomWahrscheinliche UrsacheFix
docker ps zeigt keine veröffentlichten PortsCompose-Datei hat kein ports-Mapping"25565:25565" ergänzen und neu erstellen
UFW ist offen, öffentlich bleibt es trotzdem dichtHetzner Cloud Firewall blockiert nochDort ebenfalls 25565/tcp erlauben
Portscan zeigt geschlossen, Logs wirken normalFalsches ProtokollFür Java TCP verwenden
RCON funktioniert intern, Spieler können trotzdem nicht joinenNur der Verwaltungszugang ist offenDen eigentlichen Spiel-Port veröffentlichen, nicht nur RCON

Sicherheitshinweis

Öffne nur die Ports, die du wirklich für Spieler brauchst. Für einen normalen Minecraft-Java-Server ist das meist TCP 25565 und sonst nichts. Expose RCON nicht einfach mit, nur weil du Admin-Zugriff willst. Halte den Verwaltungszugang auf dem Host-System oder in einem privaten Docker-Netz.

FAQ

Sollte ich den Spiel-Port nur an eine einzelne IP binden?

Nur wenn du genau weißt, warum. Für die meisten Einzelserver ist das öffentliche Standard-Binding sinnvoll.

Was ist mit dem Query-Port?

Den brauchst du nur, wenn du Query bewusst einsetzt. Für normale Java-Spieler ist er nicht notwendig.

Nächste Schritte

Häufige Fragen

Kurze Antworten auf die Fragen, die bei diesem Thema in der Praxis meistens auftauchen.