Nc: Unterschied zwischen den Versionen
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“ |
Keine Bearbeitungszusammenfassung |
||
(45 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{DISPLAYTITLE:nc}} | {{DISPLAYTITLE:nc}} | ||
'''nc''' (netcat) - | '''nc''' (netcat) - Netzwerkverbindungen über TCP, UDP und UNIX-Domain-Sockets | ||
== Beschreibung == | == Beschreibung == | ||
Zeile 9: | Zeile 9: | ||
* Ports scannen | * Ports scannen | ||
''netcat'' schreibt Fehlermeldungen auf STDERR (anders als telnet) | ''netcat'' schreibt Fehlermeldungen auf STDERR (anders als [[telnet]]) | ||
;Häufige Verwendung | ; Häufige Verwendung | ||
* | * Einfache TCP-Proxys | ||
* Shellskript-basierte HTTP-Clients und -Server | * Shellskript-basierte HTTP-Clients und -Server | ||
* Netzwerk-Daemon testen | * Netzwerk-Daemon testen | ||
* SOCKS- oder HTTP-Proxy | * SOCKS- oder HTTP-Proxy | ||
* Befehl für [[ssh]](1) | * Befehl für [[ssh]](1) | ||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1" line> | |||
nc [OPTIONEN] [ZIEL] [PORT] | |||
</syntaxhighlight> | |||
=== Optionen === | === Optionen === | ||
{| class="wikitable options" | {| class="wikitable sortable options gnu" | ||
|- | |- | ||
! | ! Unix !! GNU !! Parameter || Beschreibung | ||
|- | |- | ||
| -4 || || || Nur IPv4 | |||
|| | |||
|- | |- | ||
| -6 || || || Nur IPv6 | |||
|| | |||
|- | |- | ||
| -b || || || Übertragung zulassen | |||
|| Übertragung zulassen | |||
|- | |- | ||
| -C || || || Senden Sie CRLF als Zeilenende | |||
|| Senden Sie CRLF als Zeilenende | * Jedes Zeilenvorschubzeichen (LF) aus den Eingabedaten wird in CR+LF übersetzt, bevor es in den Socket geschrieben wird | ||
* 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 | ||
* Zeilenvorschubzeichen, denen bereits ein Wagenrücklauf (CR) vorangestellt ist, werden nicht übersetzt | * Empfangene Daten sind davon nicht betroffen | ||
* Empfangene Daten sind davon nicht betroffen | |||
|- | |- | ||
| -D || || || Aktivieren Sie das Debugging auf dem Socket | |||
|| Aktivieren Sie das Debugging auf dem Socket | |||
|- | |- | ||
| -d || || || Versuchen Sie nicht, von stdin zu lesen | |||
|| Versuchen Sie nicht, von stdin zu lesen | |||
|- | |- | ||
| -F || || || Übergeben Sie den ersten verbundenen Socket mit sendmsg(2) an stdout und beenden Sie es | |||
|| Ü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) | ||
* Kann nicht mit -U verwendet werden | * Kann nicht mit -U verwendet werden | ||
|- | |- | ||
| -h || || || Drucken Sie den nc-Hilfetext aus und verlassen Sie ihn | |||
|| Drucken Sie den nc-Hilfetext aus und verlassen Sie ihn | |||
|- | |- | ||
| -I || || length || Geben Sie die Größe des TCP-Empfangspuffers an | |||
|| Geben Sie die Größe des TCP-Empfangspuffers an | |||
|- | |- | ||
|| -i interval | || -i || || interval || Schlafen Sie zwischen den gesendeten und empfangenen Textzeilen für Sekunden | ||
|| 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 | |||
|| 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 | |||
|- | |- | ||
| -l || || || Warten Sie auf eine eingehende Verbindung, anstatt eine Verbindung zu einem Remote-Host zu initiieren | |||
|| 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 | ||
* 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 | ||
* Kann nicht zusammen mit -x oder -z verwendet werden | * Darüber hinaus werden alle mit der Option -w angegebenen Timeouts ignoriert | ||
* 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 | |||
|| 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 | |||
|| Bitten Sie den Kernel, eingehende Pakete zu verwerfen, deren TTL / Hop-Limit unter minttl liegt | |||
|- | |- | ||
| -N || || || shutdown(2) die Netzwerkbuchse nach EOF am Eingang | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| 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 | |||
|| Ä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 | * cs7; oder eine Zahl in Hex oder Dezimal | ||
* 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 | |||
|| 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 | ||
* Dadurch ist es möglich, nc zum Skripten von Telnet-Sitzungen zu verwenden | |||
|- | |- | ||
| -U || || || Verwenden Sie UNIX-Domain-Sockets | |||
|| 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 | * Einzelheiten finden Sie unter unix(7) | ||
* Einzelheiten finden Sie unter unix(7) | |||
|- | |- | ||
| -u || || || Verwenden Sie UDP statt TCP | |||
|| Verwenden Sie UDP statt TCP | * Kann nicht zusammen mit -x verwendet werden | ||
* Kann nicht zusammen mit -x verwendet werden | * Verwenden Sie für UNIX-Domain-Sockets einen Datagramm-Socket anstelle eines Stream-Sockets | ||
* 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 | ||
* 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 | |||
|| Legen Sie die zu verwendende Routing-Tabelle fest | |||
|- | |- | ||
| -v || || || Erzeuge eine ausführlichere Ausgabe | |||
|| Erzeuge eine ausführlichere Ausgabe | |||
|- | |- | ||
| -W || || recvlimit || Beenden Sie nach dem Empfang von recvlimit-Paketen aus dem Netzwerk | |||
|| 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 | |||
|| 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 | * 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 | * nc wird für immer auf eine Verbindung warten, mit oder ohne das Flag -w | ||
* Der Standardwert ist kein Timeout | * Der Standardwert ist kein Timeout | ||
|- | |- | ||
| -X || || proxy_protocol || Verwenden Sie proxy_protocol, wenn Sie mit dem Proxy-Server sprechen | |||
|| 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) | ||
* 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 | ||
* 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 | |||
|| 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 | |||
|| DCCP-Modus | |||
|- | |- | ||
|| -z | || -z || || || Scannen Sie nur nach lauschenden Daemons, ohne Daten an sie zu senden. * Kann nicht zusammen mit -l verwendet werden | ||
|| Scannen Sie nur nach lauschenden Daemons, ohne Daten an sie zu senden. * Kann nicht zusammen mit -l verwendet werden | |||
|- | |- | ||
|} | |} | ||
Zeile 178: | Zeile 142: | ||
! Parameter || Bedeutung | ! Parameter || Bedeutung | ||
|- | |- | ||
| '''ZIEL''' || | | '''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''' || | | '''PORT''' || Portnummer oder Dienstname | ||
* Portbereiche | * Portbereiche: nn-mm | ||
* | * Zielport muss angegeben werden (nicht mit -U) | ||
|} | |} | ||
== Anhang == | == Anhang == | ||
Zeile 322: | Zeile 160: | ||
* [[ssh]] | * [[ssh]] | ||
=== Dokumentation === | |||
==== Man-Page ==== | |||
=== Links === | |||
==== Projekt ==== | |||
==== Weblinks ==== | |||
# https://wiki.ubuntuusers.de/netcat/ | |||
{{DEFAULTSORT:nc}} | |||
[[Kategorie:Linux/Befehl]] | [[Kategorie:Linux/Befehl]] | ||
[[Kategorie:Netzwerk/Befehl]] | [[Kategorie:Netzwerk/Befehl]] | ||
[[Kategorie:netcat]] | |||
</noinclude> | </noinclude> |
Aktuelle Version vom 29. Dezember 2024, 12:32 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
| ||
-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
| ||
-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
| |
-k | Wenn eine Verbindung hergestellt ist, warten Sie auf eine andere
| ||
-l | Warten Sie auf eine eingehende Verbindung, anstatt eine Verbindung zu einem Remote-Host zu initiieren
| ||
-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
| ||
-n | Führen Sie keine Domänennamenauflösung durch
| ||
-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 | 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
| |
-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
| |
-T | keyword | Ändern Sie den Wert der IPv4-TOS/IPv6-Verkehrsklasse
| |
-t | Senden Sie RFC 854 DON'T- und WON'T-Antworten auf RFC 854 DO- und WILL-Anforderungen
| ||
-U | Verwenden Sie UNIX-Domain-Sockets
| ||
-u | Verwenden Sie UDP statt TCP
| ||
-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
| |
-X | proxy_protocol | Verwenden Sie proxy_protocol, wenn Sie mit dem Proxy-Server sprechen
| |
-x | proxy_address[:port] | Verbinden Sie sich mit dem Ziel über einen Proxy an Proxy_Adresse und Port
| |
-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)
UNIX-Domänen-Sockets
|
PORT | Portnummer oder Dienstname
|