Navn
nc – vilkårlig TCP-og UDP-tilkoblinger og lytter
Oversikt
nc ] ]
Beskrivelse
nc (eller netcat) verktøyet brukes for kun om alt under solen som involverer TCP eller UDP. Det kan åpne TCP-tilkoblinger, sender UDP pakker,lytte på vilkårlig TCP-og UDP-porter, gjøre port skanner, og tilbyr med både IPv4 og IPv6. I motsetning til telnet(1), nc skript pent, og skiller errormessages på standard feil i stedet for å sende dem til standard output, som telnet(1) ikke med noen.,
Vanlige bruksområder er:
• simple TCP proxies
• shell-script-basert HTTP-klienter og servere
• nettverk daemon testing
• en SOKKER eller HTTP ProxyCommand for ssh(1)
• og mye, mye mer
alternativer er som følger:
-4′ Styrker nc å bruke IPv4-adresser bare.
-6′ Styrker nc for å bruke IPv6-adresser bare.
-D’ Enable feilsøking på sokkelen.
-d’ Gjør ikke forsøk på å lese fra stdin.
-h’ Skrives ut nc hjelp.
-jeg intervallet
Angir en forsinkelse tidsintervallet mellom linjer med tekst som er sendt og mottatt., Også fører til en forsinkelse mellom forbindelser til flere porter.
-k’ Styrker nc å bo lytte til en annen tilkobling etter den gjeldende tilkoblingen er fullført. Det er en feil å bruke dette alternativet withoutthe -l-alternativet.
-l’ Brukes for å angi at nc bør lytte etter innkommende tilkobling snarere enn å opprette en tilkobling til en ekstern vert. Det er en feil å usethis alternativ i forbindelse med -s, -s eller -z valg. I tillegg, noen tidsavbrudd angitt med -w alternativet ignoreres.
-n’ ikke gjøre noe med DNS-eller service-oppslag på noen spesifiserte adresser, vertsnavn eller porter.,
-p source_port
Angir kilde port nc bør bruke, i henhold til endring av restriksjoner og tilgjengelighet. Det er en feil å bruke dette alternativet i forbindelse med-l-alternativet.
-r’ Angir at kilde-og/eller reisemål porter skal være valgt tilfeldig i stedet for sekvensielt innenfor et område eller i den rekkefølgen som de systemassigns dem.
-S’ Kan RFC 2385 TCP MD5 signatur alternativ.
-s source_ip_address
Angir IP-grensesnittet som brukes til å sende pakker. Det er en feil å bruke dette alternativet i forbindelse med -l-alternativet.,
-C’ Send CRLF som linje-forhold
-t’ Fører til nc til å sende RFC 854 IKKE og VIL IKKE svar på RFC 854 GJØRE og forespørsler. Dette gjør det mulig å bruke nc til scripttelnet økter.
-U’ Angir å bruke Unix-Domene Stikkontakter.
-u’ Bruker UDP-i stedet for standardvalget av TCP.
-v’ Har nc gi mer detaljert utgang.
-w timeout
Hvis en tilkobling og stdin er inaktiv i mer enn timeout sekunder, og deretter den forbindelse er stille lukket. Til-w-flagget har ingen effekt på-l-alternativet, dvs. nc vil lytte alltid for en forbindelse, med eller uten -w-flagg., Standard er ingen grense for tidsavbrudd.
-x proxy_address
ber om at nc skal koble til vertsnavn ved å bruke en proxy på proxy_address og port. Hvis porten ikke er angitt, thewell-kjent-porten til proxy-protokoll som brukes (1080 for SOKKER, 3128 for HTTPS).
-z’ Angir at nc bør bare skanner for å lytte daemons, uten å sende data til dem. Det er en feil å bruke dette alternativet inconjunction med -l-alternativet.
hostname kan være en numerisk IP-adresse eller en symbolsk vertsnavn (mindre -n-alternativet er gitt)., Generelt er det en vertsnavnet må være spesifisert,med mindre de -l-alternativet er angitt (i hvilket tilfelle den lokale verten er brukt).
– port kan være enkelt heltall eller områder. Områdene er i form nn-mm. Generelt, er en destinasjon port må være spesifisert, med mindre -Uoption er gitt (i dette tilfellet en sokkelen må spesifiseres).
KLIENT/SERVER-MODELLEN
Det er ganske enkelt å bygge en svært grunnleggende klient/server-modellen ved hjelp av nc. På en konsoll, start nc lytte på en bestemt port for tilkoblingen.For eksempel:
$ nc -l 1234
nc er nå lytter på port 1234 for en tilkobling., På en annen konsoll (eller en annen maskin), koble til maskinen og porten blir listenedon:
$ nc 127.0.0.1 1234
Det bør nå være en sammenheng mellom portene. Noe skrevet på den andre konsollen vil bli satt til den første, og vice-versa. Etter theconnection har blitt satt opp, nc ikke virkelig bryr, som siden blir brukt som en «server» og som siden blir brukt som en ‘klient’. Den connectionmay avsluttes med en EOF (‘^D’).
dataoverføring
eksemplet i forrige avsnitt kan bli utvidet til å bygge en grunnleggende data overføring modell., All informasjon input i den ene enden av forbindelsen vil beoutput til den andre enden, og inndata og-utdata kan lett bli tatt for å etterligne filoverføring.
Begynn ved hjelp av nc for å høre på en bestemt port, med utgang tatt inn en fil:
$ nc -l 1234 > filnavn.ut
du Bruker en annen maskin, må du koble til lytting nc prosessen, fôring den filen som skal overføres:
$ nc host.example.com 1234 < filnavn.i
Når filen er overført, vil tilkoblingen lukkes automatisk.,
Snakker Til Servere
Det er noen ganger nyttig å snakke for å servere «for hånd», snarere enn gjennom et brukergrensesnitt. Det kan hjelpe i feilsøking, da det kan være nødvendig toverify hvilke data en server sender svar på kommandoer utstedt av klienten. For eksempel, for å hente hjem side av et web-område:
$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80
Merk at dette også viser overskrifter som sendes av en web-server. De kan være filtrert, ved hjelp av et verktøy som for eksempel sed(1), om nødvendig.
Mer kompliserte eksempler kan være bygget opp når brukeren kjenner format forespørsler kreves av serveren., Som et annet eksempel, en e-post kan være submittedto en SMTP-server ved å bruke:
– Port Skanning
Det kan være nyttig å vite hvilke porter som er åpne og tjenester som kjører på måldatamaskinen. De -z flagget kan brukes til å fortelle nc for å rapportere openports, snarere enn å opprette en tilkobling. For eksempel:
portområdet som ble spesifisert for å begrense søket til porter som er 20 – 30.
Alternativt, kan det være nyttig å vite hvilken server-programvare er i gang, og hvilke versjoner. Denne informasjonen er ofte finnes i greetingbanners., For å hente disse, er det nødvendig å først opprette en tilkobling, og deretter bryte forbindelsen når banneret er hentet. Dette kan beaccomplished ved å angi en liten timeout med -w flagg, eller kanskje ved å utstede en «AVSLUTT» – kommandoen til server:
Eksempler på
Åpne en TCP-forbindelse til port 42 host.example.com bruke port 31337 som kilde port, med et tidsavbrudd på 5 sekunder:
$ nc -p 31337 -w 5 host.example.com 42
Åpne en UDP forbindelse til port 53 host.example.com:
$ nc -u host.example.com 53
Åpne en TCP-forbindelse til port 42 av verten.,example.com ved hjelp av 10.1.2.3 som IP-for den lokale enden av forbindelsen:
$ nc -s 10.1.2.3 host.example.com 42
Lage og lytte på en Unix-Domene Socket:
$ nc -lU /var/tmp/dsocket
Koble til port 42 host.example.com via en HTTP-proxy på 10.2.3.4, port 8080. Dette eksemplet kan også brukes av ssh(1); se ProxyCommanddirective i ssh_config(5) for mer informasjon.
$ nc -x10.2.3.4:8080 -Xconnect host.example.com 42
Se Også:
katt(1), ssh(1)
Forfattere
Opprinnelige implementeringen av *Hobbiten* <hobbiten@avian.,org>.
Omskrevet med IPv6 støtte av Eric Jackson <[email protected]>.
Begrensninger
UDP-port skanner vil alltid lykkes (dvs. rapport port som åpnes), rendering -uz kombinasjon av flagg relativt ubrukelig.
BSD August 22, 2006 BSD