Sådan bruges netstat i GNU / Linux

Netstat er et meget kraftfuldt værktøj, der viser en liste over alle TCP- og UDP-forbindelser, samt unix-stikforbindelser, der i øjeblikket lytter til forbindelser såvel som i øjeblikket tilsluttede. Mens mange hjemmebrugere muligvis ikke nødvendigvis behøver at bekymre sig om dette, er online-spillere eller enhver, der har til hensigt at være vært for enhver form for server i fremtiden, sikkert på et tidspunkt nødvendigt at håndtere porte.

Netstat er også nyttigt til sikkerhed og fortrolighed, for eksempel til at finde ud af, hvilke programmer 'taler' til Internettet.

Brug af netstat kan være en ekstremt enkel proces, eller det kan blive meget kompliceret og tungt, afhængigt af brugen; så i dag vil vi se på nogle af de mere almindelige anvendelser til Netstat.

Som lovet (i min artikel ' Hvordan finder jeg mine netværksoplysninger i Linux ? ') Jeg vil introducere dig til netstat-kommandoen. Denne kommando er et meget nyttigt værktøj til at opdage netværksoplysninger såsom routingtabeller, netværksforbindelser, interfacestatistik, maskerade-forbindelser og multicast-medlemskab. Men det er ikke så simpelt at bruge som nogle af de andre 'opdagelses' værktøjer (som ifconfig). Med netstat har du virkelig brug for at vide, hvad du leder efter, og hvordan du finder det. Denne artikel hjælper dig med at forstå netop det.

Installation?

Heldigvis skulle din distribution komme med netstat kommando forudinstalleret. For at kontrollere dette skal du åbne et terminalvindue (det er her du alligevel vil bruge netstat) og udstede kommandoen hvilket netstat . Denne kommando skal returnere noget lignende / Bin / netstat . Det vil fortælle dig, at værktøjet er installeret, og hvor det eksekverbare er.

Grundlæggende om Netstat

Den grundlæggende netstat-kommando ser sådan ud:

netstat ARGUMENT VALG

Hvor ARGUMENT er den type adressefamilie, du vil have oplysninger om, og OPTIONS er den eller de valgfri optioner, der specificerer den type information, du får tilbage.

Fordi netstat tilbyder en sådan række forskellige muligheder, kan det være bedst, hvis jeg først angiver nogle af de mere nyttige indstillinger.

  • til : Viser status for alle stik og routingtabelindgange.
  • c : Vis information kontinuerligt.
  • d : Vis status for alle grænseflader, der bruger DHCP.
  • er : Vis udvidet information.
  • g : Vis oplysninger om medlemskab af multicast-gruppen for både IPv4 og IPv6.
  • jeg : Vis en tabel med alle netværksinferfaces.
  • l : Begræns statistikker til en defineret grænseflade.
  • M : Vis routingtabeller for multicast.
  • n : Viser netværksadresser som numre i stedet for standardsymbolerne.
  • p : Vis adresseløsningstabeller.
  • P : Begræns statistikker til en defineret protokol.
  • r : Vis alle rutetabeller.
  • t : Vis TCP-forbindelser.
  • u : Vis UDP-forbindelser.
  • v : Brug ordret tilstand til output.

Så lad os tage et kig og se, hvordan disse kan bruges sammen.

netstat

I sig selv (ingen indstillinger) udskriver denne kommando generiske statistikker over den vært, du i øjeblikket er forbundet med.

netstat -an

Denne kommando viser alle forbindelser til værten, inklusive kilde- og destinationsadresser og porte, og viser dem som numre.

netstat -rn

Denne kommando viser routingtabellen for værten i numerisk form.

netstat -r

Denne kommando viser din routingtabel for din vært.

netstat -natp

Denne kommando viser aktive TCP-forbindelser i numerisk form.

netstat -t - lytter

Dette viser dig alle tcp-porte, som du er vært for, lytter til.

netstat - statistik

Denne kommando viser forskellige statistikker for din værts grænseflader. Bemærk, at denne kommando viser en masse statistik.

Som du kan se, vil denne kommando vise en hel del information. Derudover skal du muligvis ringe denne kommando gennem den mindre kommando for at se den lettere. Den fulde kommando ville se ud som netstat - statistik | mindre. Hvis du bruger det på den måde, kan du bruge dine piletaster til at rulle op og ned gennem ouput.

Brugstips til Netstat

En af de mest basale og almindelige måder at bruge netstat på er at kontrollere, hvilke porte der lytter

  • netstat -l

Hvilket giver sådan noget på mit nyligt installerede Antergos-system

netstat -l

Eller, hvis du ønsker at fokusere din søgning lidt mere, kan du tilføje en anden mulighed for at sortere specifikt for forskellige typer forbindelser

  • netstat -lt # for TCP
  • netstat -lu # for UDP
  • netstat -lx # til Unix

Eller du kan gå på den komplette modsatte ende af spektret og angive alle forbindelser

  • netstat -a

Hvis du foretrækker det, er en anden indstilling, der kan være nyttig at huske, at bruge indstillingen 'n'. Når du f.eks. Bruger netstat -n eller netstat -ltn, prøver alle værtsnavne ikke længere at blive løst, og kun IP-adresser vises, som i eksemplet nedenfor.

netstat-ltn

Som du kan se, blev localhost i navn løst til dens numeriske værdi efter brug af indstillingen 'n'

En anden måde at bruge netstat er netstat -ie, 'i' til grænseflader og 'e' til 'udvidet', som vil hjælpe med at give os en mere menneskelig læsbar output.

netstat -ie # Dette viser os en liste over netværksgrænseflader og oplysninger om hver enhed.

netstat ie

Avancerede Netstat-tip

Hvad vi vil gøre, er at fortælle netstat at give os output til specifikke applikationer, der lytter til tcp-forbindelser. For at gøre dette udsteder vi kommandoen:

  • netstat --tcp - lytte - programmer

Outputet til denne kommando ser ud som:

Proto Recv-Q Send-Q Lokal adresse Udenrigsadresse PID / Program
tcp 0 0 *: ssh *: * LYTT 25469 / sshd
tcp 0 0 *: httpd *: * LYST 26754 / httpd
tcp 0 0 localhost: ipp *: * LISTEN -

Nu kan du faktisk se nogle nyttige oplysninger. I ovenstående output kan du se, at både sshd og httpd lytter efter indgående forbindelser. Ovenstående er bare et uddrag af, hvordan output kan se ud. Det, der er meget praktisk ved denne kommando, er, at det viser dig, om der er en kommando eller lokal adresse, der lytter til indkommende forbindelser, der ikke burde lytte. Hvis du finder et program, der ikke bør lytte, skal du dræbe det for at være sikkert.

Rute

Netstat er i stand til hurtigt at udskrive dine maskiners kerne routingtabel med kommandoen:

netstat -r

Output fra denne kommando vil se ud:

Kernel IP-routingtabel
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
standard 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Statistikker

Dette er en af ​​de mange forskellige netstat-værktøjer. Med dette kan du finde ud af nøjagtigt statistikken for hver protokol. Den grundlæggende kommandostruktur er:

netstat - statistik

hvilket vil give dig langt mere information end du ønsker. Sig, du vil kun se statistikker over TCP-protokollen. Til dette kan du udstede kommandoen:

netstat -t - statistik

Outputet til ovennævnte kommando vil indeholde information såsom:

tCP:
4343 åbninger med aktive forbindelser
8 passive forbindelsesåbninger
5 mislykkede forbindelsesforsøg
178 modtagne nulstillingsforbindelser
6 forbindelser etableret
59075 modtagne segmenter
60033 segmenter sendes ud
76 segmenter videresendes
0 modtagne segmenter.
303 nulstillinger sendt

Eller du kan også få information om UDP med kommandoen:

netstat -u - statistik

Hvilket ville give dig lignende output til UDP-protokollen.

Bliv kreativ

Hvad hvis du ville se alle unikke IP-adresser, der er forbundet til en server? Du kan gøre det med netstat (og ved hjælp af et par andre værktøjer) som sådan:

netstat -nat | awk '{print $ 5}' | klip -d: -f1 | sed -e '/ ^ $ / d | Uniq

Outputet fra ovennævnte kommando afhænger af, hvor meget trafik din maskine / server får. Men det vil omfatte alle unikke IP-adresser, der forsøger at oprette forbindelse til din server.

Hvad med at kontrollere, om din server er under et DOS-angreb? Du kan gøre det med netstat som dette:
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' | klip -d: -f1 | sorter | uniq -c | sortere -n

Ovenstående kommando viser IP-adresserne, der anmoder om den største mængde forbindelser til din server. Hvis du ser et tal, der er langt højere end det burde være, er du sandsynligvis under et Denial of Service-angreb.

Endelige tanker

Netstat er et af disse værktøjer, som du aldrig virkelig tror, ​​du har brug for, indtil du pludselig gør det; og det er altid godt at vide, hvordan man bruger det, hvis behovet nogensinde opstår mindst på et eller andet grundlæggende niveau. For mere information om, hvordan du bruger netstat-kommandoen og dens muligheder, tjek man-sidene ved at skrive mand netstat .

Din tur: Hvad er dit foretrukne værktøj til kontrol af netværksoplysninger, og hvorfor? Fortæl os det i kommentarerne!

Relaterede artikler