Harting Development

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

Lukas Fuchs vor 2 Monaten 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

Systemadministration

Zurücksetzen des Hoymiles DTU: So setzt du die Hoymiles DTU schnell und sauber zurück

AUTOR • Aug 11, 2026
Linux-Server

AusweisApp2 für Linux: Digitale Ausweise bequem verwalten

AUTOR • Aug 11, 2026
Netzwerk & Routing

Layer 8 im OSI-Modell: Was das wirklich bedeutet und warum es im Alltag zählt

AUTOR • Aug 11, 2026
Linux-Server

Einrichten und Konfigurieren eines Samba Servers für die Dateifreigabe: Praxisleitfaden für Linux und Windows

AUTOR • Aug 11, 2026
Linux-Server

Linux auf Surface installieren: So läuft dein Microsoft Surface mit Linux stabil und schnell

AUTOR • Aug 11, 2026
Linux-Server

PDF24 für Linux: PDFs erstellen, bearbeiten und unter Linux effizient ändern

AUTOR • Aug 11, 2026
Netzwerk & Routing

Gültige IP-Konfiguration: So erkennst und löst du Netzwerkfehler schnell

AUTOR • Aug 10, 2026
Linux-Server

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

AUTOR • Aug 10, 2026
Systemadministration

Wechselrichter verbindet sich nicht mit WLAN: Problemlösungen und Anleitungen, die wirklich funktionieren

AUTOR • Aug 08, 2026
Netzwerk & Routing

OpenWrt auf Fritzbox installieren: So machst du deine Fritzbox zum flexiblen Router

AUTOR • Aug 07, 2026
Netzwerk & Routing

Sungrow Wechselrichter mit WLAN verbinden: So klappt die Einrichtung schnell und fehlerfrei

AUTOR • Aug 07, 2026
Systemadministration

Die perfekte Begleiterin: Handy-Umhängetaschen für jeden Stil und Anlass

AUTOR • Aug 07, 2026
Systemadministration

Passwort löschen Android: So entfernst du Sperrcode, PIN und Passwort richtig

AUTOR • Aug 07, 2026
Monitoring & Logging

Install Zabbix Proxy: So richtest du einen Zabbix Proxy schnell und sauber ein

AUTOR • Aug 06, 2026
Systemadministration

Outlook Kalender teilen iPhone: So klappt das Teilen in wenigen Minuten

AUTOR • Aug 06, 2026
Netzwerk & Routing

Route löschen: So entfernst du gespeicherte Routen schnell und sauber

AUTOR • Aug 06, 2026
Netzwerk & Routing

Rauchmelder Fritzbox kompatibel: Welche Modelle wirklich funktionieren und worauf du achten musst

AUTOR • Aug 06, 2026
Linux-Server

USB-Geräte unter Linux anzeigen: So findest du angeschlossene Geräte schnell und zuverlässig

AUTOR • Aug 05, 2026
Systemadministration

ARM Cortex-A55: Was der kleine CPU-Kern wirklich kann und wann er sinnvoll ist

AUTOR • Aug 05, 2026
Systemadministration

XLSX vs XLSB: Welches Excel-Format schneller, kleiner und besser für große Dateien ist

AUTOR • Aug 04, 2026

Beliebte Beiträge

Systemadministration

Die umfassende GPO Wert Liste: Wie Sie den besten Wert für Ihre GPO erhalten

AUTOR • Jul 16, 2025
Systemadministration

MBit in MBps umrechnen: Der ultimative Guide für Nutzer und Technikbegeisterte

AUTOR • Jun 26, 2025
Systemadministration

So messen Sie die Lautstärke mit Ihrem iPhone: Eine Schritt-für-Schritt-Anleitung

AUTOR • Jun 20, 2025
Cloud & Virtualisierung

Die ultimative Anleitung: iCloud zurücksetzen leicht gemacht

AUTOR • May 21, 2026
Cloud & Virtualisierung

Managed Service Accounts: Eine umfassende Einführung für Unternehmen

AUTOR • Jun 09, 2025
Sicherheit & Hardening

Fronius Inverter Reset: So setzt du deinen Fronius Wechselrichter schnell und sicher zurück

AUTOR • Jun 11, 2026
Netzwerk & Routing

Sami-Lesebär/WLAN: So richtest du die WLAN-Funktion richtig ein und löst typische Probleme

AUTOR • Jul 18, 2026
Netzwerk & Routing

Roborock verbindet sich nicht mit WLAN: Probleme beheben und Lösungen finden

AUTOR • Jul 19, 2026
Linux-Server

Fronius Fehlercode verstehen: Ursachen, Bedeutung und schnelle Lösungen

AUTOR • Jul 12, 2026
Netzwerk & Routing

Xiaomi WLAN Probleme: Ursachen finden und beheben – die schnelle Anleitung

AUTOR • Jun 11, 2026
Linux-Server

Anpassung von Linux-Symbolen: Ein umfassender Leitfaden zur Anpassung des Aussehens Ihres Desktops

AUTOR • Jun 10, 2026
Linux-Server

Linux Mint auf USB Stick installieren: Schritt für Schritt Anleitung für ein portables System

AUTOR • Jun 13, 2026
Systemadministration

Was ist ein RAM-Dump und wie wird er verwendet?

AUTOR • May 21, 2026
Sicherheit & Hardening

Wie Du die Phototan App richtig nutzt und was passiert, wenn sie abläuft

AUTOR • Jun 08, 2025
Netzwerk & Routing

Panasonic TV mit Smartphone verbinden: Schritt-für-Schritt-Anleitung zur kabellosen Verbindung

AUTOR • Jun 11, 2026
Netzwerk & Routing

DJI Mini 3 Pro mit WLAN verbinden: Schritt-für-Schritt-Anleitung für stabile Verbindung

AUTOR • Jun 08, 2026
Netzwerk & Routing

Landroid verbindet sich nicht mit WLAN: Ursachen und Lösungen, die wirklich helfen

AUTOR • Jun 17, 2026
Netzwerk & Routing

LAN zu WLAN umwandeln: Ihr Leitfaden zur nahtlosen Netzwerkverbindung

AUTOR • Jan 03, 2026
Systemadministration

Windows Zeit Synchronisieren mit CMD: Ein Schritt-für-Schritt-Leitfaden

AUTOR • Jul 16, 2025
Systemadministration

In die Tiefen der Rechenleistung: So funktioniert ein Prozessor

AUTOR • Jun 25, 2025