Linux / Befehl nc: TCP- und UDP-Verbindungen testen

nc (Netcat) ist ein vielseitiges Werkzeug, das TCP/UDP-Verbindungen öffnet oder abhört, um Daten zu senden und zu empfangen. Es wird auch verwendet, um schnell zu überprüfen, ob ein Port auf einem autorisierten Host zugänglich ist.

Linux-Distributionen können unterschiedliche Implementierungen haben, wie z. B. OpenBSD netcat oder Nmap Ncat, die unter dem Namen nc installiert sind. Die Option -z prüft, ob eine Verbindung möglich ist, ohne Daten zu senden, und -v zeigt Diagnosemeldungen an. Einige Optionen und die Syntax des Abhörmodus unterscheiden sich zwischen den Implementierungen.

Grundlegende Syntax

nc [options] host port

Die installierte Implementierung und die Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung für Ihr aktuelles System mit man nc.

Beispiele

Lokalen SSH-Port überprüfen

Prüfen Sie, ob der TCP-Port 22 Ihres Computers Verbindungen akzeptiert.

nc -vz 127.0.0.1 22

Verbindungs-Timeout

Begrenzen, um nicht zu lange auf einen nicht reagierenden lokalen Port zu warten.

nc -w 3 -vz 127.0.0.1 80

Direktverbindung

Beobachten Sie die Daten, die von Diensten auf Ihrem eigenen Computer gesendet werden. Beenden Sie mit Strg+C.

nc -v 127.0.0.1 22

Interpretation von Portverbindungstest-Ergebnissen

nc -vz ermöglicht es Ihnen einfach, zu überprüfen, ob eine TCP-Verbindung hergestellt werden kann, ohne Daten zu senden oder zu empfangen. Unterstützte Optionen und Ausgabemeldungen variieren je nach Netcat-Implementierung.

nc -vz example.com 443

Beispielausgabe, wenn die Verbindung erfolgreich ist:

Connection to example.com 443 port [tcp/https] succeeded!

Eine erfolgreiche Verbindung bedeutet nur, dass der Port eine TCP-Verbindung akzeptiert hat; es bedeutet nicht, dass das TLS-Zertifikat oder die HTTP-Antwort gültig ist. Bei einem Timeout überprüfen Sie die Firewall, die Route oder den Wartestatus des Servers; wenn die Verbindung sofort abgelehnt wird, prüfen Sie, ob das Ziel keine Verbindungen akzeptiert. Senden Sie Testpakete nur an autorisierte Ziele.

Hauptoptionen und Format

Optionen/Format Beschreibung
-z Überprüfen Sie die Konnektivität, ohne Daten zu senden.
-v Zeigen Sie die Diagnostikausgabe detailliert an.
-w seconds Legen Sie Verbindungs- und E/A-Timeouts fest. Die Bedeutung kann je nach Implementierung variieren.
-u Im UDP-Modus verwenden.
-l Empfangsmodus, der auf eine Verbindung wartet. Überprüfen Sie die Syntax gemäß der Implementierung.

Vorsichtsmaßnahmen bei der Verwendung

Dass ein Port offen ist, garantiert nicht, dass die Anwendung korrekt funktioniert oder dass die Authentifizierung sicher ist. UDP -z-Ergebnisse sind besonders schwer zu interpretieren aufgrund des fehlenden Rücksignals. Überprüfen Sie externe Hosts nur mit der Erlaubnis des Eigentümers. Verwenden Sie nc -h, um die in der aktuellen Implementierung verfügbaren Optionen zu prüfen.

Häufig gestellte Fragen

Sind nc und ncat dasselbe Werkzeug?

Beide sind Netcat-Derivate, aber ihre Implementierungen können sich unterscheiden. Überprüfen Sie das installierte Paket und die Ausgabe von nc -h, um die Optionen zu unterscheiden.

Offizielle Dokumentation

Sie können das genaue Verhalten der Optionen und die Unterschiede zwischen den Implementierungen in der offiziellen Dokumentation für nc nachsehen.