|
|
(126 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''nc''' ('''n'''et'''c'''at) — arbitrary TCP and UDP connections and listens | | {{DISPLAYTITLE:nc}} |
| | '''nc''' (netcat) - Netzwerkverbindungen über TCP, UDP und UNIX-Domain-Sockets |
|
| |
|
| = Beschreibung = | | == Beschreibung == |
| Das Dienstprogramm nc (oder netcat) wird für so gut wie alles unter der Sonne verwendet, das TCP-, UDP- oder UNIX-Domain-Sockets betrifft.
| | Netcat wird verwendet, um mit TCP-, UDP- oder UNIX-Domain-Sockets zu arbeiten |
| * Es kann TCP-Verbindungen öffnen, UDP-Pakete senden, beliebige TCP- und UDP-Ports abhören, Ports scannen und sowohl mit IPv4 als auch mit IPv6 umgehen. | | * TCP-Verbindungen öffnen |
| * Im Gegensatz zu telnet(1) schreibt nc gut und trennt Fehlermeldungen auf Standardfehler, anstatt sie an die Standardausgabe zu senden, wie es telnet(1) mit einigen tut.
| | * UDP-Pakete senden |
| | * TCP- und UDP-Ports abhören |
| | * Ports scannen |
|
| |
|
| ;Häufige Verwendungen | | ''netcat'' schreibt Fehlermeldungen auf STDERR (anders als [[telnet]]) |
| * einfache TCP-Proxys | | |
| | ; Häufige Verwendung |
| | * Einfache TCP-Proxys |
| * Shellskript-basierte HTTP-Clients und -Server | | * Shellskript-basierte HTTP-Clients und -Server |
| * Netzwerk-Daemon testen | | * Netzwerk-Daemon testen |
| * ein SOCKS- oder HTTP-ProxyBefehl für ssh(1) | | * SOCKS- oder HTTP-Proxy |
| | * Befehl für [[ssh]](1) |
|
| |
|
| = Installation = | | == Aufruf == |
| = Syntax = | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| $ '''nc [OPTIONEN] [ZIEL] [PORT]'''
| | nc [OPTIONEN] [ZIEL] [PORT] |
| | </syntaxhighlight> |
|
| |
|
| == Optionen == | | === Optionen === |
| {| class="wikitable sortable" | | {| class="wikitable sortable options gnu" |
| |-
| |
| ! Option !! Bescheibung
| |
| |-
| |
| || -4
| |
| || Verwenden Sie nur IPv4-Adressen.
| |
| |-
| |
| || -6
| |
| || Verwenden Sie nur IPv6-Adressen.
| |
| |-
| |
| || -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.
| |
| |- | | |- |
| |}
| | ! Unix !! GNU !! Parameter || Beschreibung |
| | | |- |
| | | | -4 || || || Nur IPv4 |
| | |
| {| class="wikitable sortable"
| |
| ! Option !! Bescheibung | |
| |- | |
| | -4 || Use IPv4 addresses only. | |
| |- | | |- |
| | -6 || Use IPv6 addresses only. | | | -6 || || || Nur IPv6 |
| |- | | |- |
| | -b || Allow broadcast. | | | -b || || || Übertragung zulassen |
| |- | | |- |
| | -C || Send CRLF as line-ending. | | | -C || || || Senden Sie CRLF als Zeilenende |
| * Each line feed (LF) character from the input data is translated into CR+LF before being written to the socket. | | * Jedes Zeilenvorschubzeichen (LF) aus den Eingabedaten wird in CR+LF übersetzt, bevor es in den Socket geschrieben wird |
| * Line feed characters that are already preceded with a carriage return (CR) are not translated. | | * Zeilenvorschubzeichen, denen bereits ein Wagenrücklauf (CR) vorangestellt ist, werden nicht übersetzt |
| * Received data is not affected. | | * Empfangene Daten sind davon nicht betroffen |
| |- | | |- |
| | -D || Enable debugging on the socket. | | | -D || || || Aktivieren Sie das Debugging auf dem Socket |
| |- | | |- |
| | -d || Do not attempt to read from stdin. | | | -d || || || Versuchen Sie nicht, von stdin zu lesen |
| |- | | |- |
| | -F || Pass the first connected socket using sendmsg(2) to stdout and exit. | | | -F || || || Übergeben Sie den ersten verbundenen Socket mit sendmsg(2) an stdout und beenden Sie es |
| * This is useful in conjunction with -X to have nc perform connection setup with a proxy but then leave the rest of the connection to another program (e.g. | | * 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) using the ssh_config(5) ProxyUseFdpass option). | | * ssh(1) mit der ssh_config(5) ProxyUseFdpass-Option) |
| * Cannot be used with -U. | | * Kann nicht mit -U verwendet werden |
| |- | | |- |
| | -h || Print out the nc help text and exit. | | | -h || || || Drucken Sie den nc-Hilfetext aus und verlassen Sie ihn |
| |- | | |- |
| | -I length || Specify the size of the TCP receive buffer. | | | -I || || length || Geben Sie die Größe des TCP-Empfangspuffers an |
| |- | | |- |
| | -i interval || Sleep for interval seconds between lines of text sent and received. | | || -i || || interval || Schlafen Sie zwischen den gesendeten und empfangenen Textzeilen für Sekunden |
| * Also causes a delay time between connections to multiple ports. | | * Verursacht auch eine Verzögerungszeit zwischen Verbindungen zu mehreren Ports |
| |- | | |- |
| | -k || When a connection is completed, listen for another one. | | | -k || || || Wenn eine Verbindung hergestellt ist, warten Sie auf eine andere |
| * Requires -l. | | * Benötigt -l |
| * When used together with the -u option, the server socket is not connected and it can receive UDP datagrams from multiple hosts. | | * Bei Verwendung zusammen mit der Option -u wird der Server-Socket nicht verbunden und kann UDP-Datagramme von mehreren Hosts empfangen |
| |- | | |- |
| | -l || Listen for an incoming connection rather than initiating a connection to a remote host. | | | -l || || || Warten Sie auf eine eingehende Verbindung, anstatt eine Verbindung zu einem Remote-Host zu initiieren |
| * The destination and port to listen on can be specified either as non-optional arguments, or with options -s and -p respectively. | | * Das Ziel und der zu überwachende Port können entweder als nicht optionale Argumente oder mit den Optionen -s bzw. -p angegeben werden |
| * Cannot be used together with -x or -z. | | * Kann nicht zusammen mit -x oder -z verwendet werden |
| * Additionally, any timeouts specified with the -w option are ignored. | | * Darüber hinaus werden alle mit der Option -w angegebenen Timeouts ignoriert |
| |- | | |- |
| | -M ttl || Set the TTL / hop limit of outgoing packets. | | | -M || || ttl || Stellen Sie das TTL-/Hop-Limit für ausgehende Pakete ein |
| |- | | |- |
| | -m minttl || Ask the kernel to drop incoming packets whose TTL / hop limit is under minttl. | | | -m || || minttl || Bitten Sie den Kernel, eingehende Pakete zu verwerfen, deren TTL / Hop-Limit unter minttl liegt |
| |- | | |- |
| | -N || shutdown(2) the network socket after EOF on the input. | | | -N || || || shutdown(2) die Netzwerkbuchse nach EOF am Eingang |
| * Some servers require this to finish their work. | | * Einige Server benötigen dies, um ihre Arbeit zu beenden |
| |- | | |- |
| | -n || Do not perform domain name resolution. | | | -n || || || Führen Sie keine Domänennamenauflösung durch |
| * If a name cannot be resolved without DNS, an error will be reported. | | * Wenn ein Name ohne DNS nicht aufgelöst werden kann, wird ein Fehler gemeldet |
| |- | | |- |
| | -O length || Specify the size of the TCP send buffer. | | | -O || || length || Legen Sie die Größe des TCP-Sendepuffers fest |
| |- | | |- |
| | -P proxy_username || Specifies a username to present to a proxy server that requires authentication. | | | -P || || proxy_username || Gibt einen Benutzernamen an, der einem Proxyserver präsentiert werden soll, der eine Authentifizierung erfordert |
| * If no username is specified then authentication will not be attempted. | | * Wenn kein Benutzername angegeben ist, wird keine Authentifizierung versucht |
| * Proxy authentication is only supported for HTTP CONNECT proxies at present. | | * Die Proxy-Authentifizierung wird derzeit nur für HTTP CONNECT-Proxys unterstützt |
| |- | | |- |
| | -p source_port || Specify the source port nc should use, subject to privilege restrictions and availability. | | | -p || || source_port || Geben Sie den Quellport an, den nc verwenden soll, abhängig von Berechtigungseinschränkungen und Verfügbarkeit |
| |- | | |- |
| | -q seconds || after EOF on stdin, wait the specified number of seconds and then quit. | | | -q || || seconds || Warten Sie nach EOF auf stdin die angegebene Anzahl von Sekunden und beenden Sie dann |
| * If seconds is negative, wait forever (default). | | * Wenn Sekunden negativ sind, ewig warten (Standard) |
| * Specifying a non-negative seconds implies -N. | | * Die Angabe einer nicht negativen Sekunde impliziert -N |
| |- | | |- |
| | -r || Choose source and/or destination ports randomly instead of sequentially within a range or in the order that the system assigns them. | | | -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 || Enable the RFC 2385 TCP MD5 signature option. | | | -S || || || Aktivieren Sie die RFC 2385 TCP MD5-Signaturoption |
| |- | | |- |
| | -s sourceaddr || Set the source address to send packets from, which is useful on machines with multiple interfaces. | | | -s || || sourceaddr || Legen Sie die Quelladresse fest, von der Pakete gesendet werden sollen, was auf Computern mit mehreren Schnittstellen nützlich ist |
| * For UNIX-domain datagram sockets, specifies the local temporary socket file to create and use so that datagrams can be received. | | * 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 |
| * Cannot be used together with -x. | | * Kann nicht zusammen mit -x verwendet werden |
| |- | | |- |
| | -T keyword || Change the IPv4 TOS/IPv6 traffic class value. | | | -T || || keyword || Ändern Sie den Wert der IPv4-TOS/IPv6-Verkehrsklasse |
| * keyword may be one of critical, inetcontrol, lowcost, lowdelay, netcontrol, throughput, reliability, or one of the DiffServ Code Points: 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; or a number in either hex or decimal. | | * cs7; oder eine Zahl in Hex oder Dezimal |
| |- | | |- |
| | -t || Send RFC 854 DON'T and WON'T responses to RFC 854 DO and WILL requests. | | | -t || || || Senden Sie RFC 854 DON'T- und WON'T-Antworten auf RFC 854 DO- und WILL-Anforderungen |
| * This makes it possible to use nc to script telnet sessions. | | * Dadurch ist es möglich, nc zum Skripten von Telnet-Sitzungen zu verwenden |
| |- | | |- |
| | -U || Use UNIX-domain sockets. | | | -U || || || Verwenden Sie UNIX-Domain-Sockets |
| * Cannot be used together with -F or -x. | | * Kann nicht zusammen mit -F oder -x verwendet werden |
| * On Linux, if the name starts with an at symbol (`@') it is read as an abstract namespace socket: the leading `@' is replaced with a NUL byte before binding or connecting. | | * 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 |
| * For details, see unix(7). | | * Einzelheiten finden Sie unter unix(7) |
| |- | | |- |
| | -u || Use UDP instead of TCP. | | | -u || || || Verwenden Sie UDP statt TCP |
| * Cannot be used together with -x. | | * Kann nicht zusammen mit -x verwendet werden |
| * For UNIX-domain sockets, use a datagram socket instead of a stream socket. | | * Verwenden Sie für UNIX-Domain-Sockets einen Datagramm-Socket anstelle eines Stream-Sockets |
| * If a UNIX-domain socket is used, a temporary receiving socket is created in /tmp unless the -s flag is given. | | * 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 || Set the routing table to be used. | | | -V || || rtable ||Legen Sie die zu verwendende Routing-Tabelle fest |
| |- | | |- |
| | -v || Produce more verbose output. | | | -v || || || Erzeuge eine ausführlichere Ausgabe |
| |- | | |- |
| | -W recvlimit || Terminate after receiving recvlimit packets from the network. | | | -W || || recvlimit || Beenden Sie nach dem Empfang von recvlimit-Paketen aus dem Netzwerk |
| |- | | |- |
| | -w timeout || Connections which cannot be established or are idle timeout after timeout seconds. | | | -w || || timeout || Verbindungen, die nicht hergestellt werden können oder nach Timeout-Sekunden im Leerlauf sind |
| * The -w flag has no effect on the -l option, i.e. | | * Das Flag -w hat keine Auswirkung auf die Option -l, dh |
| * nc will listen forever for a connection, with or without the -w flag. | | * nc wird für immer auf eine Verbindung warten, mit oder ohne das Flag -w |
| * The default is no timeout. | | * Der Standardwert ist kein Timeout |
| |- | | |- |
| | -X proxy_protocol || Use proxy_protocol when talking to the proxy server. | | | -X || || proxy_protocol || Verwenden Sie proxy_protocol, wenn Sie mit dem Proxy-Server sprechen |
| * Supported protocols are 4 (SOCKS v.4), 5 (SOCKS v.5) and connect (HTTPS proxy). | | * Unterstützte Protokolle sind 4 (SOCKS v.4), 5 (SOCKS v.5) und Connect (HTTPS-Proxy) |
| * If the protocol is not specified, SOCKS version 5 is used. | | * Wenn das Protokoll nicht angegeben ist, wird SOCKS Version 5 verwendet |
| |- | | |- |
| | -x proxy_address[:port] || Connect to destination using a proxy at proxy_address and port. | | | -x || || proxy_address[:port] || Verbinden Sie sich mit dem Ziel über einen Proxy an Proxy_Adresse und Port |
| * If port is not specified, the well-known port for the proxy protocol is used (1080 for SOCKS, 3128 for HTTPS). | | * Wenn kein Port angegeben ist, wird der bekannte Port für das Proxy-Protokoll verwendet (1080 für SOCKS, 3128 für HTTPS) |
| * An IPv6 address can be specified unambiguously by enclosing proxy_address in square brackets. | | * Eine IPv6-Adresse kann eindeutig angegeben werden, indem proxy_address in eckige Klammern gesetzt wird |
| * A proxy cannot be used with any of the options -lsuU. | | * Ein Proxy kann mit keiner der Optionen -lsuU verwendet werden |
| |- | | |- |
| | -Z || DCCP mode. | | | -Z || || || DCCP-Modus |
| |- | | |- |
| | -z || Only scan for listening daemons, without sending any data to them. | | || -z || || || Scannen Sie nur nach lauschenden Daemons, ohne Daten an sie zu senden. * Kann nicht zusammen mit -l verwendet werden |
| * Cannot be used together with -l. | |
| |- | | |- |
| |} | | |} |
|
| |
|
| == Parameter == | | === Argumente === |
| {| class="wikitable sortable" | | {| class="wikitable" |
| ! Parameter || Bedeutung | | ! Parameter || Bedeutung |
| |- | | |- |
| |destination ||can be a numerical IP address or a symbolic hostname (unless the -n option is given). | | | '''ZIEL''' || IP-Adresse oder Hostname (nicht mit -n) |
| * In general, a destination must be specified, unless the -l option is given (in which case the local host is used). | | * Muss angegeben werden (nicht bei -l) |
| * For UNIX-domain sockets, a destination is required and is the socket path to connect to (or listen on if the -l option is given).
| | UNIX-Domänen-Sockets |
| | * Ziel ist erforderlich |
| | * Ziel ist der Socket-Pfad |
| |- | | |- |
| | port || can be specified as a numeric port number or as a service name. | | | '''PORT''' || Portnummer oder Dienstname |
| * Port ranges may be specified as numeric port numbers of the form nn-mm. | | * Portbereiche: nn-mm |
| * In general, a destination port must be specified, unless the -U option is given. | | * Zielport muss angegeben werden (nicht mit -U) |
| |} | | |} |
|
| |
|
| = Anwendungen = | | == Anhang == |
| == Client/Server-Modell ==
| | === Siehe auch === |
| It is quite simple to build a very basic client/server model using nc.
| | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} |
| * On one console, start nc listening on a specific port for a connection.
| | ---- |
| * For example:
| | * [[cat]] |
| $ '''nc -l 1234'''
| | * [[ssh]] |
| | |
| nc is now listening on port 1234 for a connection.
| |
| * On a second console (or a second machine), connect to the machine and port being listened on:
| |
| $ '''nc -N 127.0.0.1 1234'''
| |
| | |
| There should now be a connection between the ports.
| |
| * Anything typed at the second console will be concatenated to the first, and vice-versa.
| |
| * After the connection has been set up, nc does not really care which side is being used as a ‘server’ and which side is being used as a ‘client’.
| |
| * The connection may be terminated using an EOF (‘^D’), as the -N flag was given.
| |
| | |
| There is no -c or -e option in this netcat, but you still can execute a command after connection being established by redirecting file descriptors.
| |
| * Be cautious here because opening a port and let anyone connected execute arbitrary command on your site is DANGEROUS.
| |
| * If you really need to do this, here is an example:
| |
| | |
| On ‘server’ side:
| |
| $ '''rm -f /tmp/f; mkfifo /tmp/f'''
| |
| $ '''cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f'''
| |
| | |
| On ‘client’ side:
| |
| $ '''nc host.example.com 1234'''
| |
| $ '''(shell prompt from host.example.com)'''
| |
| | |
| By doing this, you create a fifo at /tmp/f and make nc listen at port 1234 of address 127.0.0.1 on ‘server’ side, when a ‘client’ establishes a connec‐
| |
| tion successfully to that port, /bin/sh gets executed on ‘server’ side and the shell prompt is given to ‘client’ side.
| |
| | |
| When connection is terminated, nc quits as well.
| |
| * Use -k if you want it keep listening, but if the command quits this option won't restart it or keep nc running.
| |
| * Also don't forget to remove the file descriptor once you don't need it anymore:
| |
| $ '''rm -f /tmp/f'''
| |
| | |
| == Datenübertragung == | |
| The example in the previous section can be expanded to build a basic data transfer model.
| |
| * Any information input into one end of the connection will be output to the other end, and input and output can be easily captured in order to emulate file transfer.
| |
| | |
| Start by using nc to listen on a specific port, with output captured into a file:
| |
| $ '''nc -l 1234 > filename.out'''
| |
| | |
| Using a second machine, connect to the listening nc process, feeding it the file which is to be transferred:
| |
| $ '''nc -N host.example.com 1234 < filename.in'''
| |
| | |
| After the file has been transferred, the connection will close automatically.
| |
| | |
| == Einen Server anprechen ==
| |
| It is sometimes useful to talk to servers “by hand” rather than through a user interface.
| |
| * It can aid in troubleshooting, when it might be necessary to verify what data a server is sending in response to commands issued by the client.
| |
| * For example, to retrieve the home page of a web site:
| |
| $ '''printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80'''
| |
| | |
| Note that this also displays the headers sent by the web server.
| |
| * They can be filtered, using a tool such as sed(1), if necessary.
| |
| | |
| More complicated examples can be built up when the user knows the format of requests required by the server.
| |
| * As another example, an email may be sub‐
| |
| mitted to an SMTP server using:
| |
| | |
| $ '''nc [-C] localhost 25 << EOF'''
| |
| HELO host.example.com
| |
| MAIL FROM:<user@host.example.com>
| |
| RCPT TO:<user2@host.example.com>
| |
| DATA
| |
| Body of email.
| |
| .
| |
| QUIT
| |
| EOF
| |
| | |
| == Post-Scanning ==
| |
| It may be useful to know which ports are open and running services on a target machine.
| |
| * The -z flag can be used to tell nc to report open ports,
| |
| rather than initiate a connection.
| |
| * Usually it's useful to turn on verbose output to stderr by use this option in conjunction with -v option. | |
| | |
| For example:
| |
| $ '''nc -zv host.example.com 20-30'''
| |
| Connection to host.example.com 22 port [tcp/ssh] succeeded!
| |
| Connection to host.example.com 25 port [tcp/smtp] succeeded!
| |
| | |
| The port range was specified to limit the search to ports 20 - 30, and is scanned by increasing order (unless the -r flag is set).
| |
| | |
| You can also specify a list of ports to scan, for example:
| |
| $ '''nc -zv host.example.com http 20 22-23'''
| |
| nc: connect to host.example.com 80 (tcp) failed: Connection refused
| |
| nc: connect to host.example.com 20 (tcp) failed: Connection refused
| |
| Connection to host.example.com port [tcp/ssh] succeeded!
| |
| nc: connect to host.example.com 23 (tcp) failed: Connection refused
| |
| | |
| The ports are scanned by the order you given (unless the -r flag is set).
| |
| | |
| Alternatively, it might be useful to know which server software is running, and which versions.
| |
| * This information is often contained within the greet‐
| |
| ing banners.
| |
| * In order to retrieve these, it is necessary to first make a connection, and then break the connection when the banner has been retrieved.
| |
| | |
| This can be accomplished by specifying a small timeout with the -w flag, or perhaps by issuing a "QUIT" command to the server:
| |
| $ '''echo "QUIT" | nc host.example.com 20-30'''
| |
| SSH-1.99-OpenSSH_3.6.1p2
| |
| Protocol mismatch.
| |
| 220 host.example.com IMS SMTP Receiver Version 0.84 Ready
| |
| | |
| == Beispiele ==
| |
| Open a TCP connection to port 42 of host.example.com, using port 31337 as the source port, with a timeout of 5 seconds:
| |
| $ '''nc -p 31337 -w 5 host.example.com 42'''
| |
| | |
| Open a UDP connection to port 53 of host.example.com:
| |
| $ '''nc -u host.example.com 53'''
| |
| | |
| Open a TCP connection to port 42 of host.example.com using 10.1.2.3 as the IP for the local end of the connection:
| |
| $ '''nc -s 10.1.2.3 host.example.com 42'''
| |
| | |
| Create and listen on a UNIX-domain stream socket:
| |
| $ '''nc -lU /var/tmp/dsocket'''
| |
| | |
| Connect to port 42 of host.example.com via an HTTP proxy at 10.2.3.4, port 8080.
| |
| * This example could also be used by ssh(1); see the ProxyCommand di‐
| |
| rective in ssh_config(5) for more information.
| |
| $ '''nc -x10.2.3.4:8080 -Xconnect host.example.com 42'''
| |
| | |
| The same example again, this time enabling proxy authentication with username “ruser” if the proxy requires it:
| |
| $ '''nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42'''
| |
| | |
| == CAVEATS ==
| |
| UDP port scans using the -uz combination of flags will always report success irrespective of the target machine's state.
| |
| * However, in conjunction with a traffic sniffer either on the target machine or an intermediary device, the -uz combination could be useful for communications diagnostics.
| |
| * Note that the amount of UDP traffic generated may be limited either due to hardware resources and/or configuration settings.
| |
| | |
| = Sicherheit =
| |
| = Dokumentation =
| |
| == RFC ==
| |
| == Man-Pages ==
| |
| == Info-Pages ==
| |
| == Projekt-Homepage ==
| |
|
| |
|
| = Links = | | === Dokumentation === |
| == Siehe auch == | | ==== Man-Page ==== |
| # cat(1)
| |
| # ssh(1)
| |
|
| |
|
| == Weblinks == | | === Links === |
| == Einzelnachweise == | | ==== Projekt ==== |
| <references />
| | ==== Weblinks ==== |
| | # https://wiki.ubuntuusers.de/netcat/ |
|
| |
|
| = Testfragen =
| | {{DEFAULTSORT:nc}} |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
|
| |
|
| [[Kategorie:Linux:Befehl]] | | [[Kategorie:Linux/Befehl]] |
| [[Kategorie:Netzwerke:Befehl]] | | [[Kategorie:Netzwerk/Befehl]] |
| | [[Kategorie:netcat]] |
| | </noinclude> |