netstat( nätverksstatistik ) är ett kommandoradsverktyg som visar status för TCP - anslutningar (både inkommande och utgående), routningstabeller, antal nätverksgränssnitt och nätverksprotokollstatistik. Tillgänglig på UNIX och Windows operativsystem . Huvudsyftet med verktyget är att hitta nätverksproblem och bestämma nätverkets prestanda.
På Linux har det klassiska netstat -verktyget från paketet "net-tools" fått ett nyare alternativ, ss -verktyget från paketet " iproute2 ". [1] [2]
Kommandot netstat visar innehållet i olika nätverksrelaterade datastrukturer i olika format, beroende på de angivna alternativen.
Den första formen av kommandot visar en lista över aktiva sockets ( sockets ) för varje protokoll. Den andra formen väljer en av flera andra nätverksdatastrukturer. Den tredje formen visar statistik för dynamisk paketvidarebefordran på de konfigurerade nätverksgränssnitten; intervallargumentet anger hur många sekunder information som samlas in mellan på varandra följande visningar.
Standardvärdet för systemargumentet är /unix; för kärnargumentet är standardvärdet /dev/kmem.
-a | Visa status för alla uttag; vanligtvis visas inte sockets som används av serverprocesser. |
-A | Visa adresser för alla protokollkontrollblock associerade med sockets; används för felsökning. |
-b | Visar den körbara filen som är involverad i att skapa varje anslutning, eller porten som väntar. Ibland innehåller kända körbara filer flera oberoende komponenter. Därefter visas sekvensen av komponenter som är involverade i skapandet av anslutningen, eller den väntande porten. I det här fallet står namnet på den körbara filen längst ner inom parentes [ ], högst upp står den komponent som den anropar, och så vidare tills TCP/IP nås. Observera att detta tillvägagångssätt kan ta lång tid och kräver tillräckliga behörigheter. |
-jag | Visa status för automatiskt konfigurerade gränssnitt. Gränssnitt som är statiskt konfigurerade på systemet men som inte hittas vid uppstart visas inte. |
-n | Visa nätverksadresser som nummer. netstat visar vanligtvis adresser som tecken. Det här alternativet kan användas med alla visningsformat. |
-r | Visa rutttabeller. När den används med alternativet -s, visa ruttstatistik. |
-s | Visa statistisk information om protokoll. När det används med alternativet -r, visa ruttstatistik. |
-f adressfamilj | Begränsa visningen av statistik eller adresser för kontrollblock till endast den specificerade adressfamiljen, som kan anges som:
inet För AF_INET-adressfamiljen , eller unix För AF_UNIX-adressfamiljen . |
-i gränssnitt | Välj information om det angivna gränssnittet i en separat kolumn; som standard (för den tredje formen av kommandot), används gränssnittet med den största mängden information som överförts sedan den senaste omstarten av systemet. Gränssnittet kan vara vilket som helst av gränssnitten som listas i systemkonfigurationsfilen, till exempel emd1 eller lo0. |
-s | Visa process-ID/namn för processen som skapade socket (-p, --program visar PID/programnamn för sockets) |
Aktiva uttag
För varje aktiv uttag visar den protokollet, storleken på mottagnings- och mottagningsköerna (i byte), den lokala adressen och fjärradressen samt protokollets interna status. Teckenformatet som vanligtvis används för att visa socket-adresser är antingen:
värdnamn.portom ett värdnamn anges, antingen:
nätverk.portom socket-adressen anger ett nätverk, men inte en specifik värd. Värd- och nätverksnamnen hämtas från motsvarande poster i filen /etc/hosts eller /etc/networks .
Om nätverket eller värdnamnet för adressen inte är känt (eller om alternativet -n är angivet), visas adressen som siffror. Ospecificerade eller "generaliserade" adresser och portar visas som "*". För mer information om namnkonventioner på Internet, se inet man-sidan .
TCP-uttag
För TCP-uttag är följande statusvärden giltiga:
STÄNGD | Stängd Uttaget används inte. |
LYSSNA (LYSSNA) | Väntar på inkommande anslutningar. |
SYN_SENT | Försöker aktivt upprätta en anslutning. |
SYN_RECEIVED | Den första synkroniseringen av anslutningen pågår. |
ETABLERADE | Kontakt etablerad. |
STÄNG VÄNTA | Fjärrsidan har kopplats ur; väntar på att uttaget ska stängas. |
FIN_WAIT_1 | Uttaget är stängt; koppla bort anslutningen. |
STÄNGNING | Uttaget är stängt, sedan är fjärrsidan bortkopplad; Väntar på bekräftelse. |
LAST_ACK | Fjärrsidan frånkopplad, sedan stängs uttaget; Väntar på bekräftelse. |
FIN_WAIT_2 | Uttaget är stängt; väntar på att fjärrsidan ska kopplas från. |
TID VÄNTA | Socket är stängt, men väntar på att paket som fortfarande finns på nätverket ska behandlas. |
Nätverksdatastrukturer
Data som visas beror på valet av alternativ, -i eller -r. Om båda alternativen är specificerade kommer netstat att välja -i.
Visa rutttabell
Routingtabellen visar alla tillgängliga rutter (rutter) och status för var och en av dem. Varje rutt består av en destinationsvärd eller ett nätverk och en gateway som används för att vidarebefordra paketen. Flaggkolumnen visar ruttens status (U om den är aktiverad), om rutten leder till en gateway (G), om rutten skapades dynamiskt med en omdirigering (D) och om unihost-adressen (H) används istället av nätverksadressen. Till exempel har loopback-transportleverantörens gränssnitt lo0 alltid H-flaggan.
Direkta rutter skapas för varje gränssnitt som är anslutet till den lokala värden; gateway-fältet för sådana poster indikerar adressen för utgångsgränssnittet.
Refcnt-kolumnen visar det aktuella antalet aktiva användningar för rutten. Anslutningsorienterade protokoll använder vanligtvis en enda rutt under en anslutning, medan anslutningslösa protokoll tar emot en rutt för varje sändning till samma destination.
Användningskolumnen visar antalet paket som skickats längs rutten.
Gränssnittskolumnen visar nätverksgränssnittet som används av rutten.
Sammanfattande statistik för dataöverföring
När intervallargumentet ges visar netstat en tabell med sammanfattande statistik om överförda paket, fel och kollisioner. Den första raden med data som visas, liksom varje efterföljande 24:e rad, innehåller sammanfattande statistisk information sedan den senaste omstarten av systemet. Varje efterföljande rad visar data som ackumulerats för nästa intervall som anges på kommandoraden sedan den senaste visningen.
Kärntabeller kan ändras när de bearbetas av netstat, vilket resulterar i felaktiga eller ofullständiga resultat.
Unix-kommandon | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|