Site Overlay

nc(1) – Linux man page

Name

nc-godtyckliga TCP och UDP-anslutningar och lyssnar

Synopsis

nc]

beskrivning

nc (eller netcat) verktyget används för nästan vad som helst under solen som involverar TCP eller UDP. Det kan öppna TCP-anslutningar, skicka UDP-paket, lyssna på godtyckliga TCP-och UDP-portar, göra portskanning och hantera både IPv4 och IPv6. Till skillnad från telnet(1), nc-skript snyggt och separerar felmeddelanden på standardfel istället för att skicka dem till standardutmatning, som telnet(1) Gör med vissa.,

vanliga användningsområden är:

 • simple TCP proxies

• shell-script baserade HTTP-klienter och servrar
• network daemon testing
• a SOCKS eller HTTP ProxyCommand for SSH(1)
• och mycket, mycket mer

alternativen är följande:

-4′ tvingar nc att endast använda IPv4-adresser.

-6′ tvingar nc att endast använda IPv6-adresser.

-d’ aktivera felsökning på uttaget.

-d’ försök inte läsa från stdin.

-h’ skriver ut nc help.

-i-intervall
anger ett fördröjningstidsintervall mellan textrader som skickas och tas emot., Orsakar också en fördröjningstid mellan anslutningar till flera portar.

-k’ tvingar nc att fortsätta lyssna efter en annan anslutning efter att dess nuvarande anslutning är klar. Det är ett fel att använda det här alternativet utanl-alternativet.

-l’ används för att ange att nc ska lyssna efter en inkommande anslutning i stället för att initiera en anslutning till en fjärrvärd. Det är ett fel att användadetta alternativ i samband med alternativen-p, -s eller-z. Dessutom ignoreras alla tidsgränser som anges med-w-alternativet.

-n’ gör inga DNS-eller serviceuppslagningar på angivna adresser, värdnamn eller portar.,

-p source_port
anger Källporten nc ska använda, med förbehåll för behörighetsbegränsningar och tillgänglighet. Det är ett fel att använda det här alternativet i samband med-L-alternativet.

-r’ anger att källportar och/eller destinationsportar ska väljas slumpmässigt istället för sekventiellt inom ett intervall eller i den ordning som systemet tilldelar dem.

-s’ aktiverar RFC 2385 TCP MD5 signaturalternativ.

-s source_ip_address
anger IP för gränssnittet som används för att skicka paketen. Det är ett fel att använda det här alternativet i samband med-L-alternativet.,

-c’ Send CRLF as line-ending

– t ’ orsakar nc att skicka RFC 854 inte och kommer inte svar på RFC 854 göra och kommer förfrågningar. Detta gör det möjligt att använda NC till scripttelnet sessioner.

-U’ anger att använda UNIX-Domänuttag.

-u’ använd UDP istället för standardalternativet för TCP.

-v’ har nc ger mer utförlig utgång.

-w timeout
om en anslutning och stdin är inaktiv i mer än timeout sekunder, är anslutningen tyst stängd. Flaggan-w har ingen effekt på-l-alternativet, dvs. nc kommer att lyssna för alltid för en anslutning, med eller utan-w-flaggan., Standard är ingen timeout.

-X proxy_address
begär att nc ska ansluta till värdnamn med en proxy på proxy_address och port. Om porten inte anges, denvälkänt port för proxyprotokollet används (1080 för strumpor, 3128 för HTTPS).

-z’ anger att nc bara ska söka efter lyssnande demoner, utan att skicka några data till dem. Det är ett fel att använda det här alternativet ifunktion med-L-alternativet.

värdnamn kan vara en numerisk IP-adress eller ett symboliskt värdnamn (om inte-n-alternativet anges)., I allmänhet måste ett värdnamn anges, såvida inte-l-alternativet anges (i vilket fall den lokala värden används).

port kan vara enstaka heltal eller intervall. I allmänhet måste en destination port anges, om inte-Uoption ges (i vilket fall ett uttag måste anges).

klient/SERVERMODELL

det är ganska enkelt att bygga en mycket grundläggande klient / servermodell med nc. På en konsol, börja nc lyssna på en viss port för en anslutning.Till exempel:

$ nc-l 1234

nc lyssnar nu på port 1234 för en anslutning., På en andra konsol (eller en andra maskin), Anslut till maskinen och porten som listenedon:

$ nc 127.0.0.1 1234

det borde nu finnas en anslutning mellan portarna. Allt som skrivs på den andra konsolen kommer att sammanfogas till den första och vice versa. När anslutningen har upprättats bryr sig nc inte riktigt om vilken sida som används som en ”server” och vilken sida som används som en ”klient”. Anslutningen kan avslutas med ett EOF (’^D’).

dataöverföring

exemplet i föregående avsnitt kan utökas för att bygga en grundläggande dataöverföringsmodell., All information som matas in i ena änden av anslutningen kommer att varautmatning till den andra änden, och ingång och utgång kan enkelt fångas för att efterlikna filöverföring.

börja med att använda nc för att lyssna på en specifik port, med utdata som fångas in i en fil:

$ nc-l 1234 > filnamn.out

med en andra maskin ansluter du till lyssnings-nc-processen och matar den filen som ska överföras:

$ nc host.example.com 1234 < filename.in

Efter att filen har överförts stängs anslutningen automatiskt.,

prata med servrar

det är ibland användbart att prata med servrar ”för hand” snarare än via ett användargränssnitt. Det kan hjälpa till vid felsökning, när det kan vara nödvändigt attverifiera vilka data en server skickar som svar på kommandon som utfärdats av klienten. Till exempel, för att hämta startsidan för en webbplats:

$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

Observera att detta också visar rubrikerna som skickas av webbservern. De kan filtreras med hjälp av ett verktyg som sed(1), om nödvändigt.

mer komplicerade exempel kan byggas upp när användaren känner till formatet på förfrågningar som krävs av servern., Som ett annat exempel kan ett e-postmeddelande skickas till en SMTP-server med:

portskanning

det kan vara användbart att veta vilka portar som är öppna och kör tjänster på en målmaskin. Flaggan-z kan användas för att berätta för nc att rapportera openports, snarare än att initiera en anslutning. Till exempel:

portintervallet angavs för att begränsa sökningen till portarna 20 – 30.

Alternativt kan det vara bra att veta vilken serverprogramvara som körs och vilka versioner. Denna information finns ofta inom hälsningenbanderoller., För att hämta dessa är det nödvändigt att först göra en anslutning och sedan bryta anslutningen när bannern har hämtats. Detta kan kompletteras genom att ange en liten timeout med-W-flaggan, eller kanske genom att utfärda ett” Avsluta ” – kommando till servern:

exempel

öppna en TCP-anslutning till port 42 av host.example.com, med port 31337 som källport, med en timeout på 5 sekunder:

$ nc-p 31337-w 5 host.example.com 42

öppna en UDP-anslutning till port 53 av host.example.com:

$ nc-u host.example.com 53

öppna en TCP-anslutning till port 42 av host.,example.com använda 10.1.2.3 som IP för den lokala änden av anslutningen:

$ nc-s 10.1.2.3 host.example.com 42

skapa och lyssna på ett Unix-Domänuttag:

$ nc-lU/var/tmp / dsocket

Anslut till port 42 av host.example.com via en HTTP-proxy på 10.2.3.4, port 8080. Detta exempel kan även användas av ssh(1), se ProxyCommanddirective i ssh_config(5) för mer information.

$ nc-x10. 2. 3. 4: 8080-Xconnect host.example.com 42

Se även

cat(1), SSH(1)

författare

ursprungliga genomförandet av *Hobbit* <hobbit@avian.,org>.
skrivas om med IPv6 stöd av Eric Jackson <[email protected]>.

varningar

UDP-portskanningar kommer alltid att lyckas (dvs. rapportera porten som öppen), vilket gör-uz-kombinationen av flaggor relativt värdelös.

BSD 22 augusti 2006 BSD

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *