Použitie príkazu netstat v systéme Linux

Zistite, čo príkaz netstat a niektoré príklady v reálnom čase.


netstat (sieťová štatistika) je nástroj príkazového riadku, ktorý zobrazuje sieťové pripojenia (prichádzajúce aj odchádzajúce), smerovacie tabuľky a množstvo štatistík sieťového rozhrania.

Je k dispozícii v operačných systémoch Linux, Unix a Windows. netstat je výkonný a môže byť užitočným nástrojom na riešenie problémov týkajúcich sa siete a overovanie štatistík pripojenia.

Ak zadáte príkaz netstat -help, získate nasledujúce pokyny na používanie.

[[Email protected] ~] # netstat -help
použitie: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [oneskorenie]

-ro, – smerovanie tabuľky smerovania
-I, –interfaces = tabuľka rozhrania displeja pre
-tabuľka rozhraní –
-g, – skupiny zobrazujú členstvá v skupinách s rozosielaným vysielaním
-s, –statistics zobrazuje sieťové štatistiky (ako SNMP)
-M, – maškaráda zobrazuje maškarádované spojenia

-v, – verbose byť podrobný
-W, – po celom svete sa IP adresy nezkracujú
-n, – numerické nerozlišujú názvy
–numeric-hosts neriešia názvy hostiteľov
–numerické porty neriešia názvy portov
–Numerickí používatelia neriešia meno používateľa
-N, –symbolické rozlíšenie hardvérových názvov
-e, –rozšíriť ďalšie / ďalšie informácie
-p, – programy zobrazujú PID / názov programu pre zásuvky
-o, – časovače zobrazujú časovače
-c, – nepretržitý nepretržitý zoznam

-l, – počúvanie soketov servera na počúvanie displeja
-a, –všetky zásuvky (predvolené: pripojené)
-F, –fib zobrazí informačnú základňu o preposielaní (predvolené)
-C, –cache zobrazuje smerovaciu vyrovnávaciu pamäť namiesto FIB
-Z, –context zobrazuje bezpečnostný kontext SELinux pre zásuvky

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Použite ‘-6 | -4’ alebo ‘-A’ alebo ‘-‘; predvolené: inet
Zoznam možných rodín adries (ktoré podporujú smerovanie):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[Email protected] ~] #

Ukážem vám niekoľko príkladov príkazu. Nasledovné sú testované na RHEL / CentOS, ale nevidím dôvod, aby som nepracoval na inej distro, ako je Ubuntu..

Nadviazané spojenie

Ak hľadáte všetky nadviazané spojenia zo servera.

[[Email protected] ~] # netstat -natu | grep ‘STANOVENÉ’
tcp 0 21 68,183,37,02:22 222,186,31,13,35:21714 VYTVORENÉ
tcp 0 36 68,183,37,02:22 52,48,15555,82:49859 VYRADENÉ
tcp 0 0 68,183,37,122:22 61,171,144,18855551 VYTVORENÉ
[[Email protected] ~] #

Ak máte veľa nadviazaných spojení a máte záujem hľadať jednu z IP, môžete použiť ďalšiu grep.

[[Email protected] ~] # netstat -natu | grep „ZRIADENÝ“ grep 61.177.142.158
tcp 0 1280 68,183,37,02:22 61,171,144,188333332 VYTVORENÉ
[[Email protected] ~] #

Počúvanie spojenia

Povedzme, že ste spustili nejakú službu a ktorá by mala počúvať na konkrétnej adrese IP: Port, toto by bolo užitočné overiť.

[[Email protected] ~] # netstat -an | grep ‘LISTEN’
tcp 0 0 127,0.0,1:25 0,0,0,0:* POČÚVAME
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 ::: 111 ::: * LISTEN
tcp6 0 0 ::: 80 ::: * LISTEN
tcp6 0 0 ::: 22 ::: * LISTEN
[[Email protected] ~] #

Alebo môžete použiť argument -l na zobrazenie všetkých soketov na počúvanie.

[[Email protected] ~] # netstat -l
Aktívne internetové pripojenie (iba servery)
Preto Recv-Q Send-Q Miestna adresa Zahraničná adresa Štát
tcp 0 0 localhost: smtp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp6 0 0 [::]: sunrpc [::]: * LISTEN
tcp6 0 0 [::]: webcache [::]: * LISTEN
tcp6 0 0 [::]: ssh [::]: * LISTEN
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
Aktívne sokety UNIX (iba servery)
Príznaky RefCnt Príznaky Cesta štátu I-uzla
unix 2 [ACC] STREAM LISTENING 15108 / run / dbus / system_bus_socket
unix 2 [ACC] STREAM LISTENING 8202 / run / systemd / journal / stdout
unix 2 [ACC] SEKVENČNÁ SEKCIA 12813 / run / udev / control
unix 2 [ACC] STREAM LISTENING 17542 verejné / pickup
unix 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
unix 2 [ACC] STREAM LISTENING 17546 verejné / čistenie
unix 2 [ACC] STREAM LISTENING 15605 /var/lib/gssproxy/default.sock
unix 2 [ACC] STREAM LISTENING 12706 / run / systemd / private
unix 2 [ACC] STREAM LISTENING 17549 public / qmgr
unix 2 [ACC] POSLANIE STREAMU 17571 verejné / splachovacie
unix 2 [ACC] STREAM LISTENING 17553 súkromný / tlsmgr
unix 2 [ACC] STREAM LISTENING 17586 public / showq
unix 2 [ACC] STREAM LISTENING 17556 súkromný / prepísaný
unix 2 [ACC] STREAM LISTENING 17559 súkromný / odchod
unix 2 [ACC] STREAM LISTENING 17562 súkromný / odložený
unix 2 [ACC] STREAM LISTENING 17565 private / trace
unix 2 [ACC] STREAM LISTENING 17568 súkromný / overiť
unix 2 [ACC] STREAM LISTENING 17574 private / proxymap
unix 2 [ACC] STREAM LISTENING 17577 private / proxywrite
unix 2 [ACC] STREAM LISTENING 17580 private / smtp
unix 2 [ACC] STREAM LISTENING 17583 súkromný / štafetový
unix 2 [ACC] STREAM LISTENING 17589 súkromný / chyba
unix 2 [ACC] STREAM LISTENING 17592 súkromný / opakovať
unix 2 [ACC] STREAM LISTENING 17595 súkromný / odhodený
unix 2 [ACC] STREAM LISTENING 17598 súkromný / miestny
unix 2 [ACC] STREAM LISTENING 17601 súkromný / virtuálny
unix 2 [ACC] STREAM LISTENING 17604 private / lmtp
unix 2 [ACC] STREAM LISTENING 17607 privátny / kovadlina
unix 2 [ACC] STREAM LISTENING 17610 súkromný / scache
unix 2 [ACC] STREAM LISTENING 15606 /run/gssproxy.sock
[[Email protected] ~] #

Na filtrovanie výsledkov použite grep.

Číslo portu použité PID

Viete, že vaša aplikácia bola spustená a poznáte PID (Process Identifier), ale neviete, aké je číslo portu, ktoré používa. Nižšie uvedený príklad je pre PID 3937

[[Email protected] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * LISTEN 3937 / httpd
unix 3 [] STREAM PRIPOJENÝ 2442387 3937 / httpd
[[Email protected] ~] #

Ako vidíte, port 80 sa používa pre PID 3937.

Štatistika všetkých protokolov

Máte časté odpojenia kvôli vyradeniu paketu? -s argument vám ukáže celkové štatistiky, kde môžete venovať pozornosť paketom zahodené správy.

[[Email protected] ~] # netstat -s
ip:
Celkovo prijatých 731422 paketov
0 poslané ďalej
0 prichádzajúcich paketov zahodených
Doručené prichádzajúce pakety: 731399
787732 odoslaných žiadostí
16 klesol kvôli chýbajúcej trase
ICMP:
Bolo prijatých 5277 správ ICMP
120 vstupná správa ICMP zlyhala.
InCsumErrors: 6
Histogram vstupu ICMP:
cieľ nie je dosiahnuteľný: 193
časový limit pri preprave: 16
echo žiadosti: 5060
echo odpovede: 2
Bolo odoslaných 9355 správ ICMP
0 správ ICMP zlyhalo
Histogram výstupu ICMP:
cieľový cieľ nie je dosiahnuteľný: 4295
echo odpovede: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
tcp:
42 otvorov aktívneho spojenia
35226 pasívne spojovacie otvory
1693 neúspešných pokusov o pripojenie
Bolo obnovených 645 spojení
2 nadviazané spojenia
Prijalo sa 646705 segmentov
648037 segmentov vysiela
99463 segmentov retransmitovaných
Bolo prijatých 27377 zlých segmentov.
Bolo odoslaných 150893 resetov
InCsumErrors: 27377
udp:
74547 prijatých paketov
Prijalo sa 4814 paketov na neznámy port.
56 paketov prijíma chyby
Bolo odoslaných 74584 paketov
0 chýb vyrovnávacej pamäte
0 chýb vyrovnávacej pamäte pri odosielaní
InCsumErrors: 56
UdpLite:
TcpExt:
Bolo prijatých 177 neplatných súborov SYN
1693 resetov prijatých pre embryonálne zásuvky SYN_RECV
316 TCP soketov ukončený čas čaká v rýchlom časovači
3 pakety odmietajú nadviazané spojenia kvôli časovej pečiatke
Odoslaných 70248 oneskorení
6 oneskorených stôp ďalej oneskorených kvôli uzamknutej zásuvke
Režim rýchleho zastavenia bol aktivovaný 3082-krát
17 zásuviek SYN na LISTEN spadlo
28179 paketov priamo zaradených do fronty na rekvmsg prequeue.
9802 bajtov priamo prijatých v kontexte procesu z predqueque
Predpovedalo sa 72106 hlavičiek paketov
94182 potvrdenia neobsahujúce prijaté užitočné dáta
40094 predpovedaných potvrdení
332-krát sa získalo zo straty paketov selektívnymi potvrdeniami
8 okien preťaženia obnovených bez pomalého spustenia spoločnosťou DSACK
Po čiastočnom zastavení sa obnovilo 1173 okien preťaženia bez pomalého štartu
1029 vypršal čas po zotavení SACK
8 časových limitov v stratovom stave
329 rýchlych retransmitov
3 opakované presmerovania
32 opakovaných pokusov v pomalom štarte
44785 ďalších časových limitov TCP
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
54 SACK retransmitov zlyhalo
3144 DSACKov odoslaných na staré pakety
4 DSACK zaslané pre pakety mimo objednávky
Prijatých 695 DSACK
1 prijatá karta DSACK pre pakety mimo objednávky
44 spojení sa resetovalo kvôli neočakávaným údajom
76 spojení sa resetovalo kvôli skorému zavretiu používateľa
6079 spojení bolo prerušených kvôli vypršaniu časového limitu
TCPDSACKIgnoredNoUndo: 448
TCPSpuriousRTOs: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
INNoECTPkts: 731338
INECT1Pkts: 3
INECT0Pkts: 1568
InCEPkts: 108
[[Email protected] ~] #

Informácie o smerovaní jadra

Máte problém so smerovaním? alebo pripojenie nefunguje podľa očakávania, pretože spojenie prechádza inou trasou?

Rýchlo skontrolujte smerovaciu tabuľku.

[[Email protected] ~] # netstat -r
Smerovacia tabuľka jadra IP
Vlajka cieľovej brány Genmask flag MSS Okno irtt Iface
predvolená brána 0.0.0.0 UG 0 0 0 eth0
10,16,0,0 0,0,0,0 255,255,0,0 UoOo0
68,183,32,0 0,0,0,0 255,255,240,0 U 0 0 0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[Email protected] ~] #

PID použitý podľa čísla portu

Veľmi praktický na riešenie problému s konfliktom portov. Povedzme, že sa snažíte spustiť server Apache alebo Nginx, ktorý počúva na porte 80, ale nemôže, pretože nejaký iný proces už používa port 80.

[[Email protected] ~] # netstat -anlp | grep 80 | grep LISTEN
tcp6 0 0 ::: 80 ::: * LISTEN 3937 / httpd
[[Email protected] ~] #

A môžete vidieť, že PID 3937 používa tento port.

Ak používate AIX, potom

netstat -Aan | grep $ portnumber

Týmto sa adresa riadiaceho bloku protokolu zobrazí v šestnástkovej sústave

Akonáhle budete mať hexadecimálny, potom môžete vykonať nižšie získať proces, ktorý drží číslo portu.

rmsock $ address_of_pcb tcpcb

Zoznam sieťových rozhraní

Máte viac ethernetových rozhraní? alebo si nie ste istí a chcete to zistiť?

[[Email protected] ~] # netstat -i
Tabuľka rozhrania jadra
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
et0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[Email protected] ~] #

Nepretržité počúvanie

Vynikajúca voľba pri riešení problémov so zlyhaním služieb. Povedzme, že aplikácia náhodne padne každých pár minút. Ale nie ste si istí, kedy presne. Môžete použiť argument -c, ktorý bude priebežne zobrazovať výsledky.

[[Email protected] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd

Keď prestane aktualizovať, potom viete, že zlyhal.

záver

netstat je jedným z najčastejšie používaných príkazov sysadminu a dúfam, že vyššie uvedené príklady vám poskytnú predstavu o tom, čo s ním môžete urobiť. Ak sa chcete dozvedieť viac o správe Linuxu, prečítajte si toto Kurz Udemy.

Tagy:

  • linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map