nc

Aus Foxwiki

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

Parameter

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

Links

Projekt

Weblinks

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