> For the complete documentation index, see [llms.txt](https://docs.instantroot.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.instantroot.de/kvm-server/allgemein/ports-verstehen.md).

# Ports verstehen

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

Wenn dein KVM-Server mit dem Internet verbunden ist, läuft die Kommunikation nicht nur über die IP-Adresse. Zusätzlich wird ein Port verwendet. Der Port sagt dem Server, an welchen Dienst die Anfrage weitergeleitet werden soll.

Beispiel:

* Die IP-Adresse sagt: **Welcher Server?**
* Der Port sagt: **Welcher Dienst auf diesem Server?**

### Einfaches Beispiel

Dein Server hat die IP-Adresse `123.123.123.123`.

Auf diesem Server können mehrere Dienste gleichzeitig laufen:

| Dienst          | Typischer Port |
| --------------- | -------------: |
| SSH             |           `22` |
| HTTP            |           `80` |
| HTTPS           |          `443` |
| Minecraft Java  |        `25565` |
| MySQL / MariaDB |         `3306` |
| Remote Desktop  |         `3389` |

Wenn du dich per SSH verbindest, nutzt du meistens Port `22`.

Beispiel: `ssh root@123.123.123.123`

Wenn du eine Webseite aufrufst, nutzt dein Browser meistens Port `80` oder `443`.

Beispiel: `https://deinedomain.de`

### Warum gibt es Ports?

Ein Server kann mehrere Aufgaben gleichzeitig übernehmen.

Zum Beispiel kann derselbe KVM-Server gleichzeitig:

* eine Webseite ausliefern
* SSH-Zugriff erlauben
* eine Datenbank betreiben
* einen Gameserver hosten
* einen Maildienst ausführen

Ohne Ports könnte der Server nicht eindeutig erkennen, welcher Dienst gemeint ist.

Ports helfen also dabei, Anfragen richtig zuzuordnen.

### Port und IP-Adresse zusammen

Eine vollständige technische Verbindung besteht oft aus IP-Adresse und Port.

Beispiel: `123.123.123.123:25565`

Dabei ist:

| Bestandteil       | Bedeutung              |
| ----------------- | ---------------------- |
| `123.123.123.123` | IP-Adresse des Servers |
| `25565`           | Port des Dienstes      |

Der Doppelpunkt trennt IP-Adresse und Port.

### Häufige Standardports

Viele Dienste verwenden feste Standardports.

|    Port | Dienst          | Erklärung                        |
| ------: | --------------- | -------------------------------- |
|    `21` | FTP             | Dateiübertragung                 |
|    `22` | SSH             | Verbindung zu Linux-Servern      |
|    `25` | SMTP            | Mailversand zwischen Mailservern |
|    `53` | DNS             | Namensauflösung                  |
|    `80` | HTTP            | unverschlüsselte Webseiten       |
|   `110` | POP3            | E-Mail-Abruf                     |
|   `143` | IMAP            | E-Mail-Abruf                     |
|   `443` | HTTPS           | verschlüsselte Webseiten         |
|   `465` | SMTPS           | verschlüsselter Mailversand      |
|   `587` | SMTP Submission | Mailversand für Benutzer         |
|   `993` | IMAPS           | verschlüsselter IMAP-Abruf       |
|   `995` | POP3S           | verschlüsselter POP3-Abruf       |
|  `3306` | MySQL / MariaDB | Datenbank                        |
|  `3389` | RDP             | Remote Desktop für Windows       |
|  `5432` | PostgreSQL      | Datenbank                        |
| `25565` | Minecraft Java  | Minecraft Java Server            |

Nicht jeder dieser Ports muss auf deinem Server geöffnet sein. Öffne nur Ports, die du wirklich benötigst.

### Offene und geschlossene Ports

Ein Port kann offen oder geschlossen sein.

#### Offener Port

Ein offener Port bedeutet, dass ein Dienst auf diesem Port erreichbar ist.

Beispiel:

Ein Webserver läuft auf Port `443`. Dann kann deine Webseite über HTTPS aufgerufen werden.

#### Geschlossener Port

Ein geschlossener Port bedeutet, dass dort kein Dienst erreichbar ist oder eine Firewall die Verbindung blockiert.

Beispiel:

Wenn auf Port `25565` kein Minecraft Server läuft, kann sich kein Spieler über diesen Port verbinden.

### Dienst und Firewall unterscheiden

Wenn ein Port nicht erreichbar ist, gibt es meistens zwei mögliche Ursachen:

1. Auf dem Port läuft kein Dienst.
2. Eine Firewall blockiert den Port.

Beides muss stimmen, damit ein Port erreichbar ist.

Der Dienst muss laufen und die Firewall muss Verbindungen erlauben.

Beispiel:

Du installierst einen Webserver. Der Webserver läuft auf Port `80`, aber die Firewall blockiert Port `80`. Dann ist die Webseite trotzdem nicht erreichbar.

### Ports unter Linux prüfen

Unter Linux kannst du prüfen, welche Ports verwendet werden.

Beispiel mit `ss`: `ss -tulpen`

Dieser Befehl zeigt dir aktive Netzwerkdienste und die Ports, auf denen sie lauschen.

Häufig verwendete Optionen:

| Option | Bedeutung                               |
| ------ | --------------------------------------- |
| `-t`   | TCP-Verbindungen anzeigen               |
| `-u`   | UDP-Verbindungen anzeigen               |
| `-l`   | nur lauschende Dienste anzeigen         |
| `-p`   | Prozess anzeigen                        |
| `-n`   | numerische Ausgabe ohne Namensauflösung |

Wenn du nur prüfen möchtest, ob ein bestimmter Port genutzt wird, kannst du filtern.

Beispiel für Port `80`: `ss -tulpen | grep :80`

### Ports unter Windows prüfen

Unter Windows kannst du offene Ports mit der Eingabeaufforderung oder PowerShell prüfen.

Beispiel: `netstat -ano`

Damit siehst du aktive Verbindungen und lauschende Ports.

Wenn du nach einem bestimmten Port suchen möchtest:

Beispiel für Port `3389`: `netstat -ano | findstr :3389`

Port `3389` wird für Remote Desktop verwendet.

### TCP und UDP

Ports können über unterschiedliche Protokolle verwendet werden. Die wichtigsten sind TCP und UDP.

#### TCP

TCP wird verwendet, wenn eine zuverlässige Verbindung wichtig ist.

Beispiele:

* Webseiten
* SSH
* RDP
* Datenbanken
* viele APIs

TCP prüft, ob Daten vollständig und in der richtigen Reihenfolge ankommen.

#### UDP

UDP wird verwendet, wenn Geschwindigkeit wichtiger ist als eine vollständige Prüfung jedes einzelnen Pakets.

Beispiele:

* viele Gameserver
* DNS
* Voice-Dienste
* Streaming
* einige VPN-Dienste

Bei Gameservern ist UDP häufig wichtig, weil Echtzeitkommunikation schnell sein muss.

### Muss ich TCP oder UDP öffnen?

Das hängt vom Dienst ab.

Einige Dienste brauchen TCP, andere UDP, manche beides.

Beispiele:

| Dienst                 | Typisch                 |
| ---------------------- | ----------------------- |
| SSH                    | TCP                     |
| HTTP / HTTPS           | TCP                     |
| RDP                    | TCP, teilweise auch UDP |
| DNS                    | UDP und TCP             |
| Minecraft Java         | TCP                     |
| Viele Steam-Gameserver | UDP                     |
| WireGuard VPN          | UDP                     |

Prüfe immer die Anleitung der Software, die du installieren möchtest.

### Ports öffnen

Einen Port zu öffnen bedeutet, dass eingehende Verbindungen zu diesem Port erlaubt werden.

Das kann an mehreren Stellen nötig sein:

* in der Firewall des Betriebssystems
* in einer zusätzlichen Server-Firewall
* in der Anwendung selbst
* bei manchen Setups auch im Panel oder in Netzwerkeinstellungen

Auf einem KVM-Server ist meistens die Firewall im Betriebssystem entscheidend.

### Ports unter Linux öffnen

Viele Linux-Systeme verwenden `ufw` oder direkte Firewall-Regeln.

Beispiel für SSH: `ufw allow 22/tcp`

Beispiel für HTTP: `ufw allow 80/tcp`

Beispiel für HTTPS: `ufw allow 443/tcp`

Beispiel für Minecraft Java: `ufw allow 25565/tcp`

Nach Änderungen solltest du den Status prüfen.

Beispiel: `ufw status`

### Ports unter Windows öffnen

Unter Windows werden Ports über die Windows Defender Firewall freigegeben.

Grundsätzlich gehst du so vor:

1. Öffne die Windows Defender Firewall mit erweiterter Sicherheit.
2. Erstelle eine neue eingehende Regel.
3. Wähle **Port** aus.
4. Wähle TCP oder UDP.
5. Trage den Port ein.
6. Erlaube die Verbindung.
7. Wähle die passenden Profile.
8. Vergib einen eindeutigen Namen.

Beispielname: `Minecraft Java 25565 TCP`

### Ports schließen

Nicht benötigte Ports sollten geschlossen bleiben.

Ein offener Port ist nicht automatisch gefährlich. Er kann aber ein Risiko sein, wenn der dahinterliegende Dienst unsicher, veraltet oder falsch konfiguriert ist.

Schließe Ports, wenn:

* der Dienst nicht mehr genutzt wird
* du die Software entfernt hast
* der Port versehentlich geöffnet wurde
* ein Dienst nicht öffentlich erreichbar sein soll

### Sicherheitsgrundsatz

Öffne nur Ports, die du wirklich brauchst.

Je weniger Dienste öffentlich erreichbar sind, desto kleiner ist die Angriffsfläche deines Servers.

Besonders vorsichtig solltest du sein bei:

* SSH
* RDP
* Datenbanken
* Admin-Panels
* Mailservern
* ungeschützten Webinterfaces

Datenbanken wie MySQL oder PostgreSQL sollten in vielen Fällen nicht öffentlich erreichbar sein, sondern nur lokal oder über gesicherte Verbindungen.

### Häufige Probleme

#### Port ist trotz Freigabe nicht erreichbar

Prüfe:

* läuft der Dienst wirklich?
* lauscht der Dienst auf dem richtigen Port?
* wurde TCP oder UDP korrekt gewählt?
* blockiert die Firewall im Betriebssystem?
* wurde der Dienst nach der Änderung neu gestartet?
* ist die IP-Adresse korrekt?
* nutzt die Anwendung vielleicht einen anderen Port?

#### Dienst läuft nur lokal

Manche Dienste lauschen nur auf `127.0.0.1`.

Das bedeutet, dass sie nur vom Server selbst erreichbar sind, aber nicht von außen.

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

#### Falsches Protokoll geöffnet

Wenn ein Dienst UDP benötigt, aber nur TCP geöffnet wurde, funktioniert die Verbindung nicht.

Das passiert häufig bei Gameservern und Voice-Diensten.

#### Port wird bereits verwendet

Ein Port kann nicht gleichzeitig von mehreren Diensten auf derselben IP-Adresse genutzt werden.

Wenn ein Port bereits belegt ist, musst du entweder den bestehenden Dienst stoppen oder in der neuen Anwendung einen anderen Port einstellen.

#### Firewall blockiert nach Änderung SSH

Sei vorsichtig, wenn du Firewall-Regeln auf einem entfernten Server änderst.

Wenn du Port `22` blockierst und SSH nutzt, kannst du dich möglicherweise nicht mehr verbinden.

Prüfe Firewall-Regeln immer sorgfältig, bevor du sie aktivierst.

### Support kontaktieren

Wenn ein Port nicht erreichbar ist und du den Fehler nicht findest, kontaktiere den Support.

Gib dabei bitte folgende Informationen an:

* IP-Adresse des Servers
* betroffener Port
* TCP oder UDP
* verwendetes Betriebssystem
* welche Software den Port nutzt
* ob der Dienst gestartet ist
* welche Firewall du verwendest
* welche Fehlermeldung angezeigt wird
* was du bereits geprüft hast

Sende niemals Passwörter, private Schlüssel oder Zugangsdaten an den Support.
