Navn
nc – vilkårlig TCP-og UDP-forbindelser og lytter
Oversigt
nc ] ]
Beskrivelse
nc (eller netcat) værktøj bruges til næsten alt under solen, der involverer TCP eller UDP. Det kan åbne TCP-forbindelser, sende UDP-pakker, lytte på vilkårlige TCP – og UDP-porte, foretage portscanning og håndtere både IPv4 og IPv6. I modsætning til telnet(1), nc-scripts pænt, og adskiller errormessages på standard fejl i stedet for at sende dem til standard output, som telnet(1) ikke med nogle.,
Fælles formål omfatter:
• simple TCP proxies
• shell-script-baseret HTTP klienter og servere
• netværk daemon test
• et SOKKER eller HTTP ProxyCommand til ssh(1)
• og meget, meget mere
indstillinger er som følger:
-4 ” Kræfter, nc til at bruge IPv4-adresser kun.
-6 ‘ tvinger nc til kun at bruge IPv6-adresser.
-d’ aktiver fejlfinding på stikket.
-d’ forsøg ikke at læse fra stdin.
-h’ udskriver nc hjælp.
-i interval
angiver en forsinkelse tidsinterval mellem linjer af tekst sendt og modtaget., Forårsager også en forsinkelsestid mellem forbindelser til flere porte.
-K’ tvinger nc til at blive ved med at lytte til en anden forbindelse, efter at den aktuelle forbindelse er afsluttet. Det er en fejl at bruge denne indstilling udenindstillingen-l.
-l’ bruges til at angive, at nc skal lytte efter en indgående forbindelse i stedet for at starte en forbindelse til en ekstern vært. Det er en fejl at brugeDenne mulighed i forbindelse med indstillingerne-p,- s eller-options. Derudover ignoreres alle timeouts, der er angivet med indstillingen-option.
-n’ du må ikke gøre nogen DNS eller service opslag på nogen angivne adresser, værtsnavne eller porte.,
-p source_port
angiver, hvilken kildeport nc skal bruge, med forbehold for begrænsninger og tilgængelighed. Det er en fejl at bruge denne indstilling i forbindelse med-L-indstillingen.
-r’ angiver, at kilde-og / eller destinationsporte skal vælges tilfældigt i stedet for sekventielt inden for et område eller i den rækkefølge, som systemet tildeler dem.
-s’ aktiverer RFC 2385 TCP MD5 signatur mulighed.
-s source_ip_address
angiver IP ‘ en for den grænseflade, der bruges til at sende pakkerne. Det er en fejl at bruge denne indstilling i forbindelse med-L-indstillingen.,
-C’ Send CRLF som line-ending
-t’ Årsager nc til at sende RFC 854 IKKE, og VIL IKKE svar på RFC 854 GØRE, og VIL anmodninger. Dette gør det muligt at bruge nc til scripttelnet sessioner.
-U’ angiver at bruge Uni. – Domænestik.
-u’ Brug UDP i stedet for standardindstillingen for TCP.
-v’ har nc giver mere verbose output.
-Tim timeout
Hvis en forbindelse og stdin er inaktiv i mere end timeout-sekunder, lukkes forbindelsen lydløst. – Flag-flaget har ingen effekt på-L-indstillingen, dvs.nc vil lytte for evigt for en forbindelse, med eller uden -. – flaget., Standard er ingen timeout.
-x proxy_address
Anmoder om, at nc bør oprette forbindelse til værtsnavn ved hjælp af en proxy på proxy_address og port. Hvis port ikke er angivet, bruges denkendt port til Pro .y-protokollen (1080 til sokker, 3128 til HTTPS).
-Specifies’ angiver, at nc bare skal scanne efter lyttende dæmoner uden at sende nogen data til dem. Det er en fejl at bruge denne indstilling ifunktion med indstillingen-l.
værtsnavn kan være en numerisk IP-adresse eller et symbolsk værtsnavn (medmindre-n-indstillingen er angivet)., Generelt skal et værtsnavn angives, medmindre-l-indstillingen er angivet (i hvilket tilfælde den lokale vært bruges).
port kan være enkelt heltal eller intervaller. Områder er i form nn-mm. Generelt skal en destinationsport angives, medmindre-valgmulighed er angivet (i hvilket tilfælde en sokkel skal angives).
klient/SERVERMODEL
det er ganske enkelt at opbygge en meget grundlæggende klient / servermodel ved hjælp af nc. På en konsol skal du starte nc-lytning på en bestemt port for en forbindelse.For eksempel:
$ nc-l 1234
nc lytter nu på port 1234 for en forbindelse., På en anden konsol (eller en anden maskine) skal du oprette forbindelse til maskinen og porten, der lyttespå:
$ NC 127.0.0.1 1234
der skulle nu være en forbindelse mellem portene. Alt, hvad der er skrevet på den anden konsol, vil blive sammenkædet til den første og vice versa. Når forbindelsen er konfigureret, er nc ligeglad med, hvilken side der bruges som’ server’, og hvilken side der bruges som’klient’. Forbindelsen kan afsluttes ved hjælp af en EOF (‘^D’).
dataoverførsel
eksemplet i det foregående afsnit kan udvides til at opbygge en grundlæggende dataoverførselsmodel., Enhver information input i den ene ende af forbindelsen vil væreoutput til den anden ende, og input og output kan let indfanges for at efterligne filoverførsel.
Start med at bruge nc til at lytte på en bestemt port, med output fanget i en fil:
$ NC-l 1234 > filnavn.ud
brug en anden maskine til at oprette forbindelse til den lyttende nc-proces og fodre den den fil, der skal overføres:
$ NC host.example.com 1234 < filename.in
Når filen er overført, lukkes forbindelsen automatisk.,
at tale med servere
det er undertiden nyttigt at tale med servere “for hånd” snarere end gennem en brugergrænseflade. Det kan hjælpe med fejlfinding, når det kan være nødvendigt atbekræft hvilke data en server sender som svar på kommandoer udstedt af klienten. For eksempel for at hente startsiden på et webebsted:
$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80
Bemærk, at dette også viser overskrifterne sendt af webebserveren. De kan om nødvendigt filtreres ved hjælp af et værktøj som sed(1).
mere komplicerede eksempler kan opbygges, når brugeren kender formatet af anmodninger, der kræves af serveren., Som et andet eksempel kan en e-mail indsendestil en SMTP-server ved hjælp af:
portscanning
det kan være nyttigt at vide, hvilke porte der er åbne og kører tjenester på en målmaskine. – Flag flag kan bruges til at fortælle nc at rapportere openports, snarere end at starte en forbindelse. For eksempel:
portområdet blev specificeret for at begrænse søgningen til Porte 20 – 30.
Alternativt kan det være nyttigt at vide, hvilken serversoft .are der kører, og hvilke versioner. Disse oplysninger er ofte indeholdt i hilsenbannere., For at hente disse er det nødvendigt først at oprette forbindelse og derefter bryde forbindelsen, når banneret er hentet. Dette kan beaccomplished ved at angive en lille timeout med -w flag, eller måske ved at udstede en “AFSLUT” – kommando til serveren er:
Eksempler
Åbn en TCP-forbindelse til port 42 host.example.com, ved hjælp af port 31337 som kilde til havnen, med en timeout på 5 sekunder:
$ nc -p 31337 -w 5 host.example.com 42
Åbn en UDP forbindelse til port 53 host.example.com:
$ nc -u host.example.com 53
Åbn en TCP-forbindelse til port 42 af vært.,example.com hjælp 10.1.2.3 som IP til den lokale ende af forbindelsen:
$ nc -s 10.1.2.3 host.example.com 42
Oprette og lytte på en Unix Domain Socket:
$ nc -lU /var/tmp/dsocket
oprette Forbindelse til port 42 host.example.com via en HTTP-proxy på 10.2.3.4, port 8080. Dette eksempel kunne også bruges af ssh (1); se Pro .ycommanddirective i ssh_config(5) For mere information.
$ nc -x10.2.3.4:8080 -Xconnect host.example.com 42
Se Også
kat(1), ssh(1)
Forfattere
Oprindelige gennemførelse af *Hobbit* <hobbit@aviær.,org>.
Omskrevet med IPv6 support af Eric Jackson <[email protected]>.
advarsler
UDP-portscanninger vil altid lykkes (dvs.rapportere porten som åben), hvilket gør-u. – kombinationen af flag relativt ubrugelig.
BSD 22. August 2006 BSD