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:
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:
Der Dienst muss auf dem Port laufen.
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:
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:
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
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:
3306PostgreSQL:
5432Redis:
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
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:
SSH erlauben.
Firewall aktivieren.
Nur benötigte Ports öffnen.
Nicht benötigte Dienste schließen.
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 statusAusgabe von
ss -tulpengenaue Fehlermeldung
was du bereits versucht hast
Sende keine Passwörter, privaten Schlüssel oder vertraulichen Zugangsdaten.
Zuletzt aktualisiert