Harting Development

Prüfen, ob ein Port unter Linux geöffnet ist: Einfache Methoden und bewährte Praktiken

Lukas Fuchs vor 1 Monat Netzwerk & Routing 3 Min. Lesezeit

Befehlszeilentools zum Überprüfen geöffneter Ports

Linux bietet eine Reihe leistungsstarker Befehlszeilentools, mit denen du offene Ports auf deinem System überprüfen kannst. Hier sind drei der gängigsten und effektivsten Tools:

netstat

netstat ist ein vielseitiges Tool, das detaillierte Informationen zu Netzwerkverbindungen, einschließlich der von ihnen verwendeten Ports, bereitstellt. Führe den folgenden Befehl aus, um eine Liste aller offenen TCP- und UDP-Ports anzuzeigen:

netstat -tulpn

ss

ss (Socket Statistics) ist ein weiteres nützliches Tool, das dir einen Echtzeitüberblick über Socket-Verbindungen und die von ihnen verwendeten Ports bietet. Gib den folgenden Befehl ein, um eine Liste aller geöffneten Ports anzuzeigen:

sudo ss -tulpn

lsof

lsof (List Open Files) ist ein vielseitiges Tool, das eine umfassende Liste aller geöffneten Dateien und Ports auf deinem System bereitstellt. Führe den folgenden Befehl aus, um eine Liste aller offenen Ports zu erhalten:

sudo lsof -i

Diese Befehlszeilentools ermöglichen es dir, die auf deinem System geöffneten Ports schnell und einfach zu identifizieren. Dies kann wertvolle Informationen für die Fehlerbehebung bei Netzwerkproblemen, die Verbesserung der Systemsicherheit und das Überwachen des Netzwerkverkehrs liefern.

Verwendung von ss zum Anzeigen von Socket-Statistiken

Das Tool ss (Socket Statistics) bietet eine erweiterte Ansicht der Netzwerkaktivitäten, einschließlich Informationen zu geöffneten Ports. Im Gegensatz zu netstat zeigt ss sowohl IPv4- als auch IPv6-Verbindungen an.

Socket-Zustände verstehen

ss gruppiert Sockets in verschiedene Zustände:

  • LISTEN: Port lauscht auf eingehende Verbindungen.
  • ESTABLISHED: Aktive Verbindung zwischen zwei Hosts.
  • FIN-WAIT-1/2: Verbindung wird geschlossen.
  • TIME-WAIT: Socket wartet auf die Zeitüberschreitung eingehender Pakete.

Befehlssyntax und Optionen

Um alle offenen Ports unter Linux mit ss anzuzeigen, führe den folgenden Befehl aus:

ss -ltn

Zusätzliche Optionen von ss:

  • -p: Zeigt Prozessinformationen an, die mit geöffneten Ports verbunden sind.
  • -a: Zeigt alle Sockets an, auch wenn sie nicht gebunden sind.
  • -numeric: Konvertiert Portnummern in numerische Werte.

Beispielausgabe

Die Ausgabe von ss enthält typischerweise die folgenden Spalten:

  • State: Socket-Zustand (z. B. LISTEN, ESTABLISHED).
  • Recv-Q: Anzahl der eingegangenen Daten.
  • Send-Q: Anzahl der gesendeten Daten.
  • Local Address: Lokale IP-Adresse und Portnummer.
  • Foreign Address: Remote-IP-Adresse und Portnummer.

Wenn du beispielsweise eine aktive Verbindung zu einem Webserver auf Port 80 hast, könnte die Ausgabe wie folgt aussehen:

State       Recv-Q Send-Q Local Address:Port   Foreign Address:Port
ESTABLISHED 0      0      192.168.1.10:58417   10.0.0.1:80

Dadurch wird bestätigt, dass auf dem lokalen Host mit der IP-Adresse 192.168.1.10 ein Port 58417 geöffnet ist, der mit dem Webserver 10.0.0.1 auf Port 80 verbunden ist.

Netstat zum Auflisten von Port-Verbindungen

Netstat ist ein vielseitiges Befehlszeilentool, das eine umfassende Liste aller derzeit geöffneten Netzwerkanschlüsse, einschließlich Ports, anzeigt. Es bietet eine detaillierte Übersicht über die Netzwerkaktivitäten deines Systems und ermöglicht dir die Identifizierung offener sowie aktiver Ports.

Verwendung von Netstat

Um Netstat zu verwenden, öffne ein Terminalfenster und gib den folgenden Befehl ein:

netstat -tulpn

Die Ausgabe von Netstat wird in einer tabellarischen Form angezeigt und umfasst die folgenden Spalten:

  • Proto: Das Netzwerkprotokoll, das verwendet wird (z. B. TCP, UDP).
  • Local address: Die lokale IP-Adresse und der Port, die für die Verbindung verwendet werden.
  • Foreign address: Die Remote-IP-Adresse und der Port, mit dem die Verbindung hergestellt wird (nur für TCP-Verbindungen).
  • State: Der aktuelle Status der Verbindung (z. B. ESTABLISHED, LISTEN, CLOSE_WAIT).
  • PID/Program name: Die Prozess-ID und der Name des Programms, das den Port verwendet.

Anzeigen offener Ports

Um nur offene Ports aufzulisten, kannst du den folgenden Befehl verwenden:

netstat -tulpn | grep LISTEN

Dieser Befehl filtert die Ausgabe von Netstat und zeigt nur Zeilen an, die den Status "LISTEN" haben, was angibt, dass der Port offen und Verbindungen akzeptiert.

Zusätzliche Optionen

Netstat bietet zahlreiche zusätzliche Optionen, mit denen du die Ausgabe anpassen und bestimmte Informationen abrufen kannst. Hier sind einige nützliche Optionen:

  • -a: Alle Sockets anzeigen, einschließlich derjenigen, die nicht an eine IP-Adresse gebunden sind.
  • -p: Die Prozess-ID angeben, deren Sockets angezeigt werden sollen.
  • -s: Statistiken zu verschiedenen Protokollen anzeigen.

Weitere Informationen zur Verwendung von Netstat findest du in der Netstat-Dokumentation.

Socket-Programmbeispiel in C

Um geöffnete Ports zu prüfen, kannst du ein Socket-Programm in C schreiben. So geht's:

Erstellen eines Sockets

Zunächst erstellst du einen Socket mit socket(). Die Funktion nimmt drei Argumente:

  • domain: Die Protokollfamilie, z. B. AF_INET für IPv4 oder AF_INET6 für IPv6.
  • type: Der Socket-Typ, z. B. SOCK_STREAM für TCP-Sockets oder SOCK_DGRAM für UDP-Sockets.
  • protocol: Das Protokoll, z. B. 0 für das Standardprotokoll des Socket-Typs.
int socket_fd = socket(AF_INET, SOCK_STREAM, 0);

Port binden

Als Nächstes bindest du den Socket an einen Port mit bind(). Die Funktion nimmt drei Argumente:

  • socket_fd: Der Socket-Deskriptor.
  • addr: Die Adresse, an die der Socket gebunden werden soll, als struct sockaddr.
  • addrlen: Die Größe der Adressstruktur.
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(port);

int bind_result = bind(socket_fd, (struct sockaddr *)&addr, sizeof(addr));

Verbinden oder senden

Abhängig vom Socket-Typ verbindest du dich entweder mit einem Remote-Host (TCP) oder sendest Daten an einen bestimmten Port (UDP).

  • Für TCP-Sockets:
int connect_result = connect(socket_fd, (struct sockaddr *)&addr, sizeof(addr));
  • Für UDP-Sockets:
int sendto_result = sendto(socket_fd, data, data_len, 0, (struct sockaddr *)&addr, sizeof(addr));

Fehlerbehandlung

Wenn eine der Funktionen fehlschlägt, kannst du errno überprüfen, um den Fehler zu ermitteln. Beispielsweise:

if (bind_result < 0) {
    perror("Fehler beim Binden des Sockets");
    exit(1);
}

Referenzdokumente

Überprüfen von Ports über TCP- oder UDP-Protokolle

Manchmal musst du möglicherweise feststellen, ob ein bestimmter Port auf deinem Linux-System über das Transmission Control Protocol (TCP) oder das User Datagram Protocol (UDP) geöffnet ist. Es gibt verschiedene Möglichkeiten, dies zu tun, je nachdem, welche Tools und Kenntnisse dir zur Verfügung stehen.

Überprüfung über die Befehlszeile

Eine Möglichkeit, Ports über die Befehlszeile zu überprüfen, ist die Verwendung des netstat-Befehls. Dieser Befehl listet alle aktiven Netzwerkverbindungen auf deinem System auf, einschließlich der verwendeten Ports und Protokolle.

netstat -atnp | grep <port_number>

Dabei ist <port_number> die Portnummer, die du überprüfen möchtest.

Eine weitere Option ist die Verwendung des ss-Befehls. Dieser Befehl liefert detailliertere Informationen zu Socket-Statistiken, einschließlich der verwendeten Ports und Protokolle.

ss -atnp | grep <port_number>

Überprüfung über ein Socket-Programm

Wenn du über Programmierkenntnisse verfügst, kannst du auch ein Socket-Programm in C oder einer anderen Programmiersprache schreiben, um Ports zu überprüfen. Dies gibt dir die meiste Kontrolle über den Überprüfungsprozess.

TCP- vs. UDP

Es ist wichtig zu beachten, dass TCP und UDP unterschiedliche Protokolle sind. TCP ist ein verbindungsorientiertes Protokoll, was bedeutet, dass es eine Verbindung zwischen zwei Hosts herstellt, bevor Daten übertragen werden. UDP hingegen ist ein verbindungsloses Protokoll, was bedeutet, dass Daten ohne vorherige Verbindungseinrichtung gesendet werden können.

Je nach deinen Anforderungen musst du möglicherweise Ports über das eine oder andere Protokoll überprüfen.

Bewährte Praktiken bei der Portüberprüfung

Die Portüberprüfung ist ein kritischer Aspekt des Sicherheitsmanagements. Um sicherzustellen, dass deine Tests zuverlässig und effektiv sind, solltest du dich an folgende bewährte Praktiken halten:

Dokumentiere deine Ergebnisse

Dokumentiere die Ports, die du überprüft hast, die gefundenen Ergebnisse und die von dir verwendeten Methoden. Dies hilft dir, den Überblick über deine Sicherheitslage zu behalten und zukünftige Tests zu verfolgen.

Verwende mehrere Tools

Verlasse dich nicht auf ein einzelnes Tool. Verwende eine Kombination aus Befehlszeilentools (z. B. ss, netstat), Socket-Programmierung und externen Tools wie Nmap oder PortQry, um deine Ergebnisse zu verifizieren.

Überprüfe sowohl TCP- als auch UDP-Ports

Denke daran, Ports sowohl über TCP- als auch über UDP-Protokolle zu überprüfen. Einige Dienste verwenden möglicherweise eines oder beide Protokolle, was zu ungenauen Ergebnissen führen kann, wenn du nur eines überprüfst.

Scanne von externen Quellen

Führe Port-Scans nicht nur von internen Systemen aus durch. Scanne auch von externen Quellen, um eine realistischere Sicht auf die Sichtbarkeit deiner Ports für potenzielle Angreifer zu erhalten.

Regelmäßige Überprüfungen

Port-Scans sollten regelmäßig durchgeführt werden, um sicherzustellen, dass deine Systeme vor neuen Bedrohungen geschützt sind. Automatisierte Scans können deinen Aufwand minimieren und die Konsistenz gewährleisten.

Berücksichtigung von Sicherheitsrisiken

Bevor du Ports öffnest, denke über potenzielle Sicherheitsrisiken nach. Überlege genau, welche Dienste diese Ports benötigen und ob sie durch andere sichere Mittel zugänglich gemacht werden können.

Implementierung von Sicherheitsmaßnahmen

Sobald du offene Ports identifiziert hast, implementiere Sicherheitsmaßnahmen wie Firewalls, Intrusion-Detection-Systeme (IDS) und Virtual Private Networks (VPNs), um unbefugten Zugriff zu verhindern.

Zusammenarbeit mit Sicherheitsteams

Informiere deine Sicherheitsteams über geöffnete Ports und arbeite mit ihnen zusammen, um angemessene Sicherheitsmaßnahmen zu implementieren. Regelmäßige Kommunikation hilft, ein umfassendes Verständnis der Sicherheitslage zu gewährleisten.

Nutzung von kommerziellen Lösungen

Wenn deine Ressourcen knapp sind oder du eine umfassendere Lösung benötigst, erwäge die Verwendung kommerzieller Port-Scansoftware wie Nessus oder Intruder. Diese Tools bieten erweiterte Funktionen, Automatisierung und Unterstützung.

Sicherheitsempfehlungen für offene Ports

Als Systemadministrator musst du bei der Portüberwachung Vorsichtsmaßnahmen treffen, um die Sicherheit deines Systems zu gewährleisten. Hier sind einige bewährte Praktiken, die du beachten solltest:

Überwache und protokolliere Zugriffe

  • Richte eine Überwachung ein, um verdächtige Aktivitäten oder unbefugte Zugriffe auf offene Ports zu erkennen.
  • Aktiviere die Protokollierung für alle Netzwerkaktivitäten, sodass du die Ereignisse im Nachhinein prüfen kannst.
  • Verwende Tools wie Fail2ban, um Wiederholungsangriffe auf bestimmte Ports zu blockieren.

Halte deine Systeme auf dem neuesten Stand

  • Installiere regelmäßig Sicherheitsupdates und Patches, um bekannte Sicherheitslücken in Netzwerksoftware und Diensten zu beheben.
  • Verwende sichere Konfigurationen für deine Server und Dienste.

Beschränke den Zugriff auf notwendige Ports

  • Öffne nur die Ports, die für wesentliche Dienste und Anwendungen benötigt werden.
  • Schließe alle nicht verwendeten Ports, um Angriffsflächen zu minimieren.

Verwende Firewalls

  • Implementiere eine Firewall, um den Netzwerkverkehr zu filtern und unbefugten Zugriff auf offene Ports zu blockieren.
  • Konfiguriere Firewalls sorgfältig, um Portzugriff nur für berechtigte Nutzer und Zwecke zuzulassen.

Verwende Intrusion Detection Systems (IDS)

  • Richte ein IDS ein, um Anomalien im Netzwerkverkehr zu erkennen, die auf verdächtige Aktivitäten oder Angriffe hinweisen könnten.
  • IDS können in Echtzeit Warnungen ausgeben, sodass du schnell auf potenzielle Bedrohungen reagieren kannst.

Vermeide die Verwendung unsicherer Dienste

  • Deaktiviere oder entferne Dienste, die nicht mehr benötigt werden oder Sicherheitsrisiken darstellen könnten.
  • Beispielsweise wird FTP als unsicheres Protokoll angesehen und sollte nach Möglichkeit durch sicherere Alternativen wie SFTP ersetzt werden.

Recherchiere und bleibe informiert

  • Bleibe über die neuesten Sicherheitsbedrohung und -trends auf dem Laufenden.
  • Lies Sicherheitsexperten und abonniere Sicherheitswarnungen, um über potenzielle Schwachstellen in deiner Konfiguration informiert zu sein.

Weitere Beiträge

Folge uns

Neue Beiträge

Monitoring & Logging

Hoymiles DTU blinkt grün: Bedeutung, Ursachen und schnelle Lösungen

AUTOR • Jun 13, 2026
Netzwerk & Routing

UCOMEN WLAN Steckdose einrichten: Schritt-für-Schritt zur schnellen Smart-Home-Steckdose

AUTOR • Jun 13, 2026
Linux-Server

Fusion 360 für Linux: Installation, Einrichtung und Tipps für einen sauberen Workflow

AUTOR • Jun 13, 2026
Sicherheit & Hardening

Linux Passwort vergessen? Keine Panik – so setzen Sie es zurück

AUTOR • Jun 13, 2026
Sicherheit & Hardening

Einrichtung und Konfiguration eines sicheren Linux FTP Servers: So machst du es richtig

AUTOR • Jun 13, 2026
Sicherheit & Hardening

Der unbekannte Hueter SELinux erklaert: Was es ist, warum es wichtig ist und wie ich es nutze

AUTOR • Jun 13, 2026
Cloud & Virtualisierung

VMware Tools für Linux: Installation, Konfiguration und Fehlerbehebung ohne Umwege

AUTOR • Jun 13, 2026
Netzwerk & Routing

PS5 WLAN Verbindungsprobleme Diagnose und Lösungen: So fixst du instabiles Internet auf der PS5

AUTOR • Jun 13, 2026
Systemadministration

Verzeichnisse unter Linux entfernen mit zuverlässigen Befehlen: so lösche ich Ordner sicher und sauber

AUTOR • Jun 13, 2026
Netzwerk & Routing

WLAN und Bluetooth auf dem iPhone funktionieren nicht: Problembehebung, die wirklich hilft

AUTOR • Jun 13, 2026
Systemadministration

Speicherplatz auf Ihrem Linux-System finden und befreien: Die schnelle Anleitung für volle Festplatten

AUTOR • Jun 13, 2026
Linux-Server

Linux Versionsinformationen anzeigen: Eine einfache Anleitung für schnelle Systemchecks

AUTOR • Jun 13, 2026
Netzwerk & Routing

Smartes Wassermanagement mit Zisternenfüllstandsanzeige mit WLAN-Verbindung: so spare ich Wasser, Zeit und Stress

AUTOR • Jun 13, 2026
Linux-Server

Bootfähigen Linux USB Stick erstellen: einfache Anleitung für Installation und Wiederherstellung

AUTOR • Jun 13, 2026
Linux-Server

Die ultimative Anleitung zu Linux ISO: Alles, was Sie wissen müssen

AUTOR • Jun 13, 2026
Automatisierung & Scripting

Linux-Snipping-Tool: Die ultimative Anleitung zum Erfassen und Bearbeiten von Bildschirmausschnitten

AUTOR • Jun 13, 2026
Cloud & Virtualisierung

Flathub: Das Software-Ökosystem für Flatpak-Anwendungen erklärt

AUTOR • Jun 13, 2026
Netzwerk & Routing

FRITZ!WLAN Stick AC 860: Treiber für optimale WLAN-Leistung

AUTOR • Jun 13, 2026
Linux-Server

Asahi Linux auf Debian-Basis für Apple Silicon Macs: So funktioniert die Distribution wirklich

AUTOR • Jun 13, 2026
Linux-Server

Office 365 auf Linux: So nutzt du Microsoft 365 sauber im Alltag

AUTOR • Jun 13, 2026

Beliebte Beiträge

Netzwerk & Routing

Fire TV Stick ohne WLAN per Handy verbinden: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 19, 2024
Sicherheit & Hardening

SSH für Linux: Sichere Remote-Verbindungen herstellen und verwalten

AUTOR • Apr 17, 2024
Linux-Server

Notepad++ für Linux: Ein Text- und Code-Editor

AUTOR • Apr 17, 2024
Netzwerk & Routing

So leeren Sie den DNS-Cache unter Linux und beheben damit Verbindungsprobleme

AUTOR • Apr 17, 2024
Systemadministration

Ändern des Hostnamens unter Ubuntu: Eine umfassende Anleitung

AUTOR • Apr 17, 2024
Automatisierung & Scripting

Entpacken von TAR-Archiven unter Linux: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Netzwerk & Routing

OpenWrt auf Fritz!Box installieren: Schritt-für-Schritt-Anleitung

AUTOR • May 13, 2026
Linux-Server

Erstellen eines bootfähigen USB-Sticks für Ubuntu mit Ventoy

AUTOR • Apr 17, 2024
Sicherheit & Hardening

IPv6 in Debian deaktivieren

AUTOR • Apr 17, 2024
Automatisierung & Scripting

So setzten Sie Umgebungsvariablen unter Linux

AUTOR • Apr 17, 2024
Netzwerk & Routing

Langsames WLAN der FRITZ!Box: Ursachen und Lösungen

AUTOR • Apr 19, 2024
Netzwerk & Routing

Der ultimative Leitfaden zum O2 Router: Installation, Konfiguration und Optimierung

AUTOR • Apr 19, 2024
Netzwerk & Routing

HP-Drucker mit WLAN verbinden: Schritt-für-Schritt-Anleitung

AUTOR • Apr 19, 2024
Linux-Server

Erstellung eines bootfähigen Linux-USB-Sticks: Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Sicherheit & Hardening

Fritzbox Gastzugang zeitlich begrenzen: So geht's!

AUTOR • Apr 06, 2025
Netzwerk & Routing

Mobiler WLAN-Router: Funktionsweise und alles, was du wissen musst

AUTOR • Apr 19, 2024
Netzwerk & Routing

Drahtlosfehler aufdecken: Debugging über WLAN

AUTOR • May 09, 2024
Linux-Server

Erstellen von Symbolischen Links in Linux: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Systemadministration

Linux Screen Command: Mehrere Sitzungen auf einem Terminal

AUTOR • Apr 17, 2024
Netzwerk & Routing

Yeedi mit WLAN verbinden: Schritt-für-Schritt-Anleitung

AUTOR • May 09, 2024