- Dave McKay
@TheGurkha
- 17. února 2020, 8:00 EDT
Linux netstat
příkaz vám dává pokladnicí informací o vašem připojení k síti, porty, které jsou v použití, a procesy jejich použití. Naučte se, jak ji používat.
porty, procesy a protokoly
síťové zásuvky lze připojit nebo čekat na připojení., Připojení používají síťové protokoly jako Transport Control Protocol (TCP) nebo User Datagram Protocol UDP. K navázání připojení používají adresy internetového protokolu a síťové porty.
word sockets může vykouzlit obrázky fyzického připojovacího bodu pro vedení nebo kabel, ale v této souvislosti je socket softwarový konstrukt používaný k manipulaci s jedním koncem síťového datového připojení.,
Zásuvky mají dva hlavní státy: jsou buď připojeny a usnadnit probíhající síťové komunikace, nebo čekají na příchozí spojení, připojit se k nim. Existují i další státy, jako je například stav, kdy je zásuvka v polovině navazování spojení na vzdálené zařízení, ale dávat přechodové stavy stranou, si můžete myslet zásuvky buď jako připojení, nebo čekat (což je často nazýván poslech).
zásuvka pro poslech se nazývá server a zásuvka, která požaduje připojení k zásuvce pro poslech, se nazývá klient., Tato jména nemají nic společného s hardwarovými nebo počítačovými rolemi. Jednoduše definují roli každé zásuvky na každém konci připojení.
příkaznetstat
umožňuje zjistit, které zásuvky jsou připojeny a které zásuvky poslouchají. To znamená, že vám řekne, které porty se používají a které procesy je používají. Může vám ukázat směrovací tabulky a statistiky o síťových rozhraních a multicastových připojeních.
funkce netstat
byla v průběhu času replikována v různých linuxových nástrojích, jako jsou ip a ss., Stále stojí za to znát tento grandddaddy všech příkazů pro analýzu sítě, protože je k dispozici ve všech operačních systémech Linux a Unix a dokonce i ve Windows a Mac.
zde je návod, jak jej používat, doplněný příkazy příkladu.
Výpis Všech Zásuvek
-a
(všechny), možnost je netstat
zobrazit všechny propojené a čeká zásuvky. Tento příkaz je zodpovědný za vytvoření dlouhého seznamu, takže jej vložíme do less
.,
netstat -a | less
výpis obsahuje TCP (IP), TCP6 (IPv6), a UDP zásuvek.
zábal v okně terminálu je trochu obtížné vidět, co se děje. Zde je několik sekcí z tohoto seznamu:
sekce „aktivní Internet“ uvádí připojená externí připojení a místní zásuvky, které poslouchají požadavky na vzdálené připojení. To znamená, že uvádí síťová připojení, která jsou (nebo budou) navázána na externí zařízení.,
sekce „Unix domain“ uvádí připojená a poslechová interní připojení. Jinými slovy, uvádí spojení, která byla vytvořena v počítači mezi různými aplikacemi, procesy a prvky operačního systému.
sloupce „Active Internet“ jsou:
- Proto: protokol používaný touto zásuvkou (například TCP nebo UDP).
- Recv-Q: fronta pro příjem. Tyto jsou příchozí bajtů, které byly přijaty a jsou vyrovnávací paměti, čekání na místní proces, který je pomocí tohoto spojení se číst a konzumovat je.,
- odeslat-Q: fronta odeslání. To ukazuje bajty, které jsou připraveny k odeslání z fronty odeslání.
- Místní adresa: podrobnosti o adrese místního konce připojení. Výchozí hodnota je pro
netstat
pro zobrazení místního názvu hostitele pro adresu a názvu služby pro port. - zahraniční adresa: adresa a číslo portu vzdáleného konce připojení.
- stav: stav místní zásuvky. U zásuvek UDP je to obvykle prázdné. Viz státní tabulka níže.,
pro připojení TCP může být stavová hodnota jednou z následujících možností :
- poslouchat: pouze na straně serveru. Zásuvka čeká na žádost o připojení.
- SYN-SENT: pouze na straně klienta. Tato zásuvka podala žádost o připojení a čeká, zda bude přijata.
- SYN-RECEIVED: pouze na straně serveru. Tato zásuvka čeká na potvrzení připojení po přijetí požadavku na připojení.
- založeno: Server a klienti. Mezi serverem a klientem bylo vytvořeno pracovní spojení, které umožňuje přenos dat mezi nimi.,
- FIN-WAIT-1: Server a klienti. Tato zásuvka čeká na požadavek na ukončení připojení ze vzdálené zásuvky nebo na potvrzení požadavku na ukončení připojení, který byl dříve odeslán z této zásuvky.
- FIN-WAIT-2: Server a klienti. Tato zásuvka čeká na požadavek na ukončení připojení ze vzdálené zásuvky.
- CLOSE-WAIT: Server a klient. Tato zásuvka čeká na žádost o ukončení připojení od místního uživatele.
- uzavření: Server a klienti., Tato zásuvka čeká na potvrzení požadavku na ukončení připojení ze vzdálené zásuvky.
- LAST-ACK: Server a klient. Tato zásuvka čeká na potvrzení požadavku na ukončení připojení, který byl odeslán do vzdálené zásuvky.
- time-WAIT: Server a klienti. Tato zásuvka poslala potvrzení do vzdálené zásuvky, aby věděla, že obdržela požadavek na ukončení vzdálené zásuvky. Nyní čeká, až se ujistí, že bylo přijato potvrzení.
- zavřeno: neexistuje žádné připojení, takže zásuvka byla ukončena.,
sloupce „Unix domain“ jsou:
- Proto: protokol používaný tímto soketem. Bude to “ unix.“
- RefCnt: referenční počet. Počet připojených procesů připojených k této zásuvce.
- Flags: Toto je obvykle nastaveno na
ACC
, což představuje , což znamená, že zásuvka čeká na žádost o připojení.SO_WAITDATA
, zobrazeno jakoW
, znamená, že na čtení čekají data.,SO_NOSPACE
, zobrazeno jakoN
, znamená, že není místo pro zápis dat do zásuvky(tj. - typ: typ zásuvky. Viz tabulka typu níže.
- stav: stav zásuvky. Viz tabulka stavu níže.
- i-Node: souborový systém inode přidružený k této zásuvce.
- cesta: cesta systému souborů k soketu.
Typ soketu domény Unix může být jeden z následujících:
- DGRAM: zásuvka se používá v režimu datagram pomocí zpráv pevné délky., Datagramy nejsou zaručeny, že budou spolehlivé, sekvenované, ani unduplikované.
- STREAM: tato zásuvka je proudová zásuvka. Jedná se o běžný „normální“ typ připojení zásuvky. Tyto zásuvky jsou navrženy tak, aby poskytovaly spolehlivé sekvenční (v pořadí) doručení paketů.
- RAW: tato zásuvka se používá jako surová zásuvka. Surové zásuvky pracují na úrovni sítě modelu OSI a neodkazují na hlavičky TCP a UDP z úrovně dopravy.
- RDM: tato zásuvka je umístěna na jednom konci spolehlivě dodaného spojení zpráv.,
- SEQPACKET: Tato zásuvka funguje jako sekvenční paketový socket, což je další prostředky poskytuje spolehlivý, uspořádaný, a unduplicated paket dodání.
- paket: přístupová zásuvka rozhraní Raw. Paketové zásuvky se používají k přijímání nebo odesílání raw paketů na úrovni ovladače zařízení (tj.
stav soketu domény Unix může být jeden z následujících:
- ZDARMA: Tato zásuvka je nepřidělená.
- poslech: tato zásuvka poslouchá příchozí požadavky na připojení.,
- připojení: Tato zásuvka je v procesu připojení.
- připojeno: bylo navázáno spojení a zásuvka je schopna přijímat a přenášet data.
- odpojení: připojení je v procesu ukončení.
Wow, to je spousta informací! Mnoho možností netstat
vylepšuje výsledky tak či onak, ale obsah příliš nemění. Pojďme se podívat.,
Výpis soketů podle typu
příkaznetstat -a
může poskytnout více informací, než potřebujete vidět. Pokud chcete nebo potřebujete zobrazit pouze sokety TCP, můžete použít volbu -t
(TCP) k omezení zobrazení pouze pro zobrazení TCP soketů.
netstat -at | less
displej je výrazně snížen. Několik soketů, které jsou uvedeny, jsou všechny sokety TCP.,
-u
(UDP) a -x
(UNIX) možnosti se chovají podobně, omezení výsledků na typ zásuvky zadané na příkazovém řádku. Zde je možnost-u (UDP) v použití:
netstat -au | less
jsou uvedeny pouze zásuvky UDP.
Výpis Zásuvky Státu
Chcete vidět zásuvky, které jsou na poslech nebo stavu čekání, použijte -l
(poslech) možnost.
netstat -l | less
uvedené zásuvky jsou ty, které jsou ve stavu poslechu.,
to lze kombinovat s možnostmi-t (TCP, -u (UDP) a-x (UNIX) pro další domov v zásuvkách zájmu. Podívejme se na poslech TCP soketů:
netstat -lt | less
nyní vidíme pouze TCP poslechové zásuvky.
Statistika Sítě pomocí Protokolu
netstat -st | less
sbírka statistiky pro TCP spojení se zobrazí v less
.
zobrazující názvy procesů a PID
může být užitečné vidět ID procesu (PID) procesu pomocí soketu spolu s názvem tohoto procesu., Volba -p
(program) to dělá. Podívejme se, jaké jsou PID a názvy procesů pro procesy pomocí TCP soketu, který je ve stavu poslechu. Používáme sudo
, abychom se ujistili, že obdržíme všechny dostupné informace, včetně informací, které by normálně vyžadovaly oprávnění root.
sudo netstat -p -at
zde je výstup ve formátované tabulce:
máme další sloupec s názvem “ PID / název programu.“Tento sloupec uvádí PID a název procesu pomocí každé ze zásuvek.,
Výpis číselných adres
dalším krokem k odstranění určité nejednoznačnosti je zobrazení místních a vzdálených adres jako IP adres namísto jejich vyřešených domén a hostnames. Pokud budeme používat -n
(číselné) možnost, že IPv4 adresy jsou uvedeny v tečkované desítkové formátu:
sudo netstat -an | less
IP adresy jsou zobrazeny jako číselné hodnoty. Čísla portů jsou také zobrazena, oddělená dvojtečkou „:
“ od IP adresy.
IP adresa 127.0.0.,1 ukazuje, že zásuvka je vázána na loopback adresu místního počítače. IP adresu 0.0.0.0 můžete považovat za “ výchozí trasu „pro místní adresy a“ jakoukoli IP adresu “ pro zahraniční adresy. IPv6 adresy zobrazené jako „::
“ jsou také všechny nulové adresy.
uvedené porty lze snadno zkontrolovat, aby se zjistilo, jaký je jejich obvyklý účel:
- 22: jedná se o port pro poslech Secure Shell (SSH).
- 25: jedná se o poslechový port Simple Mail Transfer Protocol (SMTP).
- 53: jedná se o port pro poslech doménového jména (DNS).,
- 68: jedná se o poslechový port Dynamic Host Configuration Protocol (DHCP).
- 631: Jedná se o běžný unixový Tiskový systém (CUPS).
související: jaký je rozdíl mezi 127.0.0.1 a 0.0.0.0?
zobrazení směrovací tabulky
volba-r
(route) zobrazuje směrovací tabulku jádra.,
sudo netstat -r
Zde je, že výstup v úhledné tabulce:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default Vigor.router 0.0.0.0 UG 0 0 0 enp0s3 link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
A tady je to, co jednotlivé sloupce znamenají:
- Cíl: cíl, síť nebo cílový hostitel zařízení (pokud toto určení není v síti).
- brána: adresa brány. Pokud není adresa brány nastavena, objeví se zde hvězdička „
*
„. - Genmask: maska podsítě pro trasu.
- vlajky: viz tabulka vlajky níže.,
- MSS: Výchozí Maximální Velikost Segmentu TCP spojení přes tuto trasu—to je největší množství dat, které lze přijímat v jednom TCP segmentu.
- okno: výchozí velikost okna pro připojení TCP přes tuto trasu, označující počet paketů, které lze přenést a přijmout před tím, než je přijímací vyrovnávací paměť plná. V praxi jsou pakety spotřebovány přijímající aplikací.
- irtt: počáteční doba zpáteční cesty. Na tuto hodnotu odkazuje jádro, aby provedlo dynamické úpravy parametrů TCP pro vzdálená připojení, která jsou pomalá.,
- Iface: síťové rozhraní, ze kterého jsou přenášeny pakety odeslané touto cestou.
hodnota příznaků může být jednou z:
- u: trasa je nahoru.
- H: Target je hostitel a jediný možný cíl na této trase.
- G: použijte bránu.
- R: obnovte trasu pro dynamické směrování.
- D: dynamicky instalovaný směrovacím démonem.
- M: změněno směrovacím démonem, když obdržel paket protokolu ICMP (Internet Control Message Protocol).,
- a: instalováno pomocí
addrconf
, automatizovaného generátoru konfiguračních souborů DNS a DHCP. - C: cache entry.
- !: Odmítnout trasu.
Najít Port, který Používá Proces
Pokud bychom potrubí výstup netstat
grep
, můžeme hledat proces, pojmenovat a určit port používá. Používáme -a
(všechny), -n
(numerické) a -p
(program) možnosti použity dříve, a hledat pro „sshd.,“
sudo netstat -anp | grep "sshd"
grep
najde cílový řetězec, a vidíme, že sshd
daemon používá port 22.
samozřejmě to můžeme udělat i obráceně. Pokud hledáme“: 22″, můžeme zjistit, který proces používá tento port, pokud existuje.
sudo netstat -anp | grep ":22"
grep
najde „:22“ cílový řetězec, a vidíme, že proces používá tento port je sshd
daemon, ID procesu 751.,
Seznam Síťových Rozhraní
-i
(rozhraní) možnost zobrazí tabulku síťových rozhraní, které netstat
může objevit.
sudo netstat -i
Tady je výstup ve více čitelné módy:
Kernel Interface table 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
Toto je to, co jednotlivé sloupce znamenají:
- Iface: název rozhraní. Rozhraní
enp0s3
je síťové rozhraní pro vnější svět a rozhraní je Rozhraní loopback., Rozhraní loopback umožňuje procesům komunikovat v počítači pomocí síťových protokolů, i když počítač není připojen k síti. - MTU: maximální přenosová jednotka (MTU). Jedná se o největší „paket“, který lze odeslat. Skládá se z hlavičky obsahující směrovací a protokolové příznaky a další metadata plus data, která se skutečně přenášejí.
- RX-OK: počet přijatých paketů bez chyb.
- RX-ERR: počet přijatých paketů s chybami. Chceme, aby to bylo co nejnižší.,
- RX-DRP: počet paketů klesl(tj. Chceme také, aby to bylo co nejnižší.
- Rx-OVR: počet paketů ztracených v důsledku přetečení při příjmu. To obvykle znamená, že přijímací vyrovnávací paměť byla plná a nemohla přijmout žádná další data, ale bylo přijato více dat a muselo být vyřazeno. Čím nižší je toto číslo, tím lepší a nula je perfektní.
- TX-OK: počet přenášených paketů bez chyb.
- RX-ERR: počet přenášených paketů s chybami. Chceme, aby to bylo nulové.,
- RX-DRP: počet paketů při přenosu klesl. V ideálním případě by to mělo být nula.
- RX-OVR: počet paketů ztracených v důsledku přetečení při přenosu. To obvykle znamená, že vyrovnávací paměť pro odesílání byla plná a nemohla přijmout žádná další data, ale více dat bylo připraveno k přenosu a muselo být vyřazeno.
- Flg: Flags. Viz tabulka vlajek níže.
praporky jsou následující:
Seznam Členství ve skupinách Vícesměrového vysílání
Jednoduše řečeno, multicast přenos umožňuje paket bude odeslán pouze jednou, bez ohledu na počet příjemců., Například u služeb, jako je streamování videa, To zvyšuje efektivitu z pohledu odesílatele o obrovské množství.
volba-g
(skupiny) umožňujenetstat
seznam členství skupiny multicast soketů na každém rozhraní.
sudo netstat -g
sloupce jsou poměrně jednoduché:
- rozhraní: název rozhraní, přes které zásuvka vysílá.
- RefCnt: referenční počet, což je počet procesů připojených k zásuvce.,
- skupina: název nebo identifikátor skupiny multicast.
Nové Děti na Bloku
route, ip, ifconfig, a ss příkazy může poskytnout mnoho z toho, co netstat
je schopen ukazovat ty. Jsou to skvělé příkazy a stojí za to vyzkoušet.
zaměřili jsme se na netstat
protože je univerzálně dostupný, bez ohledu na to, na kterém operačním systému typu Unix pracujete, dokonce i na obskurních.,
Dave McKay poprvé použity počítače, když děrné děrné pásky bylo v módě, a on byl programovací od té doby. Po více než 30 letech v IT průmyslu je nyní technologickým novinářem na plný úvazek. Během své kariéry pracoval jako programátor na volné noze, manažer mezinárodní tým pro vývoj softwaru, IT služby, project manager, a, nejvíce nedávno, jako inspektora Ochrany Údajů. Dave je Linux evangelista a open source advokát.Přečtěte si celý Bio “