GNU/Linux >> Znalost Linux >  >> Linux

8 Praktické příklady příkazů Netcat NC pro Linux

Netcat nebo nc je síťový nástroj pro ladění a zkoumání sítě.

Tento nástroj lze použít pro vytváření připojení TCP/UDP a jejich zkoumání. Největší využití této utility je ve skriptech, kde se potřebujeme vypořádat s TCP/UDP sockety.

V tomto článku se seznámíme s příkazem netcat na několika praktických příkladech.

1. Netcat v architektuře server-klient

Obslužný program netcat lze spustit v režimu serveru na zadaném portu naslouchajícím příchozím připojením.

$ nc -l 2389

Také jej lze použít v klientském režimu při pokusu o připojení na právě otevřeném portu (2389).

$ nc localhost 2389

Nyní, když napíšeme nějaký text na straně klienta, dostane se na stranu serveru. Tady je důkaz:

$ nc localhost 2389
HI, server

Na terminálu, kde běží server:

$ nc -l 2389
HI, server

Vidíme tedy, že nástroj netcat lze použít v komunikaci soketu klientského serveru.

2. Použijte Netcat k přenosu souborů

K přenosu souborů lze také použít nástroj netcat. Předpokládejme, že na straně klienta máme soubor s názvem „testfile“ obsahující :

$ cat testfile
hello test

a na straně serveru máme prázdný soubor „test“

Nyní spustíme server jako :

$ nc -l 2389 > test

a spusťte klienta jako :

cat testfile | nc localhost 2389

Nyní, když vidíme „testovací“ soubor na konci serveru, vidíme :

$ cat test
hello test

Vidíme tedy, že data souboru byla přenesena z klienta na server.

3. Netcat podporuje časové limity

Jsou případy, kdy nechceme, aby spojení zůstalo otevřené navždy. V takovém případě můžeme pomocí přepínače „-w“ určit časový limit připojení. Takže po sekundách zadaných spolu s parametrem -w je spojení mezi klientem a serverem ukončeno.

Server :

nc -l 2389

Klient :

$ nc -w 10 localhost 2389

Výše uvedené připojení by bylo ukončeno po 10 sekundách.

POZNÁMKA:Nepoužívejte příznak -w s příznakem -l na straně serveru, protože v takovém případě příznak -w nemá žádný účinek, a proto připojení zůstává navždy otevřené.

4. Netcat podporuje konektivitu IPV6

Parametr -4 nebo -6 určuje, že obslužný program netcat by měl používat který typ adres. -4 nutí nc používat adresu IPV4, zatímco -6 nutí nc používat adresu IPV6.

Server :

$ nc -4 -l 2389

Klient :

$ nc -4 localhost 2389

Nyní, když spustíme příkaz netstat, uvidíme :

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

První pole ve výše uvedeném výstupu by obsahovalo příponu „6“ v případě, že se používají adresy IPV6. Protože v tomto případě tomu tak není, je spojení mezi serverem a klientem navázáno pomocí adres IPV4.

Nyní, pokud přinutíme nc používat adresy IPV6

Server :

$ nc -6 -l 2389

Klient :

$ nc -6 localhost 2389

Nyní, když spustíme příkaz netstat, uvidíme :

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

Takže nyní postfix ‚6‘ s ‚tcp‘ ukazuje, že nc nyní používá adresy IPV6.

5. Zakázat čtení ze STDIN v Netcat

Této funkce lze dosáhnout pomocí parametru -d. V následujícím příkladu jsme použili tento příznak na straně klienta.

Server :

$ nc -l 2389

Klient :

$ nc -d localhost 2389
Hi

Text ‚Ahoj‘ nebude odeslán na konec serveru, protože pomocí volby -d bylo zakázáno čtení z stdin.

6. Vynutit Netcat Server, aby zůstal vzhůru

Pokud je klient netcat připojen k serveru a po nějaké době je klient odpojen, normálně se server netcat také ukončí.

Server :

$ nc -l 2389

Klient :

$ nc localhost 2389
^C

Server :

$ nc -l 2389
$

Takže ve výše uvedeném příkladu vidíme, že jakmile byl klient odpojen, server byl také ukončen.

Toto chování lze ovládat pomocí parametru -k na straně serveru, který přinutí server zůstat v provozu i po odpojení klienta.

Server :

$ nc -k -l 2389

Klient :

$ nc localhost 2389
^C

Server :

$ nc -k -l 2389

Vidíme tedy, že při použití volby -k server zůstává aktivní, i když je klient odpojen.

7. Nakonfigurujte klienta Netcat tak, aby zůstal vzhůru po EOF

Klient Netcat může být nakonfigurován tak, aby po přijetí EOF zůstal v provozu. V normálním scénáři, pokud klient nc obdrží znak EOF, pak se okamžitě ukončí, ale toto chování lze také ovládat, pokud je použit parametr -q. Tento příznak očekává číslo, které znázorňuje počet sekund čekání před ukončením klienta (po obdržení EOF)

Klient by měl být spuštěn takto:

nc  -q 5  localhost 2389

Nyní, pokud klient někdy obdrží EOF, bude čekat 5 sekund, než se ukončí.

8. Použijte Netcat s protokolem UDP

Ve výchozím nastavení jsou všechny sokety, které utilita nc vytváří, protokoly TCP, ale tato utilita také pracuje s protokolem UDP. K povolení protokolu UDP se používá příznak -u.

Server :

$ nc -4 -u -l 2389

Klient:

$ nc -4 -u localhost 2389

Nyní jsou server i klient nakonfigurovány pro použití protokolu UDP. To lze potvrdit následujícím příkazem netstat. Vidíme tedy, že toto připojení nyní používá protokol UDP.

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

Linux
  1. 7 Praktické příklady cd Command v Linuxu

  2. 5 Praktické příklady příkazu chgrp v Linuxu

  3. 10 Praktické příklady příkazů Linux nm

  1. cp Command v Linuxu:7 praktických příkladů

  2. Linux Shutdown Command:5 praktických příkladů

  3. Praktické příklady příkazu rsync v Linuxu

  1. 16 Praktické příklady příkazu Linux LS pro začátečníky

  2. 5 Praktické příklady Head Command v Linuxu

  3. 5 Praktické příklady příkazu dd v Linuxu