AllInfo

Hur man Använder netstat på Linux

Fatmawati Achmad Zaenuri/Shutterstock

Linux-kommandot netstat ger dig ett skattfynd av information om nätverksanslutningarna, de portar som är i bruk, och de processer som använder dem. Lär dig hur man använder det.

Portar, Processer och Protokoll

Nätverksuttag kan antingen anslutas eller väntar på en anslutning. Anslutningar använda nätverksprotokoll som Transport Control Protocol (TCP) eller UDP-User Datagram Protocol. De använder Internet Protocol-adresser och portar nätverk för att upprätta anslutningar.

Ordet uttag kan trolla fram bilder av en fysisk anslutning till en ledning eller kabel, men i detta sammanhang, en socket är en programvara för att bygga används för att hantera ena änden av en dataanslutning.

Uttag har två största staterna: De är anslutna till och underlätta en pågående kommunikationen på nätet, eller att de väntar på en inkommande anslutning för att ansluta till dem. Det finns andra stater, såsom när en socket är halvvägs genom att upprätta en anslutning på en fjärransluten enhet, men att sätta övergående stater åt sidan, kan du tänka på en socket som antingen är anslutna eller väntar (som ofta kallas att lyssna).

Lyssna uttaget kallas servern, och den socket som begär en anslutning med lyssna uttaget kallas för en klient. Dessa namn har ingenting att göra med hårdvara eller dator roller. De har helt enkelt definiera vilken roll varje uttag i vardera änden av anslutningen.

Netstat kommando låter dig upptäcka vilka uttag som är anslutna och som uttag är att lyssna. Mening, den talar om vilka portar som används och vilka processer kan använda dem. Det kan visa dig routing tabeller och statistik om ditt nätverkskort och multicast-anslutningar.

Funktionalitet netstat har upprepats över tid i olika Linux-verktyg, såsom ip-ss. Det är fortfarande värt att veta detta morfar av alla nätverk analys kommandon, eftersom den är tillgänglig på alla Linux-och Unix-liknande operativsystem, samt även för Windows och Mac.

Här är hur man använder det, komplett med exempel på kommandon.

Lista Alla Kontakter

Växeln-a (all) alternativet gör netstat visar alla anslutna och väntar uttag. Detta kommando är ansvarig för att producera en lång lista, så vi rör det inte i mindre.

netstat -a | mindre

Listan inkluderar TCP (IP), TCP6 (IPv6), och UDP-uttag.

Wrap-around i terminal-fönstret gör det lite svårt att se vad som pågår. Här är ett par av avsnitten från denna lista:

Aktiv Internet-anslutning (servrar och etablerade)
Proto Recv-Q-Skicka-Q Lokal Adress Utländsk Adress Staten
tcp 0 0 localhost:domän 0.0.0.0:* LYSSNA
tcp 0 0 0.0.0.0:ssh-0.0.0.0:* LYSSNA
tcp 0 0 localhost:ipp-0.0.0.0:* LYSSNA
tcp 0 0 localhost:smtp-0.0.0.0:* LYSSNA
tcp6 0 0 [::]:ssh [::]:* LYSSNA
tcp6 0 0 ip6-localhost:ipp [::]:* LYSSNA
.
.
.
Aktiv UNIX-domänen uttag (servrar och etablerade)
Proto RefCnt Flaggor Typ Stat I-Nod Väg
unix 24 [ ] DGRAM 12831 /run/systemd/tidning/dev-logga
unix 2 [ ACC ] STRÖM LYSSNA 24747 @/tmp/dbus-zH6clYmvw8
unix-2 [ ] DGRAM 26372 /run/user/1000/systemd/meddela
unix-2 [ ] DGRAM 23382 /run/user/121/systemd/meddela
unix 2 [ ACC ] SEQPACKET LYSSNA 12839 /run/udev/kontroll

Den “Aktiva Internet” avsnitt listar anslutna externa anslutningar och lokala uttag lyssna för anslutning önskemål. Som visas i nätverksanslutningar, som är (eller kommer att vara) etablerade på externa enheter.

Den “UNIX-domänen” listar anslutna och lyssna interna anslutningar. Med andra ord, den visas de anslutningar som har upprättats inom datorn mellan olika applikationer, processer och delar av operativsystemet.

Den “Aktiva Internet” kolumnerna är:

För TCP-anslutningar, staten värde kan vara ett av följande :

Den “Unix-domänen” kolumnerna är:

Unix-domänen uttag typ kan vara en av följande:

Unix-domänen socket staten kan vara en av följande:

Wow, det är en hel del information! Många av de netstat alternativ förfina resultaten på ett eller annat sätt, men de behöver inte ändra innehållet för mycket. Låt oss ta en titt.

Notering Uttag av Typ

Netstat -ett kommando kan ge mer information än du behöver för att se. Om du bara vill eller behöver se TCP-sockets, kan du använda de -t (TCP) alternativ för att begränsa visningen till att visa endast TCP-sockets.

netstat -i | mindre

Displayen ut är kraftigt reducerad. De få uttag som anges är alla TCP-sockets.

-U (UDP) och x (UNIX) alternativ beter sig på ett liknande sätt, begränsa resultaten till den typ av uttag som anges på kommandoraden. Här är den -u (UDP) alternativ användning:

netstat -au | mindre

Bara UDP-uttag är listade.

Notering Uttag av Staten

För att se de uttag som finns i att lyssna eller vänteläge, använd-l (lyssna) alternativ.

netstat -l | mindre

De uttag som visas är de som finns i att lyssna staten.

Detta kan kombineras med de-t (TCP, u (UDP) och x (UNIX) alternativ för att ytterligare hem för uttag av intresse. Låt oss titta för att lyssna TCP-sockets:

netstat -lt | mindre

Nu ser vi bara till TCP lyssna uttag.

Nätverket Statistik per Protokoll

För att se statistik för ett protokoll, använda växeln-s (statistik) och pass i -t (TCP), -u (UDP), eller -x (UNIX) alternativ. Om du bara använda-s (statistik) alternativet på egen hand, du kommer att se statistik för alla protokoll. Låt oss kolla statistiken för TCP-protokollet.

netstat -st | mindre

En insamling av statistik för TCP-anslutningar visas i mindre.

Visar Processen Namn och Ris

Det kan vara nyttigt att se på vilket process-ID (PID) av processen med hjälp av en sockel, tillsammans med namnet på denna process. -P (program) – alternativet gör just det. Låt oss se vad Pid och process namn för de processer som använder en TCP-socket som ligger i att lyssna staten. Vi använder sudo för att se till att vi får all information som är tillgänglig, inklusive information som normalt kräver root-behörighet.

sudo netstat -p -i

Här är produktionen i en överskådlig tabell:

Aktiv Internet-anslutning (servrar och etablerade)
Proto Recv-Q-Skicka-Q Lokal Adress Utländsk Adress Staten PID – /Program-namn
tcp 0 0 localhost:domän 0.0.0.0:* LYSSNA 6927/systemd-resolv
tcp 0 0 0.0.0.0:ssh-0.0.0.0:* LYSSNA 751/sshd
tcp 0 0 localhost:ipp-0.0.0.0:* LYSSNA 7687/cupsd: s
tcp 0 0 localhost:smtp-0.0.0.0:* LYSSNA 1176/master
tcp6 0 0 [::]:ssh [::]:* LYSSNA 751/sshd
tcp6 0 0 ip6-localhost:ipp [::]:* LYSSNA 7687/cupsd: s
tcp6 0 0 ip6-localhost:smtp [::]:* LYSSNA 1176/master

Vi har fått en extra kolumn som heter “PID – /program-namn.” Denna kolumn listar PID och namn på processen med hjälp av varje uttag.

Notering Numeriska Adresser

Ett annat steg vi kan ta för att ta bort en viss tvetydighet är att visa den lokala och fjärr-adresser IP-adresser i stället för löst domän och värdnamn. Om vi använder-n (numeriska) alternativet IPv4-adresser visas i punktdecimalform format:

sudo netstat -an | mindre

IP-adresser visas som numeriska värden. Portnummer visas också, separerade med ett kolon ” : “från den IP-Adressen.

En IP-adressen 127.0.0.1 visar att uttaget är bundna till loopback-adressen till den lokala datorn. Kan du tänka dig en IP-adress 0.0.0.0 som betyder “default route” för lokala adresser, och “IP-adress” för utländska adresser. IPv6-adresser som visas som “::” är också alla noll-adresser.

De hamnar som finns kan lätt kontrolleras för att se vad deras vanliga ändamål är:

RELATERAT: Vad är Skillnaden Mellan 127.0.0.1 och 0.0.0.0?

Visa Routing-Tabellen

-R (rutt) alternativet visas kärnan routing-tabellen.

sudo netstat -r

Här är produktionen i en snygg tabell:

Kärnan IP-routningstabellen
Destination Gateway Genmask Flaggor MSS Fönster irtt Iface
standard Kraft.router 0.0.0.0 UG 0 0 0 enp0s3
länk-lokal 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3
192.168.4.0 255.255.255.0 0.0.0.0 U 0 0 0 enp0s3

Och här är vad de kolumner menar:

Flaggorna värde kan vara något av följande:

Att hitta den Port som Används av en Process

Om vi rör produktionen av netstat genom grep, kan vi söka efter en process med namn och identifiera den port som den är att använda. Vi använda växeln-a (all), -n (numeriskt) och p (program) som tidigare använts, och sök efter “sshd.”

sudo netstat -anp | grep “sshd”

grep hittar målet sträng, och vi ser att sshd-demon är med port 22.

Vi kan naturligtvis också göra detta i omvänd. Om vi söker på “:22”, vi kan ta reda på vilken process som använder den porten, om någon.

sudo netstat -anp | grep “:22”

Den här gången grep finner “:22” target sträng, och vi ser att processen och använda denna port är sshd-demon, process-ID 751.

Lista Nätverksgränssnitt

-Jag (gränssnitt) alternativ kommer att visa en tabell över de nätverksgränssnitt som netstat kan upptäcka.

sudo netstat -jag

Här är produktionen på ett mer läsbart sätt:

Kärnan Gränssnitt tabell
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR-TX-DRP TX-OVR Flg
enp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRU
lo 65536 30175 0 0 0 30175 0 0 0 LRU

Detta är vad kolumner menar:

Flaggorna representerar följande:

Listan Multicast-Grupp Medlemskap

Enkelt uttryckt, en multicast-överföring gör att ett paket ska skickas bara en gång, oavsett antalet mottagare. För tjänster såsom video, till exempel, detta ökar effektiviteten från avsändarens synpunkt av en enorm mängd.

-G (grupper) alternativet gör netstat lista multicast-gruppen medlemskap uttag på varje gränssnitt.

sudo netstat -g

Kolumnerna är ganska enkel:

New Kids on The Block

Rutten, ip, ifconfig, och ss-kommandon kan ge en hel del av vad netstat kan visa dig. De är alla bra kommandon och värt att kolla in.

Vi har fokuserat på netstat eftersom det är allmänt tillgänglig, oavsett vilken Unix-liknande operativsystem som du arbetar på, även obskyra sådana.

LÄS NÄSTA

Exit mobile version