Harting Development

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

Lukas Fuchs vor 3 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

Netzwerk & Routing

LAN zu WLAN umwandeln: So machst du aus Kabel Internet per Funk

AUTOR • Aug 23, 2026
Netzwerk & Routing

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

AUTOR • Aug 23, 2026
Systemadministration

Festplatte unter Linux formatieren: umfassende Anleitung für Einsteiger und Fortgeschrittene

AUTOR • Aug 23, 2026
Systemadministration

USB Stick Seriennummer ermitteln: So geht’s einfach und schnell

AUTOR • Aug 23, 2026
Netzwerk & Routing

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

AUTOR • Aug 23, 2026
Linux-Server

Linux Wine ausführen von Windows-Anwendungen auf Linux-Systemen: So klappt der Start ohne Stress

AUTOR • Aug 22, 2026
Systemadministration

IPA installieren: So installierst du iPhone-Apps ohne App Store schnell und sicher

AUTOR • Aug 22, 2026
Linux-Server

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

AUTOR • Aug 21, 2026
Cloud & Virtualisierung

Managed Service Accounts: So nutzt du sie richtig für mehr Sicherheit und weniger Aufwand

AUTOR • Aug 21, 2026
Systemadministration

mbps mbit umrechnen: So rechnest du Geschwindigkeit korrekt und ohne Verwirrung

AUTOR • Aug 21, 2026
Cloud & Virtualisierung

Hoymiles DTU Firmware Update: So aktualisierst du die DTU richtig und vermeidest Fehler

AUTOR • Aug 20, 2026
Netzwerk & Routing

Hoymiles HM 800 Schritt für Schritt Anleitung zur WLAN-Verbindung: So richte ich die Verbindung sauber ein

AUTOR • Aug 20, 2026
Netzwerk & Routing

curl 52 empty reply from server: Ursachen, Fixes und schnelle Debugging-Checks

AUTOR • Aug 20, 2026
Systemadministration

GPO Wert Liste: Alle Werte, Seltenheiten und Preise einfach erklärt

AUTOR • Aug 19, 2026
Netzwerk & Routing

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

AUTOR • Aug 19, 2026
Linux-Server

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

AUTOR • Aug 19, 2026
Linux-Server

MX Linux auf Deutsch: Die komplette Anleitung für Installation, Sprache und erste Schritte

AUTOR • Aug 18, 2026
Sicherheit & Hardening

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

AUTOR • Aug 17, 2026
Netzwerk & Routing

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

AUTOR • Aug 16, 2026
Netzwerk & Routing

Roborock WLAN Verbindung ändern: Schritt-für-Schritt Anleitung für neues Netzwerk ohne Stress

AUTOR • Aug 16, 2026

Beliebte Beiträge

Systemadministration

Das EVA-Prinzip in der Informatik: Grundlagen und Anwendungen

AUTOR • Jun 27, 2025
Systemadministration

Optimierung der Motherboard-Temperatur: Tipps und Tricks für ein kühles System

AUTOR • Jun 27, 2025
Systemadministration

Was bedeutet RAM? Eine umfassende Erklärung und seine Bedeutung für deinen Computer

AUTOR • Jun 25, 2025
Systemadministration

So änderst du die Ansicht in Thunderbird: Ein umfassender Leitfaden

AUTOR • May 21, 2026
Sicherheit & Hardening

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

AUTOR • Jun 08, 2025
Linux-Server

Home Assistant mit Hoymiles verbinden: So holst du mehr aus deiner PV-Anlage raus

AUTOR • Aug 01, 2026
Sicherheit & Hardening

WLAN-Anmeldeseite erscheint nicht: Ursachen und Lösungen

AUTOR • May 13, 2026
Linux-Server

SMB Freigabe in Linux mounten: Schritt-für-Schritt Anleitung für stabile Samba- und CIFS-Mounts

AUTOR • Jul 25, 2026
Linux-Server

Linux Mint installieren: Eine Schritt-für-Schritt-Anleitung für Anfänger

AUTOR • May 13, 2026
Systemadministration

So erstellen Sie einfach eine Textdatei unter Windows 11

AUTOR • Jul 16, 2025
Automatisierung & Scripting

Die umfassende Shelly 1 Plus Anleitung: Dein Weg zur smarteren Steuerung

AUTOR • Jul 01, 2025
Systemadministration

Wie Sie die RAM-Geschwindigkeit herausfinden: Eine Schritt-für-Schritt-Anleitung

AUTOR • Jun 26, 2025
Systemadministration

In die Tiefen der Rechenleistung: So funktioniert ein Prozessor

AUTOR • Jun 25, 2025
Cloud & Virtualisierung

iCloud Time Machine: Die perfekte Lösung für dein Backup-Management

AUTOR • Jun 08, 2026
Automatisierung & Scripting

Nahtlose Integration von Siemens HomeConnect in Home Assistant: Die ultimativen Schritte zur Homematic Smart Home Steuerung

AUTOR • Jun 19, 2025
Netzwerk & Routing

iPhone WLAN Probleme nach Update: So lösen Sie die häufigsten Herausforderungen

AUTOR • Jun 18, 2025
Linux-Server

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

AUTOR • Jun 13, 2026
Sicherheit & Hardening

Tipps und Tricks zur BIOS-Konfiguration des HP EliteBook

AUTOR • Jun 15, 2025
Netzwerk & Routing

WLAN mit Zeitschaltuhr steuern: Effizient und flexibel

AUTOR • Jun 18, 2025
Sicherheit & Hardening

FRITZ!Box 7590 Firmware Downgrade: So setzt du ältere FRITZ!OS-Versionen sauber zurück

AUTOR • Jun 28, 2026