For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ports unter Linux öffnen

In diesem Artikel erklären wir dir, wie du Ports auf deinem Linux KVM-Server öffnest und warum Ports für die Erreichbarkeit deiner Dienste wichtig sind.

Wenn ein Dienst von außen erreichbar sein soll, muss der passende Port freigegeben sein. Das betrifft zum Beispiel Webserver, Gameserver, Datenbanken, APIs oder eigene Anwendungen.

Was ist ein Port?

Ein Port ist eine Nummer, über die ein bestimmter Dienst auf deinem Server erreichbar ist.

Die IP-Adresse zeigt auf den Server. Der Port zeigt auf den Dienst auf diesem Server.

Beispiel:

Dienst
Typischer Port

SSH

22

HTTP

80

HTTPS

443

Minecraft Java

25565

Teamspeak

9987

MySQL / MariaDB

3306

PostgreSQL

5432

Wenn du zum Beispiel eine Webseite betreibst, muss der Server über Port 80 und 443 erreichbar sein.

Wenn du einen Minecraft Server betreibst, muss normalerweise Port 25565 erreichbar sein.

Wann muss ich einen Port öffnen?

Du musst einen Port öffnen, wenn ein Dienst von außen erreichbar sein soll.

Typische Beispiele:

  • Webseite über Browser erreichbar machen

  • Minecraft Server erreichbar machen

  • API öffentlich bereitstellen

  • Teamspeak Server betreiben

  • eigene Anwendung auf einem bestimmten Port starten

  • Remote-Verbindung zu einem Dienst erlauben

Nicht jeder Dienst sollte öffentlich erreichbar sein. Öffne nur Ports, die du wirklich brauchst.

Wichtiger Unterschied: Dienst und Firewall

Ein offener Port allein reicht nicht aus.

Damit ein Port erreichbar ist, müssen zwei Dinge stimmen:

  1. Der Dienst muss auf dem Port laufen.

  2. Die Firewall muss Verbindungen auf diesen Port erlauben.

Beispiel:

Du öffnest Port 25565 in der Firewall, aber dein Minecraft Server läuft nicht. Dann ist der Port trotzdem nicht erreichbar.

Oder umgekehrt:

Dein Minecraft Server läuft auf Port 25565, aber die Firewall blockiert den Port. Dann können Spieler ebenfalls nicht verbinden.

Aktive Dienste und Ports anzeigen

Du kannst prüfen, welche Dienste aktuell auf deinem Server lauschen.

Nutze dafür:

ss -tulpen

Die Ausgabe zeigt aktive Ports und Prozesse.

Wichtige Spalten sind:

Spalte
Bedeutung

Local Address:Port

IP-Adresse und Port, auf dem der Dienst lauscht

Process

Prozess oder Dienst, der den Port verwendet

tcp

TCP-Verbindung

udp

UDP-Verbindung

Wenn du nur bestimmte Ports prüfen möchtest, kannst du zum Beispiel verwenden:

ss -tulpen | grep 25565

Firewall unter Linux

Viele Linux-Server verwenden eine Firewall, um Netzwerkzugriffe zu steuern.

Häufig genutzt werden:

  • UFW

  • firewalld

  • iptables

  • nftables

Auf vielen Einsteiger-Systemen ist UFW am einfachsten zu bedienen.

UFW installieren

Falls UFW noch nicht installiert ist, kannst du es installieren.

Bei Debian oder Ubuntu:

apt update

apt install ufw -y

Bei AlmaLinux oder Rocky Linux wird häufig firewalld verwendet. UFW kann dort ebenfalls installiert werden, ist aber nicht immer standardmäßig eingerichtet.

UFW Status prüfen

Prüfe zuerst, ob UFW aktiv ist:

ufw status

Mögliche Ausgaben:

Ausgabe
Bedeutung

Status: inactive

UFW ist deaktiviert

Status: active

UFW ist aktiv

Status: active mit Regeln

UFW ist aktiv und hat bereits Freigaben

Sehr wichtig vor dem Aktivieren von UFW

Bevor du UFW aktivierst, musst du SSH erlauben.

Wenn du SSH nicht freigibst, kannst du dich unter Umständen selbst vom Server aussperren.

SSH nutzt standardmäßig Port 22.

Erlaube SSH mit:

ufw allow 22/tcp

Oder kurz:

ufw allow ssh

Wenn du einen eigenen SSH-Port verwendest, musst du diesen Port freigeben.

Beispiel für SSH auf Port 2222:

ufw allow 2222/tcp

UFW aktivieren

Wenn SSH freigegeben ist, kannst du UFW aktivieren:

ufw enable

Danach den Status prüfen:

ufw status

Einzelnen TCP-Port öffnen

Viele Dienste nutzen TCP.

Beispiel: Port 80 für HTTP öffnen:

ufw allow 80/tcp

Beispiel: Port 443 für HTTPS öffnen:

ufw allow 443/tcp

Beispiel: Minecraft Java Port öffnen:

ufw allow 25565/tcp

Einzelnen UDP-Port öffnen

Manche Dienste nutzen UDP.

Beispiel: Teamspeak Voice Port öffnen:

ufw allow 9987/udp

Wenn ein Dienst UDP verwendet, reicht eine TCP-Regel nicht aus.

TCP und UDP gleichzeitig öffnen

Wenn du nicht sicher bist, ob dein Dienst TCP oder UDP verwendet, prüfe die Dokumentation des Dienstes.

Du kannst TCP und UDP auch getrennt freigeben.

Beispiel:

ufw allow 25565/tcp

ufw allow 25565/udp

Portbereich öffnen

Manche Anwendungen verwenden mehrere Ports oder einen ganzen Portbereich.

Beispiel TCP-Portbereich:

ufw allow 3000:3010/tcp

Beispiel UDP-Portbereich:

ufw allow 3000:3010/udp

Öffne Portbereiche nur, wenn du sie wirklich brauchst.

Regel wieder entfernen

Wenn du einen Port nicht mehr benötigst, solltest du die Regel entfernen.

Beispiel:

ufw delete allow 25565/tcp

Danach prüfen:

ufw status

Regeln nummeriert anzeigen

Wenn du mehrere Regeln hast, kannst du sie nummeriert anzeigen:

ufw status numbered

Dann kannst du eine Regel über ihre Nummer löschen.

Beispiel:

ufw delete 3

Prüfe danach erneut den Status.

Häufige Ports

Dienst
Port
Protokoll

SSH

22

TCP

HTTP

80

TCP

HTTPS

443

TCP

Minecraft Java

25565

TCP

Minecraft Bedrock

19132

UDP

Teamspeak Voice

9987

UDP

Teamspeak Query

10011

TCP

Teamspeak Filetransfer

30033

TCP

MySQL / MariaDB

3306

TCP

PostgreSQL

5432

TCP

Redis

6379

TCP

Docker App Beispiel

3000

TCP

Pterodactyl Wings

8080, 2022

TCP

Ports für Webserver öffnen

Wenn du eine Webseite über deinen KVM-Server betreiben möchtest, brauchst du normalerweise:

ufw allow 80/tcp

ufw allow 443/tcp

Port 80 wird für unverschlüsseltes HTTP verwendet. Port 443 wird für HTTPS verwendet.

Ports für Minecraft öffnen

Für Minecraft Java ist normalerweise Port 25565/tcp nötig.

ufw allow 25565/tcp

Für Minecraft Bedrock ist normalerweise Port 19132/udp nötig.

ufw allow 19132/udp

Wenn du einen anderen Port in der Serverkonfiguration verwendest, musst du diesen Port öffnen.

Ports für Datenbanken

Datenbankports sollten normalerweise nicht öffentlich geöffnet werden.

Beispiele:

  • MySQL / MariaDB: 3306

  • PostgreSQL: 5432

  • Redis: 6379

Öffne Datenbankports nur, wenn du genau weißt, warum du das brauchst.

Besser ist oft:

  • Datenbank nur lokal erreichbar machen

  • Zugriff über VPN

  • Zugriff auf bestimmte IP-Adressen beschränken

  • starke Passwörter verwenden

  • Benutzerrechte begrenzen

Zugriff nur für eine bestimmte IP erlauben

Du kannst einen Port nur für eine bestimmte IP-Adresse freigeben.

Beispiel: SSH nur für eine bestimmte IP erlauben:

ufw allow from 203.0.113.50 to any port 22 proto tcp

Das ist sicherer als den Port für das gesamte Internet zu öffnen.

Port blockieren

Du kannst einen Port auch gezielt blockieren.

Beispiel:

ufw deny 3306/tcp

Damit werden eingehende Verbindungen auf Port 3306 blockiert.

Firewall neu laden

Nach Änderungen kannst du UFW neu laden:

ufw reload

Normalerweise werden UFW-Regeln direkt übernommen. Ein Reload schadet aber nicht, wenn du sicherstellen möchtest, dass alle Regeln aktiv sind.

Prüfen, ob ein Port erreichbar ist

Du kannst von außen prüfen, ob ein Port erreichbar ist.

Unter Linux oder macOS kannst du zum Beispiel verwenden:

nc -vz SERVER-IP 25565

Für UDP ist eine Prüfung schwieriger, weil UDP verbindungslos arbeitet.

Du kannst außerdem externe Portscanner verwenden. Achte aber darauf, nur eigene Server zu prüfen.

Wenn der Port trotz Freigabe nicht erreichbar ist

Wenn du den Port geöffnet hast, aber der Dienst nicht erreichbar ist, prüfe diese Punkte:

  • läuft der Dienst wirklich?

  • lauscht der Dienst auf dem richtigen Port?

  • nutzt der Dienst TCP oder UDP?

  • ist die Firewall-Regel korrekt?

  • läuft zusätzlich eine Firewall im Dienst selbst?

  • lauscht der Dienst nur auf 127.0.0.1?

  • wurde der falsche Port geöffnet?

  • wurde der Server nach einer Konfigurationsänderung neu gestartet?

Dienst lauscht nur auf localhost

Manche Anwendungen lauschen nur auf 127.0.0.1.

Das bedeutet, dass der Dienst nur lokal auf dem Server erreichbar ist, aber nicht von außen.

Beispiel:

127.0.0.1:3000

Wenn ein Dienst öffentlich erreichbar sein soll, muss er meistens auf 0.0.0.0 oder auf der öffentlichen Server-IP lauschen.

Prüfe dazu die Konfiguration deiner Anwendung.

Unterschied zwischen 0.0.0.0 und 127.0.0.1

Adresse
Bedeutung

127.0.0.1

nur lokal auf dem Server erreichbar

0.0.0.0

auf allen Netzwerkschnittstellen erreichbar

öffentliche IP

über diese konkrete IP erreichbar

Wenn ein Webserver oder eine App nur auf 127.0.0.1 läuft, kann die Firewall korrekt sein und der Dienst trotzdem nicht von außen erreichbar sein.

Typische Fehler

SSH wurde nicht freigegeben

Wenn du UFW aktivierst, ohne SSH vorher zu erlauben, kannst du dich aussperren.

Erlaube deshalb immer zuerst SSH:

ufw allow 22/tcp

Danach erst:

ufw enable

Falsches Protokoll geöffnet

Minecraft Bedrock nutzt UDP. Minecraft Java nutzt TCP.

Wenn du für Bedrock nur TCP öffnest, funktioniert die Verbindung nicht.

Dienst läuft nicht

Ein Port ist nur erreichbar, wenn auch ein Dienst darauf läuft.

Prüfe mit:

ss -tulpen

Falscher Port in der Anwendung

Wenn deine Anwendung auf Port 3001 läuft, du aber Port 3000 geöffnet hast, bleibt der Dienst unerreichbar.

Firewall im Programm selbst

Manche Programme haben eigene Zugriffsbeschränkungen.

Prüfe zusätzlich die Konfiguration der Anwendung.

Sicherheit

Öffne nur Ports, die du wirklich benötigst.

Besonders vorsichtig solltest du sein bei:

  • Datenbanken

  • Admin-Oberflächen

  • internen APIs

  • Redis

  • Elasticsearch

  • Docker-Diensten

  • Panels

  • Entwicklungsservern

Ein öffentlich erreichbarer Dienst kann angegriffen werden, wenn er schlecht abgesichert ist.

Empfehlung

Für die meisten Linux-Server ist ein einfacher Start:

  1. SSH erlauben.

  2. Firewall aktivieren.

  3. Nur benötigte Ports öffnen.

  4. Nicht benötigte Dienste schließen.

  5. Regelmäßig prüfen, welche Ports offen sind.

Beispiel für einen Webserver:

ufw allow 22/tcp

ufw allow 80/tcp

ufw allow 443/tcp

ufw enable

Support kontaktieren

Wenn ein Port trotz korrekter Freigabe nicht erreichbar ist, kontaktiere den Support.

Gib dabei bitte folgende Informationen an:

  • Server-IP

  • Betriebssystem

  • betroffener Port

  • verwendetes Protokoll: TCP oder UDP

  • Dienst oder Anwendung, die den Port nutzt

  • Ausgabe von ufw status

  • Ausgabe von ss -tulpen

  • genaue Fehlermeldung

  • was du bereits versucht hast

Sende keine Passwörter, privaten Schlüssel oder vertraulichen Zugangsdaten.

Zuletzt aktualisiert