nc- arbitrary TCP and UDP connections and listens
SYNOPSIS
nc
.Bk -words]]
.Ek
DESCRIPTION
Thenc(or netcat)utility is used for just about anything under the sun involving TCPor UDP.It can open TCP connections, send UDP packets, listen on arbitraryTCP and UDP ports, do port scanning, and deal with both IPv4 andIPv6.,A differenza di Net(1), ncscripts bene, e separa i messaggi di errore su errore standard invece di inviarli allo standard output, astelnet (1) fa con alcuni.
gli usi più Comuni sono:
- semplice TCP proxy
- shell-script basato HTTP client e server
- rete demone test
- un CALZINI o HTTP ProxyCommand forssh(1)
- e molto, molto di più
Le opzioni sono come segue:
Tag | Descrizione |
---|---|
-4 | Forcesncto utilizzare solo indirizzi IPv4., |
-6 | Forzencper utilizzare solo gli indirizzi IPv6. |
-D | Abilita il debug sul socket. |
-d | Non tentare di leggere da stdin. |
-h | Stampa outnchelp. |
-i interval | |
Specifica un intervallo di tempo di ritardo tra le righe di testo inviate e ricevute.Causa anche un tempo di ritardo tra le connessioni a più porte. | |
-k | Costringe Nc a rimanere in ascolto per un’altra connessione dopo che la connessione corrente è stata completata.,È un errore usare questa opzione senza l’opzione-l. |
-l | Utilizzato per specificare chencdovrebbe ascoltare una connessione in entrata piuttosto che avviare una connessione a un telecomando host.It è un errore usare questa opzione insieme alle opzioni-p,-s o-z.Inoltre, tutti i timeout specificati con l’opzione-w vengono ignorati. |
-n | Non eseguire ricerche DNS o di servizio su indirizzi,nomi host o porte specificati., |
– p source_port | |
Specifica la porta di origine da utilizzare, soggetta a restrizioni di privilegi e availability.It è un errore usare questa opzione insieme all’opzione-l. | |
-r | Specifica che le porte di origine e / o di destinazione devono essere scelte in modo casuale, anziché in sequenza all’interno di un intervallo o nell’ordine in cui il systemassigns. |
-S | Abilita l’opzione di firma TCP MD5 RFC 2385., |
– s source_ip_address | |
Specifica l’IP dell’interfaccia utilizzata per inviare il packets.It è un errore usare questa opzione insieme all’opzione-l. | |
-T ToS | |
Specifica il tipo di servizio IP (ToS) per la connessione.I valori validi sono i token “lowdelay”,”throughput”,”affidabilità”o un valore esadecimale a 8 bit preceduto da “0x”. | |
-t | Causesncper inviare RFC 854 NON RISPONDERE e NON RISPONDERE a RFC 854 FARE e FARE richieste.,Questo rende possibile usencto script sessioni telnet. |
-U | Specifica di utilizzare socket di dominio Unix. |
-u | Usa UDP invece dell’opzione predefinita di TCP. |
-v | Avere un output più dettagliato. |
-w timeout | |
Se una connessione e stdin sono inattivi per più di timeoutsecondi, la connessione viene chiusa silenziosamente.Il flag-w non ha alcun effetto sull’opzione-l, ad es. nc ascolterà per sempre una connessione, con o senza il flag-w.Il valore predefinito non è timeout., | |
-X proxy_version | |
Richiede chencdovrebbe usare il protocollo specificato quando si parla con il server proxy.I protocolli supportati sono ” 4 ” (SOCKS v. 4),”5″(SOCKS v. 5) e “connect” (proxy HTTPS).Se il protocollo non è specificato, viene utilizzata SOCKS versione 5. | |
-x proxy_address | |
Richiede chencdovrebbe connettersi a hostnameusing un proxy a proxy_addressand porta.Se la porta non è specificata, viene utilizzata la porta ben nota per il protocollo proxy (1080 per SOCKS, 3128 per HTTPS)., | |
-z | Specifica chencdovrebbe solo scansionare i demoni in ascolto, senza inviare alcun dato a them.It è un errore usare questa opzione insieme all’opzione-l. |
nome hostpuò essere un indirizzo IP numerico o un nome host simbolico(a meno che non sia specificata l’opzione-n).In generale, un nome host deve essere specificato,a meno che non sia specificata l’opzione-l(nel qual caso viene utilizzato l’host locale).
porta può essere singoli interi o intervalli.Gli intervalli sono nella forma nn-mm.,In generale, è necessario specificare una porta di destinazione, a meno che non venga fornita l’opzione-U(nel qual caso è necessario specificare un socket).
MODELLO CLIENT/SERVER
È abbastanza semplice creare un modello client / server molto semplice utilizzando nc.Su una console, startnclistening su una porta specifica per una connessione.Ad esempio:
nc nc-l 1234
ncis ora in ascolto sulla porta 1234 per una connessione.Su una seconda console(o una seconda macchina),connettersi alla macchina e alla porta in ascolto:
nc nc 127.0.0.1 1234
Ora dovrebbe esserci una connessione tra le porte.,Tutto ciò che viene digitato sulla seconda console verrà concatenato alla prima e viceversa.Dopo che la connessione è stata impostata,ncdoes non importa quale lato viene utilizzato come un’server’e quale lato viene utilizzato come un ‘client’.La connessione può essere terminata utilizzando un EOF (‘^D’).
TRASFERIMENTO DATI
L’esempio nella sezione precedente può essere ampliato per creare un modello di trasferimento dati abasic.Qualsiasi informazione immessa in un’estremità della connessione verrà emessa dall’altra estremità e l’input e l’output possono essere facilmente acquisiti per emulare il trasferimento dei file.,
Inizia usandonc per ascoltare su una porta specifica, con l’output catturato in un file:
nc nc-l 1234> nome file.out
Utilizzando una seconda macchina, connettersi al listeningncprocess, alimentando il file che deve essere trasferito:
nc nc host.example.com 1234 < filename.in
Dopo che il file è stato trasferito, la connessione si chiuderà automaticamente.
PARLARE CON I SERVER
A volte è utile parlare con i server”a mano”piuttosto che attraverso un’interfaccia utente.,Può aiutare nella risoluzione dei problemi, quando potrebbe essere necessario verificare quali dati un server sta inviando in risposta ai comandi emessi dal client.Ad esempio, per recuperare la home page di un sito web:
$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80
Si noti che questo visualizza anche le intestazioni inviate dal server web.Possono essere filtrati, utilizzando uno strumento come assed (1),se necessario.
Esempi più complicati possono essere compilati quando l’utente conosce il formato delle richieste richieste dal server.,Come altro esempio, un’e-mail può essere inviata a un server SMTP utilizzando:
PORT SCANNING
Può essere utile sapere quali porte sono aperte e servizi in esecuzione su una macchina di destinazione.Il flag-z può essere utilizzato per segnalare tellncto porte aperte, piuttosto che avviare una connessione.Ad esempio:
L’intervallo di porte è stato specificato per limitare la ricerca alle porte 20 – 30.
In alternativa, potrebbe essere utile sapere quale software server è in esecuzione e quali versioni.Queste informazioni sono spesso contenute all’interno dei banner di saluto.,Per recuperarli, è necessario prima effettuare una connessione e quindi interrompere la connessione quando il banner è stato recuperato.Questo è possibile specificare un timeout piccolo con l’-w bandiera, o forse con l’emissione di un”QUIT”comando per il server:
ESEMPI
Aprire una connessione TCP alla porta 42 del host.example.com utilizzando la porta 31337 inquanto porta di origine, con un timeout di 5 secondi:
$ nc -p 31337 -w 5 host.example.com 42
Aprire una connessione UDP la porta 53 del host.example.com:
$ nc -u host.example.com 53
Aprire una connessione TCP alla porta il 42 di host.esempio.,com utilizzando 10.1.2.3 come IP per la fine locale della connessione:
nc nc-s 10.1.2.3 host.example.com 42
Creare e ascoltare su un socket di dominio Unix:
nc nc-lU / var / tmp / dsocket
Connettersi alla porta 42 di host.example.com tramite un proxy HTTP a 10.2.3.4, porta 8080.Questo esempio potrebbe essere utilizzato anche da byssh(1); vedere ProxyCommanddirective inssh_config (5) per ulteriori informazioni.
nc nc-x10.2.3.4:8080-Xconnect host.example.com 42
VEDERE ANCHE
ssh (1)
AUTORI
Implementazione originale di * Hobbit * <[email protected]>.,
Riscritto con il supporto IPv6 da
.Un Eric Jackson Aq [email protected] .
AVVERTENZE
Le scansioni delle porte UDP avranno sempre successo(cioè riportano la porta come aperta),rendendo la combinazione di flag-uz relativamente inutile.
Pubblicità