GNU/Linux >> Linux Esercitazione >  >> Linux

8 Esempi pratici di comandi Linux Netcat NC

Netcat o nc è un'utilità di rete per il debug e l'analisi della rete.

Questa utilità può essere utilizzata per creare connessioni TCP/UDP e analizzarle. L'uso più grande di questa utilità è negli script in cui abbiamo bisogno di gestire i socket TCP/UDP.

In questo articolo impareremo a conoscere il comando netcat da alcuni esempi pratici.

1. Netcat in un'architettura server-client

L'utilità netcat può essere eseguita in modalità server su una porta specifica in attesa di connessioni in entrata.

$ nc -l 2389

Inoltre, può essere utilizzato in modalità client cercando di connettersi sulla porta (2389) appena aperta

$ nc localhost 2389

Ora, se scriviamo del testo sul lato client, raggiunge il lato server. Ecco la prova :

$ nc localhost 2389
HI, server

Sul terminale su cui è in esecuzione il server:

$ nc -l 2389
HI, server

Quindi vediamo che l'utilità netcat può essere utilizzata nella comunicazione socket del server client.

2. Usa Netcat per trasferire file

L'utilità netcat può essere utilizzata anche per trasferire file. Sul lato client, supponiamo di avere un file chiamato 'testfile' contenente:

$ cat testfile
hello test

e sul lato server abbiamo un file vuoto 'test'

Ora eseguiamo il server come :

$ nc -l 2389 > test

ed esegui il client come :

cat testfile | nc localhost 2389

Ora, quando vediamo il file "test" alla fine del server, vediamo:

$ cat test
hello test

Quindi vediamo che i dati del file sono stati trasferiti dal client al server.

3. Netcat supporta i timeout

Ci sono casi in cui non vogliamo che una connessione rimanga aperta per sempre. In tal caso, tramite l'interruttore '-w' possiamo specificare il timeout in una connessione. Quindi, dopo i secondi specificati insieme al flag -w, la connessione tra il client e il server viene terminata.

Server :

nc -l 2389

Cliente :

$ nc -w 10 localhost 2389

La connessione di cui sopra verrebbe interrotta dopo 10 secondi.

NOTA:non utilizzare il flag -w con il flag -l sul lato server poiché in tal caso il flag -w non provoca alcun effetto e quindi la connessione rimane aperta per sempre.

4. Netcat supporta la connettività IPV6

Il flag -4 o -6 specifica che l'utilità netcat deve utilizzare quale tipo di indirizzi. -4 forza nc a usare l'indirizzo IPV4 mentre -6 forza nc a usare l'indirizzo IPV6.

Server :

$ nc -4 -l 2389

Cliente :

$ nc -4 localhost 2389

Ora, se eseguiamo il comando netstat, vediamo :

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

Il primo campo nell'output sopra conterrebbe un suffisso "6" nel caso in cui vengano utilizzati gli indirizzi IPV6. Poiché in questo caso non lo è, quindi viene stabilita una connessione tra server e client utilizzando indirizzi IPV4.

Ora, se forziamo nc a utilizzare gli indirizzi IPV6

Server :

$ nc -6 -l 2389

Cliente :

$ nc -6 localhost 2389

Ora, se eseguiamo il comando netstat, vediamo :

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

Quindi ora un suffisso "6" con "tcp" mostra che nc ora utilizza indirizzi IPV6.

5. Disabilita la lettura da STDIN in Netcat

Questa funzionalità può essere ottenuta utilizzando il flag -d. Nell'esempio seguente, abbiamo utilizzato questo flag sul lato client.

Server :

$ nc -l 2389

Cliente :

$ nc -d localhost 2389
Hi

Il testo "Ciao" non verrà inviato all'estremità del server poiché utilizzando l'opzione -d la lettura da stdin è stata disabilitata.

6. Forza il server Netcat a rimanere attivo

Se il client netcat è connesso al server e dopo qualche tempo il client viene disconnesso, normalmente anche il server netcat viene terminato.

Server :

$ nc -l 2389

Cliente :

$ nc localhost 2389
^C

Server :

$ nc -l 2389
$

Quindi, nell'esempio sopra, vediamo che non appena il client è stato disconnesso, anche il server è stato terminato.

Questo comportamento può essere controllato utilizzando il flag -k sul lato server per forzare il server a rimanere attivo anche dopo che il client si è disconnesso.

Server :

$ nc -k -l 2389

Cliente :

$ nc localhost 2389
^C

Server :

$ nc -k -l 2389

Quindi vediamo che usando l'opzione -k il server rimane attivo anche se il client si è disconnesso.

7. Configura Netcat Client per rimanere attivo dopo EOF

Il client Netcat può essere configurato per rimanere attivo dopo la ricezione di EOF. In uno scenario normale, se il client nc riceve un carattere EOF, termina immediatamente, ma questo comportamento può essere controllato anche se viene utilizzato il flag -q. Questo flag prevede un numero che rappresenta il numero di secondi di attesa prima che il client termini (dopo aver ricevuto EOF)

Il client dovrebbe essere avviato come :

nc  -q 5  localhost 2389

Ora, se il client riceve mai un EOF, attenderà 5 secondi prima di terminare.

8. Usa Netcat con il protocollo UDP

Per impostazione predefinita, tutti i socket creati dall'utilità nc sono protocolli TCP, ma questa utilità funziona anche con il protocollo UDP. Per abilitare il protocollo UDP viene utilizzato il flag -u.

Server :

$ nc -4 -u -l 2389

Cliente :

$ nc -4 -u localhost 2389

Ora, sia il server che il client sono configurati per utilizzare il protocollo UDP. Ciò può essere confermato dal seguente comando netstat. Quindi vediamo che questa connessione ora utilizza il protocollo UDP.

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

Linux
  1. Comando cp in Linux:7 esempi pratici

  2. Comando di arresto di Linux:5 esempi pratici

  3. Esempi pratici di comando rsync in Linux

  4. 5 esempi pratici di comando principale in Linux

  5. 5 Esempi pratici del comando dd in Linux

12 Esempi pratici di In Command in Linux

I 50 esempi pratici del comando SED in Linux

15 esempi pratici di comando Rsync in Linux

5 esempi pratici di Tail Command in Linux

echo Command in Linux:7 esempi pratici

Pratico comando Ping negli esempi di Linux