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.,Unliketelnet(1),ncscripts frumos, și separă mesaje de eroare pe standard de eroare in loc de a le trimite la ieșire standard, astelnet(1)cu unele.
utilizări Comune includ:
- simplu TCP proxy-uri
- shell-script bazat pe HTTP clienți și servere
- rețea daemon testare
- un ȘOSETE sau HTTP ProxyCommand forssh(1)
- și mult, mult mai mult
opțiuni sunt după cum urmează:
Tag-ul | Descriere |
---|---|
-4 | Forcesncto folosi adrese IPv4 numai., |
-6 | Forcesncpentru a utiliza numai adresele IPv6. |
-D | Activați depanarea pe soclu. |
-d | nu încercați să citiți de la stdin. |
-h | Printuri outnchelp. |
-i interval | |
specifică un interval de timp de întârziere între liniile de text trimise și primite.De asemenea, provoacă un timp de întârziere între conexiunile la mai multe porturi. | |
-k | Forcesncpentru a rămâne ascultat pentru o altă conexiune după conexiunea sa curentăeste finalizată.,Este o eroare să utilizați această opțiune fără opțiunea-L. |
-l | Folosit pentru a specifica thatncshould asculta pentru o conexiune de intrare, mai degrabă decât de a iniția aconnection la o gazdă de la distanță.Este o eroare să utilizați această opțiune, în colaborare cu-p ,-s ,sau-z opțiuni.În plus, orice expirare specificată cu opțiunea-w sunt ignorate. |
-n | nu efectuați căutări DNS sau servicii pe nicio adresă,nume de gazdă sau porturi specificate., |
-p source_port | |
Specifică sursa portncshould utilizare, sub rezerva privilegiul de restricții și disponibilitatea.Este o eroare să utilizați această opțiune, în colaborare cu-nu opțiune. | |
-r | Specifică faptul că sursă și/sau destinație porturile ar trebui să fie alese randomlyinstead de secvențial într-un domeniu sau în ordinea în care systemassigns ei. |
-s | activează opțiunea de semnătură RFC 2385 TCP MD5., |
-s source_ip_address | |
Specifică adresa IP a interfeței, care este folosit pentru a trimite pachete.Este o eroare să utilizați această opțiune, în colaborare cu-nu opțiune. | |
-t ToS | |
specifică tipul de serviciu IP (ToS) pentru conexiune.Valorile valide sunt jetoanele „lowdelay”,”throughput”,”fiabilitate”sau o valoare hexazecimală pe 8 biți precedată de „0x”. | |
-t | Cauzesncpentru a trimite RFC 854 nu și nu va răspunsuri la RFC 854 face și va cere.,Acest lucru face posibilă utilizareaencto script telnet sesiuni. |
-U | specifică utilizarea soclurilor de domeniu Unix. |
-u | utilizați UDP în loc de opțiunea implicită a TCP. |
-v | Havencgive ieșire mai verbose. |
-w timeout | |
Dacă o conexiune și stdin sunt inactiv pentru mai mult de timeoutseconds, atunci conexiunea este închis în tăcere.Steagul-w nu are niciun efect asupra opțiunii-l, adică ncva asculta pentru totdeauna o conexiune, cu sau fără steagul-W.Valoarea implicită nu este timeout., | |
-X proxy_version | |
Cereri thatncshould folosi protocolul specificat atunci când vorbim la serverul proxy.Protocoalele acceptate sunt „4”(SOCKS V.4),”5″(SOCKS V. 5)și”connect” (HTTPS proxy).Dacă protocolul nu este specificat, se utilizează SOCKS versiunea 5. | |
-x proxy_address | |
Cereri thatncshould se conecteze la hostnameusing un proxy la proxy_addressand port.Dacă portulnu este specificat, se utilizează portul bine cunoscut pentru protocolul proxy (1080PENTRU șosete, 3128 pentru HTTPS)., | |
z | Specifică thatncshould scana doar pentru a asculta demoni, fără a trimite date la ei.Este o eroare să utilizați această opțiune, în colaborare cu-nu opțiune. |
hostnamecan fi o adresă IP sau un simbolic numele de gazdă(dacă opțiunea-n este dat).În general, un nume de gazdă trebuie să fie specificate,cu excepția cazului în care-l opțiune este dat(în cazul în care gazda locală este utilizat).
portul poate fi numere întregi sau intervale unice.Intervalele sunt sub forma nn-mm.,În general,trebuie specificat un port de destinație, cu excepția cazului în care este dată opțiunea-U(caz în care trebuie specificat un soclu).
CLIENT/SERVER MODEL
este destul de simplu să construiți un model client/server foarte de bază folosindnc.Pe o consolă, începețiînregistrarea pe un port specific pentru o conexiune.De exemplu:
$ nc-l 1234
ncis ascultă acum pe portul 1234 pentru o conexiune.Pe o a doua consolă(sau o a doua mașină),conectați-vă la mașină și la portul ascultat:
$ nc 127.0.0.1 1234
acum ar trebui să existe o conexiune între porturi.,Orice tastat la a doua consolă va fi concatenat la primul și invers.După ce conexiunea a fost stabilită,ncdoes nu pasă cu adevărat de care parte este folosit ca un’server și care parte este folosit ca un’client’.Conexiunea poate fi terminată folosind un EOF (‘^D’).
transfer de date
exemplul din secțiunea anterioară poate fi extins pentru a construi modelul de transfer de date abasic.Orice informație introdusă într-un capăt al conexiunii va fi ieșităla celălalt capăt, iar intrarea și ieșirea pot fi ușor capturate pentru aemula transferul de fișiere.,
Începe prin usingncto asculta pe un anumit port, cu ieșire capturat într-un fișier:
$ nc-l 1234 > filename.afară
Folosind un al doilea aparat, conectați-vă la listeningncprocess, hrănire este fișierul care urmează să fie transferat:
$ nc host.example.com 1234 < filename.în
După ce fișierul a fost transferat, conexiunea se va închide automat.
vorbind cu serverele
uneori este util să vorbești cu serverele”de mână”, mai degrabă decât printr-o interfață de utilizator.,Poate ajuta la rezolvarea problemelor, când ar putea fi necesar să verificați ce date trimite un server ca răspuns la comenzile emise de client.De exemplu, pentru a prelua pagina de pornire a unui site web:
$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80
rețineți că aceasta afișează și anteturile trimise de serverul web.Ele pot fi filtrate, folosind un instrument cum ar fised (1), dacă este necesar.
exemple mai complicate pot fi construite atunci când utilizatorul cunoaște formatul solicitărilor solicitate de server.,Ca un alt exemplu, un e-mail poate fi trimis la un server SMTP folosind:
scanarea porturilor
poate fi util să știți ce porturi sunt deschise și care rulează servicii ona mașină țintă.Steagul-z poate fi folosit pentru a tellncto raportează porturile deschise, mai degrabă decât să inițieze o conexiune.De exemplu:
intervalul de porturi a fost specificat pentru a limita căutarea la porturile 20 – 30.în mod alternativ, ar putea fi util să știți ce software server rulează și ce versiuni.Aceste informații sunt adesea conținute în bannerele de salut.,Pentru a le prelua, este necesar să faceți mai întâi o conexiune și apoi să întrerupeți conexiunea atunci când bannerul a fost recuperat.Acest lucru poate fi realizat prin specificarea un mic timeout cu-w pavilion, sau, poate, prin emiterea unui”QUIT”comanda la server:
EXEMPLE
Deschide o conexiune TCP la portul de 42 de host.example.com, folosind portul 31337 după port sursă, cu o pauză de 5 secunde:
$ nc-p 31337 -w 5 host.example.com 42
Deschide o conexiune UDP la portul 53 de host.example.com:
$ nc-u host.example.com 53
Deschide o conexiune TCP la portul de 42 de gazdă.exemplu.,com folosind 10.1.2.3 ca theIP locale sfârșitul conexiune:
$ nc-s 10.1.2.3 host.example.com 42
de a Crea și de a asculta pe un Unix Domeniu Soclu:
$ nc-lU /var/tmp/dsocket
se Conecteze la portul de 42 de host.example.com prin intermediul unui proxy HTTP la 10.2.3.4,portul 8080.Acest exemplu ar putea fi folosit și deyssh(1);consultați ProxyCommanddirective inssh_config(5)pentru mai multe informații.
$ nc-x10.2.3.4:8080 -Xconnect host.example.com 42
VEZI și
ssh(1)
AUTORI
Original punerea în aplicare de către *Hobbit*<[email protected]>.,
rescris cu suport IPv6 de
.un Eric Jackson Aq [email protected] .
avertismente
scanările portului UDP vor avea întotdeauna succes (adică raportați portul ca fiind deschis), făcând combinația-uz de steaguri relativ inutilă.
Publicitate