Použití příkazu netstat v systému Linux

Zjistěte, co příkaz netstat a některé příklady v reálném čase.


netstat (síťová statistika) je nástroj příkazového řádku, který zobrazuje síťová připojení (příchozí i odchozí), směrovací tabulky a řadu statistik síťového rozhraní.

Je k dispozici v operačních systémech Linux, Unix a Windows. netstat je výkonný a může být užitečným nástrojem pro řešení problémů souvisejících se sítí a ověřování statistik připojení.

Zadáte-li příkaz netstat -help, získáte následující pokyny k použití.

[[chráněn e-mailem] ~] # netstat -help
použití: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [zpoždění]

-r, – route zobrazit směrovací tabulku
-I, –interfaces = zobrazit tabulku rozhraní pro
-i, –interfaces zobrazí tabulku rozhraní
-g, –groups zobrazí členství ve skupinách vícesměrového vysílání
-s, –statistics zobrazuje síťové statistiky (jako SNMP)
-M, – maškaráda zobrazuje maškarádovaná spojení

-v, – verbose být podrobný
-W, –wide IP adresy zkrátit
-n, – numerické nerozlišují jména
–numeric-hosts nerozlišují názvy hostitelů
–numerické porty nerozlišují názvy portů
–numeric-users Nerozlišují uživatelská jména
-N, –symbolický překlad hardwarových jmen
-e, –rozšíření zobrazit další / další informace
-p, –programy zobrazují PID / název programu pro sokety
-o, – časovače zobrazují časovače
-c, – nepřetržitý nepřetržitý výpis

-l, – listening sokety pro naslouchání zobrazení
-a, – zobrazí všechny zásuvky (výchozí: připojeno)
-F, –fib display Forwarding Information Base (výchozí)
-C, –cache zobrazí směrovací mezipaměť namísto FIB
-Z, –context zobrazí SELinux bezpečnostní kontext pro sokety

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Použijte ‘-6 | -4’ nebo ‘-A’ nebo ‘-‘; výchozí: inet
Seznam možných rodin adres (které podporují směrování):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[chráněn e-mailem] ~] #

Ukážu vám některé příklady příkazu. Následující testy jsou testovány na RHEL / CentOS, ale nevidím důvod, proč nepracovat na jiném distro, jako je Ubuntu..

Navázané připojení

Pokud hledáte všechna navázaná připojení ze serveru.

[[chráněn e-mailem] ~] # netstat -natu | grep ‘USTANOVENO’
tcp 0 21 68.183.37.102:22 222.186.31.135:21714 VYBAVENO
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 VYBAVENO
tcp 0 0 68,183,37,02:22 61,171,14,15,18:55481 VYŘÍZENO
[[chráněn e-mailem] ~] #

Pokud máte mnoho navázaných spojení a máte zájem hledat jednu z IP, můžete použít další grep.

[[chráněn e-mailem] ~] # netstat -natu | grep ‘ZAVEDENO’ grep 61.177.142.158
tcp 0 1280 68,183,37,02:22 61,171,144,188,33932 STANOVENO
[[chráněn e-mailem] ~] #

Poslechové připojení

Řekněme, že jste spustili nějakou službu, a to by mělo poslouchat na konkrétní IP: Port, toto by bylo užitečné ověřit.

[[chráněn e-mailem] ~] # netstat -an | grep ‘LISTEN’
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
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
[[chráněn e-mailem] ~] #

Nebo můžete použít argument -l k zobrazení všech naslouchacích soketů.

[[chráněn e-mailem] ~] # netstat -l
Aktivní připojení k internetu (pouze servery)
Proto Recv-Q Send-Q Místní adresa Zahraniční adresa Stá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 [::]: *
Aktivní sokety UNIX (pouze servery)
Proto RefCnt příznaky Cesta státu I-uzlu typu
unix 2 [ACC] STREAM LISTENING 15108 / run / dbus / system_bus_socket
unix 2 [ACC] STREAM LISTENING 8202 / run / systemd / journal / stdout
unix 2 [ACC] LISTPACKET LISTENING 12813 / run / udev / control
unix 2 [ACC] STREAM LISTENING 17542 public / pickup
unix 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
unix 2 [ACC] STREAM LISTENING 17546 public / cleanup
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] STREAM LISTENING 17571 public / flush
unix 2 [ACC] STREAM LISTENING 17553 soukromý / tlsmgr
unix 2 [ACC] STREAM LISTENING 17586 public / showq
unix 2 [ACC] STREAM LISTENING 17556 soukromý / přepis
unix 2 [ACC] STREAM LISTENING 17559 soukromý / odrazit
unix 2 [ACC] STREAM LISTENING 17562 soukromý / odložený
unix 2 [ACC] STREAM LISTENING 17565 private / trace
unix 2 [ACC] STREAM LISTENING 17568 soukromý / ověřte
unix 2 [ACC] STREAM LISTENING 17574 soukromý / proxymap
unix 2 [ACC] STREAM LISTENING 17577 soukromý / proxywrite
unix 2 [ACC] STREAM LISTENING 17580 private / smtp
unix 2 [ACC] STREAM LISTENING 17583 soukromý / relé
unix 2 [ACC] STREAM LISTENING 17589 soukromý / chyba
unix 2 [ACC] STREAM LISTENING 17592 soukromý / opakovat
unix 2 [ACC] STREAM LISTENING 17595 soukromý / zahodit
unix 2 [ACC] STREAM LISTENING 17598 soukromý / místní
unix 2 [ACC] STREAM LISTENING 17601 soukromý / virtuální
unix 2 [ACC] STREAM LISTENING 17604 private / lmtp
unix 2 [ACC] STREAM LISTENING 17607 soukromý / kovadlina
unix 2 [ACC] STREAM LISTENING 17610 soukromý / scache
unix 2 [ACC] STREAM LISTENING 15606 /run/gssproxy.sock
[[chráněn e-mailem] ~] #

Využijte grep k filtrování výsledků.

Číslo portu použité PID

Víte, že vaše aplikace byla spuštěna a znáte PID (Process Identifier), ale nejste si jisti, jaké číslo portu používá. Níže uvedený příklad je pro PID 3937

[[chráněn e-mailem] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * LISTEN 3937 / httpd
unix 3 [] STREAM CONNECTED 2442387 3937 / httpd
[[chráněn e-mailem] ~] #

Jak vidíte, port 80 se používá pro PID 3937.

Statistiky všech protokolů

Máte časté odpojení kvůli vyřazení paketu? -s argument vám ukáže celkové statistiky, kde můžete věnovat pozornost zprávám o vyřazených paketech.

[[chráněn e-mailem] ~] # netstat -s
Ip:
Celkem přijato 731422 paketů
0 přeposláno
0 příchozích paketů zahozeno
Doručeno 731399 příchozích paketů
Bylo odesláno 787732 žádostí
16 klesl kvůli chybějící trase
Icmp:
Přijato 5277 zpráv ICMP
120 vstupních zpráv ICMP se nezdařilo.
InCsumErrors: 6
Histogram vstupu ICMP:
destinace nedosažitelná: 193
časový limit v tranzitu: 16
echo požadavky: 5060
echo odpovědi: 2
Bylo odesláno 9355 zpráv ICMP
0 zpráv ICMP se nezdařilo
Histogram výstupu ICMP:
destinace nedosažitelná: 4295
echo odpovědi: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
Tcp:
42 otvorů pro aktivní připojení
35226 pasivních spojovacích otvorů
1693 neúspěšných pokusů o připojení
Bylo resetováno 645 spojení
2 spojení navázána
Přijato 646705 segmentů
Odesílá se 648037 segmentů
99463 segmentů retransmitováno
Bylo přijato 27377 chybných segmentů.
Bylo odesláno 150893 resetů
InCsumErrors: 27377
Udp:
Přijato 74547 paketů
Bylo přijato 4814 paketů do neznámého portu.
56 paketů přijímat chyby
Bylo odesláno 74584 paketů
0 přijímat chyby vyrovnávací paměti
0 chyb při odesílání vyrovnávací paměti
InCsumErrors: 56
UdpLite:
TcpExt:
Bylo přijato 177 neplatných souborů SYN
1693 resetů přijatých pro embryonální SYN_RECV sokety
316 soketů TCP dokončil čas čekání v rychlém časovači
3 pakety odmítají navázané připojení kvůli časové značce
Odesláno 70248 zpožděných stovek
6 zpožděných stoků dále zpožděných kvůli uzamčené zásuvce
Režim rychlé ack byl aktivován 3082krát
Bylo zrušeno 17 SYN k LISTEN soketům
28179 paketů přímo zařazených do fronty rekvmsg.
9802 bajtů přímo přijatých v kontextu procesu z prequeue
Předpovídalo se 72106 záhlaví paketů
94182 potvrzení neobsahující přijatá užitečná data dat
40094 předpovídaných potvrzení
332krát získáno ze ztráty paketů selektivními potvrzeními
8 oken přetížení obnovena bez pomalého spuštění pomocí DSACK
Okna přetížení 1173 byla obnovena bez pomalého spuštění po částečném zásahu
1029 timeoutů po obnovení SACK
8 timeoutů ve ztrátovém stavu
329 rychlých retransmitů
3 dopředné retransmity
32 retransmitů v pomalém startu
44785 dalších timeoutů TCP
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
54 SACK retransmitů selhalo
3144 DSACKů odeslaných pro staré pakety
4 DSACKy odeslané pro pakety mimo objednávku
Přijato 695 DSACKů
1 DSACKs pro přijaté pakety mimo objednávku
44 spojení se resetovalo kvůli neočekávaným datům
76 spojení bylo resetováno kvůli včasnému uzavření uživatele
6079 spojení bylo přerušeno kvůli vypršení č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
[[chráněn e-mailem] ~] #

Informace o směrování jádra

Máte problém se směrováním? nebo připojení nefunguje podle očekávání, protože připojení prochází jinou cestou?

Rychle zkontrolujte směrovací tabulku.

[[chráněn e-mailem] ~] # netstat -r
Směrovací tabulka jádra IP
Cílová brána Genmask příznaky Okno MSS irtt Iface
výchozí brána 0.0.0.0 UG 0 0 0 eth0
10,16,0,0 0,0,0,0 255,255,0,0 U 0 0 eth0
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
[[chráněn e-mailem] ~] #

PID používá číslo portu

Velmi užitečné při řešení problému s konflikty portů. Řekněme, že se pokoušíte spustit server Apache nebo Nginx, který poslouchá na portu 80, ale nemůže, protože nějaký jiný proces již používá port 80.

[[chráněn e-mailem] ~] # netstat -anlp | grep 80 | grep LISTEN
tcp6 0 0 ::: 80 ::: * LISTEN 3937 / httpd
[[chráněn e-mailem] ~] #

A můžete vidět, že PID 3937 používá tento port.

Pokud používáte AIX, pak

netstat -Aan | grep $ portnumber

Tím se adresa řídicího protokolu protokolu zobrazí v šestnáctkové soustavě

Jakmile máte hexadecimální, můžete provést níže a získat tak proces, který drží číslo portu.

rmsock $ address_of_pcb tcpcb

Seznam síťových rozhraní

Máte více ethernetových rozhraní? nebo si nejste jisti a chcete to zjistit?

[[chráněn e-mailem] ~] # netstat -i
Tabulka rozhraní jádra
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[chráněn e-mailem] ~] #

Nepřetržitý poslech

Vynikající volba při řešení problémů se službami, které se týkají selhání. Řekněme, že aplikace náhodně padá každých pár minut. Ale nejsem si jistý, kdy přesně. Můžete použít argument -c, který bude průběžně zobrazovat výsledky.

[[chráněn e-mailem] ~] # 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

Když přestane aktualizovat, víte, že došlo k jeho havárii.

Závěr

netstat je jedním z široce používaných příkazů sysadminu a doufám, že výše uvedené příklady vám poskytnou představu o tom, co s ním můžete udělat. Pokud se chcete dozvědět více o správě Linuxu, podívejte se na 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