GNU/Linux >> LINUX-Kenntnisse >  >> Linux

8 praktische Linux Netcat NC-Befehlsbeispiele

Netcat oder nc ist ein Netzwerkdienstprogramm zum Debuggen und Untersuchen des Netzwerks.

Dieses Dienstprogramm kann zum Erstellen und Untersuchen von TCP/UDP-Verbindungen verwendet werden. Die größte Verwendung dieses Dienstprogramms findet sich in den Skripten, in denen wir mit TCP/UDP-Sockets umgehen müssen.

In diesem Artikel lernen wir den netcat-Befehl anhand einiger praktischer Beispiele kennen.

1. Netcat in einer Server-Client-Architektur

Das Netcat-Dienstprogramm kann im Servermodus auf einem bestimmten Port ausgeführt werden, der auf eingehende Verbindungen wartet.

$ nc -l 2389

Es kann auch im Client-Modus verwendet werden, indem versucht wird, eine Verbindung über den gerade geöffneten Port (2389) herzustellen

$ nc localhost 2389

Wenn wir nun einen Text auf der Client-Seite schreiben, erreicht er die Server-Seite. Hier ist der Beweis :

$ nc localhost 2389
HI, server

Auf dem Terminal, auf dem der Server läuft:

$ nc -l 2389
HI, server

Wir sehen also, dass das Netcat-Dienstprogramm in der Client-Server-Socket-Kommunikation verwendet werden kann.

2. Verwenden Sie Netcat zum Übertragen von Dateien

Das Dienstprogramm netcat kann auch zum Übertragen von Dateien verwendet werden. Angenommen, wir haben auf der Clientseite eine Datei mit dem Namen „testfile“, die Folgendes enthält:

$ cat testfile
hello test

und serverseitig haben wir eine leere Datei „test“

Jetzt führen wir den Server als :

aus
$ nc -l 2389 > test

und führen Sie den Client als :

aus
cat testfile | nc localhost 2389

Wenn wir nun die „test“-Datei am Serverende sehen, sehen wir:

$ cat test
hello test

Wir sehen also, dass die Dateidaten vom Client zum Server übertragen wurden.

3. Netcat unterstützt Timeouts

Es gibt Fälle, in denen wir nicht möchten, dass eine Verbindung für immer offen bleibt. In diesem Fall können wir über den Schalter „-w“ das Timeout in einer Verbindung angeben. Nach den zusammen mit dem Flag -w angegebenen Sekunden wird die Verbindung zwischen Client und Server beendet.

Server :

nc -l 2389

Kunde :

$ nc -w 10 localhost 2389

Die obige Verbindung würde nach 10 Sekunden beendet.

HINWEIS:Verwenden Sie das Flag -w nicht mit dem Flag -l auf der Serverseite, da das Flag -w in diesem Fall keine Wirkung hat und die Verbindung daher für immer offen bleibt.

4. Netcat unterstützt IPV6-Konnektivität

Das Flag -4 oder -6 gibt an, dass das Netcat-Dienstprogramm welchen Adresstyp verwenden soll. -4 zwingt nc, die IPV4-Adresse zu verwenden, während -6 nc zwingt, die IPv6-Adresse zu verwenden.

Server :

$ nc -4 -l 2389

Kunde :

$ nc -4 localhost 2389

Wenn wir jetzt den Befehl netstat ausführen, sehen wir :

$ netstat | grep 2389
tcp        0      0 localhost:2389          localhost:50851         ESTABLISHED
tcp        0      0 localhost:50851         localhost:2389          ESTABLISHED

Das erste Feld in der obigen Ausgabe würde ein Postfix „6“ enthalten, falls die IPv6-Adressen verwendet werden. Da dies in diesem Fall nicht der Fall ist, wird eine Verbindung zwischen Server und Client über IPV4-Adressen hergestellt.

Nun, wenn wir nc zwingen, IPv6-Adressen zu verwenden

Server :

$ nc -6 -l 2389

Kunde :

$ nc -6 localhost 2389

Wenn wir jetzt den Befehl netstat ausführen, sehen wir :

$ netstat | grep 2389
tcp6       0      0 localhost:2389          localhost:33234         ESTABLISHED
tcp6       0      0 localhost:33234         localhost:2389          ESTABLISHED

Jetzt zeigt also ein Postfix „6“ mit „tcp“, dass nc jetzt IPV6-Adressen verwendet.

5. Deaktivieren Sie das Lesen von STDIN in Netcat

Diese Funktionalität kann mit dem Flag -d erreicht werden. Im folgenden Beispiel haben wir dieses Flag auf der Client-Seite verwendet.

Server :

$ nc -l 2389

Kunde :

$ nc -d localhost 2389
Hi

Der Text „Hi“ wird nicht an das Serverende gesendet, da mit der Option -d das Lesen von stdin deaktiviert wurde.

6. Netcat-Server zwingen, aktiv zu bleiben

Wenn der Netcat-Client mit dem Server verbunden ist und der Client nach einiger Zeit wieder getrennt wird, wird normalerweise auch der Netcat-Server beendet.

Server :

$ nc -l 2389

Kunde :

$ nc localhost 2389
^C

Server :

$ nc -l 2389
$

Im obigen Beispiel sehen wir also, dass der Server beendet wurde, sobald der Client getrennt wurde.

Dieses Verhalten kann gesteuert werden, indem das Flag -k auf der Serverseite verwendet wird, um den Server zu zwingen, aktiv zu bleiben, selbst nachdem der Client die Verbindung getrennt hat.

Server :

$ nc -k -l 2389

Kunde :

$ nc localhost 2389
^C

Server :

$ nc -k -l 2389

Wir sehen also, dass durch die Verwendung der Option -k der Server aktiv bleibt, selbst wenn die Verbindung zum Client getrennt wurde.

7. Netcat-Client so konfigurieren, dass er nach EOF aktiv bleibt

Der Netcat-Client kann so konfiguriert werden, dass er aktiv bleibt, nachdem EOF empfangen wurde. Wenn der nc-Client in einem normalen Szenario ein EOF-Zeichen empfängt, wird er sofort beendet, aber dieses Verhalten kann auch gesteuert werden, wenn das Flag -q verwendet wird. Dieses Flag erwartet eine Zahl, die die Anzahl der Sekunden angibt, die gewartet werden soll, bevor der Client beendet wird (nach dem Empfang von EOF)

Der Client sollte wie folgt gestartet werden:

nc  -q 5  localhost 2389

Wenn der Client jetzt jemals ein EOF erhält, wartet er 5 Sekunden, bevor er beendet wird.

8. Verwenden Sie Netcat mit dem UDP-Protokoll

Standardmäßig sind alle Sockets, die das Dienstprogramm nc erstellt, TCP-Protokolle, aber dieses Dienstprogramm funktioniert auch mit dem UDP-Protokoll. Um das UDP-Protokoll zu aktivieren, wird das Flag -u verwendet.

Server :

$ nc -4 -u -l 2389

Kunde :

$ nc -4 -u localhost 2389

Jetzt sind sowohl der Server als auch der Client für die Verwendung des UDP-Protokolls konfiguriert. Dies kann durch den folgenden netstat-Befehl bestätigt werden. Wir sehen also, dass diese Verbindung jetzt das UDP-Protokoll verwendet.

$ netstat | grep 2389
udp        0      0 localhost:42634         localhost:2389          ESTABLISHED

Linux
  1. 7 Praktische Beispiele für den cd-Befehl unter Linux

  2. 5 Praktische Beispiele für den Befehl chgrp unter Linux

  3. cp-Befehl unter Linux:7 praktische Beispiele

  4. Linux-Shutdown-Befehl:5 praktische Beispiele

  5. 10 praktische Beispiele für Linux-nm-Befehle

12 praktische Beispiele für In Command unter Linux

Die 50 praktischen Beispiele des SED-Befehls in Linux

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux

Echo-Befehl unter Linux:7 praktische Beispiele

Praktischer Ping-Befehl in Linux-Beispielen