Welcome to Our Website

Linux-nc-kommandoen

Oppdatert: 03/06/2020 av Datamaskinen Håper

På Unix-lignende operativsystemer, nc kommandoen kjører Netcat, som er et verktøy for å sende rådata via en nettverkstilkobling.

Dette dokumentet dekker Linux-versjon av nc.

Beskrivelse

Netcat er et verktøy som leser og skriver data på tvers av nettverk-tilkoblinger, ved å bruke TCP eller UDP-protokollen. Den er designet for å være en pålitelig «back-end» – verktøyet som kan brukes direkte eller drevet av andre programmer og skript., På samme tid, det er en funksjonsrik nettverk-feilsøking og lete-verktøy siden det kan skape nesten alle slags tilkobling du vil trenge, og har flere interessante innebygde funksjonene. Vanlige bruksområder er:

  • Enkel TCP proxyer
  • Shell-script-basert HTTP-klienter og servere
  • Nettverk daemon testing
  • En Sokker eller HTTP ProxyCommand for ssh

Syntaks

Valg

-4 Styrker nc å bruke IPv4-adresser bare.
-6 Styrker nc for å bruke IPv6-adresser bare.,
-b Tillate kringkasting.
-C Send CRLF som linje-forhold.
D Aktiver-feilsøking på sokkelen.
d Gjør ikke forsøk på å lese fra stdin.
h Skriver ut nc hjelp.
-jeg lengde Angir størrelsen på TCP motta buffer.
-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 uten -l-alternativet.
-l Brukes til å angi at nc bør lytte etter innkommende tilkobling snarere enn å opprette en tilkobling til en ekstern vert. Det er en feil å bruke dette alternativet 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.,
-O lengde Angir størrelsen på TCP sende buffer.
-P proxy_username Angir et brukernavn for å presentere en proxy-server som krever godkjenning. Hvis du ikke brukernavn er angitt deretter godkjenning vil ikke bli forsøkt. Proxy-godkjenning støttes bare for HTTP KOBLE fullmakter i dag.
-p source_port Angir kilde port nc bør bruke, i henhold til endring av restriksjoner og tilgjengelighet.,
-q sekunder etter EOF på stdin, venter det angitte antallet sekunder, og deretter avslutte. Hvis sekunder er negative, vente for alltid.
-r Angir at kilden eller destinasjonen porter bør velges tilfeldig i stedet for sekvensielt innenfor et område eller i den rekkefølgen som systemet tildeler dem.
-R Kan RFC 2385 TCP MD5 signatur alternativ.
-s kilde Angir IP-grensesnittet som brukes til å sende pakker., For UNIX-domene datagram stikkontakter, angir lokal midlertidige kontakt-fil til å opprette og bruke, slik at datagrammer kan bli mottatt. Det er en feil å bruke dette alternativet i forbindelse med -l-alternativet.
-T toskeyword Endre IPv4 TOS-verdi. toskeyword kan være en av kritisk, inetcontrol, lowcost, lowdelay, netcontrol, kapasitet, pålitelighet, eller en av de DiffServ Kode Poeng: ef, af11 … af43, cs0 … cs7, eller et nummer i hex eller desimaltall.
-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 å skrive telnet-økter.
-R Angi for å bruke UNIX-domene stikkontakter.
-r Bruk UDP-i stedet for standardvalget av TCP. For UNIX-domene stikkontakter, bruk en datagram socket i stedet for en strøm i stikkontakten. Hvis en UNIX-domene kontakten er brukt, et midlertidig mottak kontakten er opprettet i /tmp-mindre -s-flagget er gitt.
-V rtable Angi ruting-tabellen for å bli brukt. Standard er 0.
-v Har nc gi mer detaljert utgang.,
-w timeout Tilkoblinger som ikke er etablert eller er inaktiv tidsavbrudd tidsavbrudd sekunder. 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_protocol ber om at nc bør bruke den angitte protokollen når du snakker til proxy-serveren. Støttede protokoller er «4» (SOKKER v. 4), «5» (SOKKER v. 5) og «koble» (HTTPS proxy). Dersom protokollen ikke er angitt, SOKKER versjon 5 er brukt.,
-x proxy_address ber om at nc skal koble til destinasjonen ved hjelp av en proxy på proxy_address og port. Hvis porten ikke er angitt, den velkjente porten til proxy-protokoll som brukes (1080 for SOKKER, 3128 for HTTPS).
-Z DCCP-modus.
-z Angir at nc bør bare skanner for å lytte daemons, uten å sende data til dem. Det er en feil å bruke dette alternativet i forbindelse med -l-alternativet.,

målet kan være en numerisk IP-adresse eller en symbolsk vertsnavn (mindre -n-alternativet er gitt). Generelt et mål må være spesifisert, med mindre de -l-alternativet er angitt (i hvilket tilfelle den lokale verten er brukt). For UNIX-domene stikkontakter, en destinasjon som er nødvendig og er kontakten banen for å koble til (eller høre på hvis -l-alternativet er gitt).

– port kan være et enkelt heltall eller et utvalg av porter. Områdene er i form nn-mm. Generelt, er en destinasjon port må være spesifisert, med mindre -U alternativet er gitt.,

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 lyttet på:

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 den forbindelse ble satt opp, nc ikke virkelig bryr, som siden blir brukt som en «server» og som siden blir brukt som en ‘klient’. Tilkoblingen kan bli avsluttet med en EOF (‘^D’).

Det er ingen -c eller -e alternativ i moderne netcat, men du fortsatt kan utføre en kommando etter at forbindelsen blir etablert ved å omdirigere filen beskrivelsene. Vær forsiktig her fordi du åpner en port og la alle som er koblet utføre vilkårlig kommando på nettstedet er FARLIG., Hvis du virkelig trenger å gjøre dette, her er et eksempel:

På ‘server’ side:

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

On ‘client’ side:

nc host.example.com 1234

(skallet fra host.example.com)

Ved å gjøre dette, du oppretter en fifo på /tmp/f og gjøre nc lytte på port 1234 av adressen 127.0.0.1 på ‘server’ side, når en ‘klient’ etablerer en forbindelse med hell til at porten, /bin/sh blir utført på ‘server’ side, og skallet er gitt til ‘klient’ side.

Når tilkoblingen er avsluttet, nc slutter å fungere så godt., Bruk-k hvis du vil det holde å lytte, men hvis kommandoen avslutter dette alternativet vil ikke starte den på nytt eller holde nc kjører. Også, ikke glem å fjerne filen beskrivelse når du ikke trenger det lenger:

rm -f /tmp/f

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 være utgang 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 > filename.out

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 < filename.in

Når filen er overført, – 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 å kontrollere hvilke data en server sender svar på kommandoer utstedt av klienten. For eksempel, for å hente hjemmesiden til et nettsted:

printf "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, hvis det er 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 sendes til 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 åpne porter, snarere enn å opprette en tilkobling. Det er som regel nyttig å slå på detaljert utgang til stderr ved bruk dette alternativet sammen med -v-alternativet.

For eksempel slik:

nc -zv host.example.com 20-30
Connection to host.example.com 22 port succeeded!Connection to host.example.com 25 port succeeded!

portområdet som ble spesifisert for å begrense søket til porter som er 20 – 30, og er skannet ved stigende rekkefølge.,

Du kan også angi en liste over porter for å skanne, for eksempel:

nc -zv host.example.com 80 20 22

portene som er skannet ved hjelp av den rekkefølgen du har gitt.

Alternativt, kan det være nyttig å vite hvilken server-programvare er i gang, og hvilke versjoner. Denne informasjonen er ofte finnes i hilsen bannere. For å hente disse, er det nødvendig å først opprette en tilkobling, og deretter bryte forbindelsen når banneret ble hentet., Dette kan gjøres ved å spesifisere en liten timeout med -w flagg, eller kanskje ved å utstede en «AVSLUTT» – kommandoen til server:

echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready

Eksempler på

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

Åpner en TCP-forbindelse til port 42 host.example.com bruke port 31337 som kilde port, med et tidsavbrudd på 5 sekunder.

nc -u host.example.com 53

Åpner en UDP forbindelse til port 53 host.example.com.

nc -s 10.1.2.3 host.example.com 42

Åpner en TCP-forbindelse til port 42 host.example.com ved hjelp av 10.1.2.3 som IP-for den lokale enden av forbindelsen.,

nc -lU /var/tmp/dsocket

Oppretter og lytter på en UNIX-domene stream sokkelen.

nc -x10.2.3.4:8080 -Xconnect host.example.com 42

Kobles til port 42 host.example.com via en HTTP-proxy på 10.2.3.4, port 8080. Dette eksemplet kan også brukes av ssh.

nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

Det samme som i eksemplet ovenfor, men denne gangen aktivere proxy-autentisering med brukernavn «ruser» hvis proxy krever det.

ifconfig — Vise eller endre innstillingene for konfigurering av nettverkskort.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *