Zum Inhalt springen

Nc: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „ “ durch „ “
 
Zeile 39: Zeile 39:
* Empfangene Daten sind davon nicht betroffen
* Empfangene Daten sind davon nicht betroffen
|-
|-
| -D || || || Aktivieren Sie das Debugging auf dem Socket
| -D || || || Aktivieren Sie das Debugging auf dem Socket
|-
|-
| -d || || || Versuchen Sie nicht, von stdin zu lesen
| -d || || || Versuchen Sie nicht, von stdin zu lesen
|-
|-
| -F || || || Übergeben Sie den ersten verbundenen Socket mit sendmsg(2) an stdout und beenden Sie es
| -F || || || Übergeben Sie den ersten verbundenen Socket mit sendmsg(2) an stdout und beenden Sie es
* Dies ist in Verbindung mit -X sinnvoll, um nc den Verbindungsaufbau mit einem Proxy durchführen zu lassen, den Rest der Verbindung dann aber einem anderen Programm zu überlassen (z
* Dies ist in Verbindung mit -X sinnvoll, um nc den Verbindungsaufbau mit einem Proxy durchführen zu lassen, den Rest der Verbindung dann aber einem anderen Programm zu überlassen (z
* ssh(1) mit der ssh_config(5) ProxyUseFdpass-Option)
* ssh(1) mit der ssh_config(5) ProxyUseFdpass-Option)
Zeile 50: Zeile 50:
| -h || || || Drucken Sie den nc-Hilfetext aus und verlassen Sie ihn
| -h || || || Drucken Sie den nc-Hilfetext aus und verlassen Sie ihn
|-
|-
| -I || || length || Geben Sie die Größe des TCP-Empfangspuffers an
| -I || || length || Geben Sie die Größe des TCP-Empfangspuffers an
|-
|-
|| -i || || interval || Schlafen Sie zwischen den gesendeten und empfangenen Textzeilen für Sekunden
|| -i || || interval || Schlafen Sie zwischen den gesendeten und empfangenen Textzeilen für Sekunden
* Verursacht auch eine Verzögerungszeit zwischen Verbindungen zu mehreren Ports
* Verursacht auch eine Verzögerungszeit zwischen Verbindungen zu mehreren Ports
|-
|-
| -k || || || Wenn eine Verbindung hergestellt ist, warten Sie auf eine andere
| -k || || || Wenn eine Verbindung hergestellt ist, warten Sie auf eine andere
* Benötigt -l
* Benötigt -l
* Bei Verwendung zusammen mit der Option -u wird der Server-Socket nicht verbunden und kann UDP-Datagramme von mehreren Hosts empfangen
* Bei Verwendung zusammen mit der Option -u wird der Server-Socket nicht verbunden und kann UDP-Datagramme von mehreren Hosts empfangen
Zeile 66: Zeile 66:
| -M || || ttl || Stellen Sie das TTL-/Hop-Limit für ausgehende Pakete ein
| -M || || ttl || Stellen Sie das TTL-/Hop-Limit für ausgehende Pakete ein
|-
|-
| -m || || minttl || Bitten Sie den Kernel, eingehende Pakete zu verwerfen, deren TTL / Hop-Limit unter minttl liegt
| -m || || minttl || Bitten Sie den Kernel, eingehende Pakete zu verwerfen, deren TTL / Hop-Limit unter minttl liegt
|-
|-
| -N || || || shutdown(2) die Netzwerkbuchse nach EOF am Eingang
| -N || || || shutdown(2) die Netzwerkbuchse nach EOF am Eingang
* Einige Server benötigen dies, um ihre Arbeit zu beenden
* Einige Server benötigen dies, um ihre Arbeit zu beenden
|-
|-
| -n || || || Führen Sie keine Domänennamenauflösung durch
| -n || || || Führen Sie keine Domänennamenauflösung durch
* Wenn ein Name ohne DNS nicht aufgelöst werden kann, wird ein Fehler gemeldet
* Wenn ein Name ohne DNS nicht aufgelöst werden kann, wird ein Fehler gemeldet
|-
|-
| -O || || length || Legen Sie die Größe des TCP-Sendepuffers fest
| -O || || length || Legen Sie die Größe des TCP-Sendepuffers fest
|-
|-
| -P || || proxy_username || Gibt einen Benutzernamen an, der einem Proxyserver präsentiert werden soll, der eine Authentifizierung erfordert
| -P || || proxy_username || Gibt einen Benutzernamen an, der einem Proxyserver präsentiert werden soll, der eine Authentifizierung erfordert
* Wenn kein Benutzername angegeben ist, wird keine Authentifizierung versucht
* Wenn kein Benutzername angegeben ist, wird keine Authentifizierung versucht
* Die Proxy-Authentifizierung wird derzeit nur für HTTP CONNECT-Proxys unterstützt
* Die Proxy-Authentifizierung wird derzeit nur für HTTP CONNECT-Proxys unterstützt
|-
|-
| -p || || source_port || Geben Sie den Quellport an, den nc verwenden soll, abhängig von Berechtigungseinschränkungen und Verfügbarkeit
| -p || || source_port || Geben Sie den Quellport an, den nc verwenden soll, abhängig von Berechtigungseinschränkungen und Verfügbarkeit
|-
|-
| -q || || seconds || Warten Sie nach EOF auf stdin die angegebene Anzahl von Sekunden und beenden Sie dann
| -q || || seconds || Warten Sie nach EOF auf stdin die angegebene Anzahl von Sekunden und beenden Sie dann
* Wenn Sekunden negativ sind, ewig warten (Standard)
* Wenn Sekunden negativ sind, ewig warten (Standard)
* Die Angabe einer nicht negativen Sekunde impliziert -N
* Die Angabe einer nicht negativen Sekunde impliziert -N
|-
|-
| -r || || || Wählen Sie Quell- und/oder Zielports zufällig statt sequentiell innerhalb eines Bereichs oder in der Reihenfolge, in der das System sie zuweist
| -r || || || Wählen Sie Quell- und/oder Zielports zufällig statt sequentiell innerhalb eines Bereichs oder in der Reihenfolge, in der das System sie zuweist
|-
|-
| -S || || || Aktivieren Sie die RFC 2385 TCP MD5-Signaturoption
| -S || || || Aktivieren Sie die RFC 2385 TCP MD5-Signaturoption
|-
|-
| -s || || sourceaddr || Legen Sie die Quelladresse fest, von der Pakete gesendet werden sollen, was auf Computern mit mehreren Schnittstellen nützlich ist
| -s || || sourceaddr || Legen Sie die Quelladresse fest, von der Pakete gesendet werden sollen, was auf Computern mit mehreren Schnittstellen nützlich ist
* Gibt für UNIX-Domänen-Datagramm-Sockets die lokale temporäre Socket-Datei an, die erstellt und verwendet werden soll, damit Datagramme empfangen werden können
* Gibt für UNIX-Domänen-Datagramm-Sockets die lokale temporäre Socket-Datei an, die erstellt und verwendet werden soll, damit Datagramme empfangen werden können
* Kann nicht zusammen mit -x verwendet werden
* Kann nicht zusammen mit -x verwendet werden
|-
|-
| -T || || keyword || Ändern Sie den Wert der IPv4-TOS/IPv6-Verkehrsklasse
| -T || || keyword || Ändern Sie den Wert der IPv4-TOS/IPv6-Verkehrsklasse
* Das Schlüsselwort kann eines von "critical", "inetcontrol", "lowcost", "lowdelay", "netcontrol", "throughput", "reliability" oder einer der DiffServ-Codepunkte sein: ef, af11  
* Das Schlüsselwort kann eines von "critical", "inetcontrol", "lowcost", "lowdelay", "netcontrol", "throughput", "reliability" oder einer der DiffServ-Codepunkte sein: ef, af11  
* af43, cs0  
* af43, cs0  
Zeile 102: Zeile 102:
* Dadurch ist es möglich, nc zum Skripten von Telnet-Sitzungen zu verwenden
* Dadurch ist es möglich, nc zum Skripten von Telnet-Sitzungen zu verwenden
|-
|-
| -U || || || Verwenden Sie UNIX-Domain-Sockets
| -U || || || Verwenden Sie UNIX-Domain-Sockets
* Kann nicht zusammen mit -F oder -x verwendet werden
* Kann nicht zusammen mit -F oder -x verwendet werden
* Wenn der Name unter Linux mit einem at-Symbol (`@') beginnt, wird er als abstrakter Namespace-Socket gelesen: Das führende `@' wird vor dem Binden oder Verbinden durch ein NUL-Byte ersetzt
* Wenn der Name unter Linux mit einem at-Symbol (`@') beginnt, wird er als abstrakter Namespace-Socket gelesen: Das führende `@' wird vor dem Binden oder Verbinden durch ein NUL-Byte ersetzt
Zeile 112: Zeile 112:
* Wenn ein UNIX-Domain-Socket verwendet wird, wird ein temporärer Empfangs-Socket in /tmp erstellt, es sei denn, das Flag -s ist angegeben
* Wenn ein UNIX-Domain-Socket verwendet wird, wird ein temporärer Empfangs-Socket in /tmp erstellt, es sei denn, das Flag -s ist angegeben
|-
|-
| -V || || rtable ||Legen Sie die zu verwendende Routing-Tabelle fest
| -V || || rtable ||Legen Sie die zu verwendende Routing-Tabelle fest
|-
|-
| -v || || || Erzeuge eine ausführlichere Ausgabe
| -v || || || Erzeuge eine ausführlichere Ausgabe
|-
|-
| -W || || recvlimit || Beenden Sie nach dem Empfang von recvlimit-Paketen aus dem Netzwerk
| -W || || recvlimit || Beenden Sie nach dem Empfang von recvlimit-Paketen aus dem Netzwerk
|-
|-
| -w || || timeout || Verbindungen, die nicht hergestellt werden können oder nach Timeout-Sekunden im Leerlauf sind
| -w || || timeout || Verbindungen, die nicht hergestellt werden können oder nach Timeout-Sekunden im Leerlauf sind
Zeile 127: Zeile 127:
* Wenn das Protokoll nicht angegeben ist, wird SOCKS Version 5 verwendet
* Wenn das Protokoll nicht angegeben ist, wird SOCKS Version 5 verwendet
|-
|-
| -x || || proxy_address[:port] || Verbinden Sie sich mit dem Ziel über einen Proxy an Proxy_Adresse und Port
| -x || || proxy_address[:port] || Verbinden Sie sich mit dem Ziel über einen Proxy an Proxy_Adresse und Port
* Wenn kein Port angegeben ist, wird der bekannte Port für das Proxy-Protokoll verwendet (1080 für SOCKS, 3128 für HTTPS)
* Wenn kein Port angegeben ist, wird der bekannte Port für das Proxy-Protokoll verwendet (1080 für SOCKS, 3128 für HTTPS)
* Eine IPv6-Adresse kann eindeutig angegeben werden, indem proxy_address in eckige Klammern gesetzt wird
* Eine IPv6-Adresse kann eindeutig angegeben werden, indem proxy_address in eckige Klammern gesetzt wird
* Ein Proxy kann mit keiner der Optionen -lsuU verwendet werden
* Ein Proxy kann mit keiner der Optionen -lsuU verwendet werden
|-
|-
| -Z || || || DCCP-Modus
| -Z || || || DCCP-Modus
|-
|-
|| -z || || || Scannen Sie nur nach lauschenden Daemons, ohne Daten an sie zu senden. * Kann nicht zusammen mit -l verwendet werden
|| -z || || || Scannen Sie nur nach lauschenden Daemons, ohne Daten an sie zu senden. * Kann nicht zusammen mit -l verwendet werden
|-
|-
|}
|}

Aktuelle Version vom 14. Juni 2026, 00:48 Uhr

nc (netcat) - Netzwerkverbindungen über TCP, UDP und UNIX-Domain-Sockets

Beschreibung

Netcat wird verwendet, um mit TCP-, UDP- oder UNIX-Domain-Sockets zu arbeiten

  • TCP-Verbindungen öffnen
  • UDP-Pakete senden
  • TCP- und UDP-Ports abhören
  • Ports scannen

netcat schreibt Fehlermeldungen auf STDERR (anders als telnet)

Häufige Verwendung
  • Einfache TCP-Proxys
  • Shellskript-basierte HTTP-Clients und -Server
  • Netzwerk-Daemon testen
  • SOCKS- oder HTTP-Proxy
  • Befehl für ssh(1)

Aufruf

nc [OPTIONEN] [ZIEL] [PORT]

Optionen

Unix GNU Parameter Beschreibung
-4 Nur IPv4
-6 Nur IPv6
-b Übertragung zulassen
-C Senden Sie CRLF als Zeilenende
  • Jedes Zeilenvorschubzeichen (LF) aus den Eingabedaten wird in CR+LF übersetzt, bevor es in den Socket geschrieben wird
  • Zeilenvorschubzeichen, denen bereits ein Wagenrücklauf (CR) vorangestellt ist, werden nicht übersetzt
  • Empfangene Daten sind davon nicht betroffen
-D Aktivieren Sie das Debugging auf dem Socket
-d Versuchen Sie nicht, von stdin zu lesen
-F Übergeben Sie den ersten verbundenen Socket mit sendmsg(2) an stdout und beenden Sie es
  • Dies ist in Verbindung mit -X sinnvoll, um nc den Verbindungsaufbau mit einem Proxy durchführen zu lassen, den Rest der Verbindung dann aber einem anderen Programm zu überlassen (z
  • ssh(1) mit der ssh_config(5) ProxyUseFdpass-Option)
  • Kann nicht mit -U verwendet werden
-h Drucken Sie den nc-Hilfetext aus und verlassen Sie ihn
-I length Geben Sie die Größe des TCP-Empfangspuffers an
-i interval Schlafen Sie zwischen den gesendeten und empfangenen Textzeilen für Sekunden
  • Verursacht auch eine Verzögerungszeit zwischen Verbindungen zu mehreren Ports
-k Wenn eine Verbindung hergestellt ist, warten Sie auf eine andere
  • Benötigt -l
  • Bei Verwendung zusammen mit der Option -u wird der Server-Socket nicht verbunden und kann UDP-Datagramme von mehreren Hosts empfangen
-l Warten Sie auf eine eingehende Verbindung, anstatt eine Verbindung zu einem Remote-Host zu initiieren
  • Das Ziel und der zu überwachende Port können entweder als nicht optionale Argumente oder mit den Optionen -s bzw. -p angegeben werden
  • Kann nicht zusammen mit -x oder -z verwendet werden
  • Darüber hinaus werden alle mit der Option -w angegebenen Timeouts ignoriert
-M ttl Stellen Sie das TTL-/Hop-Limit für ausgehende Pakete ein
-m minttl Bitten Sie den Kernel, eingehende Pakete zu verwerfen, deren TTL / Hop-Limit unter minttl liegt
-N shutdown(2) die Netzwerkbuchse nach EOF am Eingang
  • Einige Server benötigen dies, um ihre Arbeit zu beenden
-n Führen Sie keine Domänennamenauflösung durch
  • Wenn ein Name ohne DNS nicht aufgelöst werden kann, wird ein Fehler gemeldet
-O length Legen Sie die Größe des TCP-Sendepuffers fest
-P proxy_username Gibt einen Benutzernamen an, der einem Proxyserver präsentiert werden soll, der eine Authentifizierung erfordert
  • Wenn kein Benutzername angegeben ist, wird keine Authentifizierung versucht
  • Die Proxy-Authentifizierung wird derzeit nur für HTTP CONNECT-Proxys unterstützt
-p source_port Geben Sie den Quellport an, den nc verwenden soll, abhängig von Berechtigungseinschränkungen und Verfügbarkeit
-q seconds Warten Sie nach EOF auf stdin die angegebene Anzahl von Sekunden und beenden Sie dann
  • Wenn Sekunden negativ sind, ewig warten (Standard)
  • Die Angabe einer nicht negativen Sekunde impliziert -N
-r Wählen Sie Quell- und/oder Zielports zufällig statt sequentiell innerhalb eines Bereichs oder in der Reihenfolge, in der das System sie zuweist
-S Aktivieren Sie die RFC 2385 TCP MD5-Signaturoption
-s sourceaddr Legen Sie die Quelladresse fest, von der Pakete gesendet werden sollen, was auf Computern mit mehreren Schnittstellen nützlich ist
  • Gibt für UNIX-Domänen-Datagramm-Sockets die lokale temporäre Socket-Datei an, die erstellt und verwendet werden soll, damit Datagramme empfangen werden können
  • Kann nicht zusammen mit -x verwendet werden
-T keyword Ändern Sie den Wert der IPv4-TOS/IPv6-Verkehrsklasse
  • Das Schlüsselwort kann eines von "critical", "inetcontrol", "lowcost", "lowdelay", "netcontrol", "throughput", "reliability" oder einer der DiffServ-Codepunkte sein: ef, af11
  • af43, cs0
  • cs7; oder eine Zahl in Hex oder Dezimal
-t Senden Sie RFC 854 DON'T- und WON'T-Antworten auf RFC 854 DO- und WILL-Anforderungen
  • Dadurch ist es möglich, nc zum Skripten von Telnet-Sitzungen zu verwenden
-U Verwenden Sie UNIX-Domain-Sockets
  • Kann nicht zusammen mit -F oder -x verwendet werden
  • Wenn der Name unter Linux mit einem at-Symbol (`@') beginnt, wird er als abstrakter Namespace-Socket gelesen: Das führende `@' wird vor dem Binden oder Verbinden durch ein NUL-Byte ersetzt
  • Einzelheiten finden Sie unter unix(7)
-u Verwenden Sie UDP statt TCP
  • Kann nicht zusammen mit -x verwendet werden
  • Verwenden Sie für UNIX-Domain-Sockets einen Datagramm-Socket anstelle eines Stream-Sockets
  • Wenn ein UNIX-Domain-Socket verwendet wird, wird ein temporärer Empfangs-Socket in /tmp erstellt, es sei denn, das Flag -s ist angegeben
-V rtable Legen Sie die zu verwendende Routing-Tabelle fest
-v Erzeuge eine ausführlichere Ausgabe
-W recvlimit Beenden Sie nach dem Empfang von recvlimit-Paketen aus dem Netzwerk
-w timeout Verbindungen, die nicht hergestellt werden können oder nach Timeout-Sekunden im Leerlauf sind
  • Das Flag -w hat keine Auswirkung auf die Option -l, dh
  • nc wird für immer auf eine Verbindung warten, mit oder ohne das Flag -w
  • Der Standardwert ist kein Timeout
-X proxy_protocol Verwenden Sie proxy_protocol, wenn Sie mit dem Proxy-Server sprechen
  • Unterstützte Protokolle sind 4 (SOCKS v.4), 5 (SOCKS v.5) und Connect (HTTPS-Proxy)
  • Wenn das Protokoll nicht angegeben ist, wird SOCKS Version 5 verwendet
-x proxy_address[:port] Verbinden Sie sich mit dem Ziel über einen Proxy an Proxy_Adresse und Port
  • Wenn kein Port angegeben ist, wird der bekannte Port für das Proxy-Protokoll verwendet (1080 für SOCKS, 3128 für HTTPS)
  • Eine IPv6-Adresse kann eindeutig angegeben werden, indem proxy_address in eckige Klammern gesetzt wird
  • Ein Proxy kann mit keiner der Optionen -lsuU verwendet werden
-Z DCCP-Modus
-z Scannen Sie nur nach lauschenden Daemons, ohne Daten an sie zu senden. * Kann nicht zusammen mit -l verwendet werden

Argumente

Parameter Bedeutung
ZIEL IP-Adresse oder Hostname (nicht mit -n)
  • Muss angegeben werden (nicht bei -l)

UNIX-Domänen-Sockets

  • Ziel ist erforderlich
  • Ziel ist der Socket-Pfad
PORT Portnummer oder Dienstname
  • Portbereiche: nn-mm
  • Zielport muss angegeben werden (nicht mit -U)

Anhang

Siehe auch


Dokumentation

Man-Page

Projekt

  1. https://wiki.ubuntuusers.de/netcat/