1. 程式人生 > >10.7 netstat:查看網絡狀態

10.7 netstat:查看網絡狀態

針對 kernel socket 組成 root 遺失 語句 處理 但是

netstat命令

用於顯示本機網絡的連接狀態、運行端口和路由表等信息。


netstat命令的參數選項及說明


-r 顯示路由表信息,該功能類似於前面學過的route 和ip route-g 顯示多播功能群組成員,該功能類似於前面學過的ip maddr-i 顯示網絡接口信息,該功能類似於前面學過的ip -s link-s 顯示各類協議的統計信息-n 顯示數字形式的地址而不是去解析主機、端口或用戶名。默認情況下,netstat命令會嘗試解析並顯示主機的主機名,這個過程通常比較長也是非必需的-a 顯示處於監聽狀態和非監聽狀態的socket信息-A 顯示指定網絡類型的網絡連接狀態-c<秒數> 後面跟的秒數表示每隔幾秒就刷新顯示一次-l 僅顯示連接狀態為“LISTEN”的服務的網絡狀態-t 顯示所有的TCP連接情況-u 顯示所有的UDP連接情況-p 顯示socket所屬進程的PID和名稱

常用選項組合1

[[email protected] ~]# netstat -anActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 64 10.0.0.100:22 10.0.0.1:2827 ESTABLISHEDtcp 0 0 10.0.0.100:22 10.0.0.1:6358 ESTABLISHEDtcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN Active UNIX domain sockets (servers and established)Proto RefCnt Flags Type State I-Node Pathunix 8 [ ] DGRAM 12335 /dev/logunix 2 [ ACC ] STREAM LISTENING 12689 public/cleanupunix 2 [ ACC ] STREAM LISTENING 12697 private/tlsmgrunix 2 [ ACC ] STREAM LISTENING 12702 private/rewriteunix 2 [ ACC ] STREAM LISTENING 12706 private/bounceunix 2 [ ACC ] STREAM LISTENING 12710 private/deferunix 2 [ ACC ] STREAM LISTENING 12714 private/traceunix 2 [ ACC ] STREAM LISTENING 12718 private/verifyunix 2 [ ACC ] STREAM LISTENING 12722 public/flushunix 2 [ ACC ] STREAM LISTENING 12726 private/proxymap

針對該命令的第一行內容進行了說明。 第一行活動網絡連接說明
第一列 Proto socket使用的協議(TCP、UDP、RAW)第二列 Recv-Q 接收到但是還未處理的字節數第三列 Send-Q 已經發送但是未被遠程主機確認收到的字節數第四列 Local Address 本地主機地址和端口第五列 Foreign Address 遠程主機地址和端口第六列 State socket的狀態,通常僅僅有TCP的狀態,狀態值可有ESTABLISHED、SYN_SENT、SYN_RECV、FIN_WAIT1、FIN_WAIT2、TIME_WAIT等


第6列 State狀態信息詳解
ESTABLISHED socket已經建立連接,表示處於連接的狀態,一般認為有一個ESTABLISHED 是一個服務的並發連接。 該連接狀態在生產場景中很重要,需要重點關註SYN_SENT socket正在積極嘗試建立一個連接,即處於發送後連接前的一個等待但未匹配進入連接的狀態SYN_RECV 已經從網絡上收到一個連接請求FIN_WAIT1 socket已關閉,連接正在或正要關閉FIN_WAIT2 連接已關閉,並且socket正在等待遠端結束TIME_WAIT socket正在等待關閉處理仍在網絡上的教據包,這個連接狀態在生產場景中很重要,需要重點關註CLOSED socket不再被占用了CLOSE_WAIT 遠端已經結束,等待socket關閉LAST_ACK 遠端已經結束,並且socket也已關閉,等待acknowledgementLISTEN socket正在監聽連接請求CLOSING socket關閉,但是我們仍舊沒有發送數據UNKNOWN socket狀態未知


常用選項組合2


[[email protected] ~]# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1358/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1437/master tcp 0 0 :::22 :::* LISTEN 1358/sshd tcp 0 0 ::1:25 :::* LISTEN 1437/master
以上命令語句的作用為顯示所有TCP和UDP正在監聽的連接信息。-l:顯示所有LISTEN狀態的網絡連接。-n:顯示IP地址,不進行DNS解析成主機名、域名。-t:顯示所有TCP連接。-u:顯示所有UDP連接。-p:顯示進程號和進程名。


顯示當前系統的路由表。


[[email protected] ~]# netstat -rnKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth110.1.0.0 10.0.0.253 255.255.255.0 UG 0 0 0 eth0169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth00.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0


選項-i顯示網絡的接口狀況。


[[email protected] ~]# netstat -iKernel Interface tableIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgeth0 1500 0 5405 0 0 0 3518 0 0 0 BMRUeth1 1500 0 0 0 0 0 18 0 0 0 BMRUlo 65536 0 0 0 0 0 0 0 0 0 LRU

以下是命令結果解釋。lface:表示網絡設備的接口名稱。MTU:表示最大傳輸單元,單位為字節。RX-OK/TX-OK:表示已經準確無誤地接收/發送了多少數據包。RX-ERR/TX-ERR:表示接收/發送數據包時產生了多少錯誤。RX-DRP/TX-DRP:表示接收/發送數據包時丟棄了多少數據包。RX-OVR/TX-OVR:表示由於誤差而遺失了多少數據包。Flg:表示接口標記,其中各標記含義具體如下。
  • L:表示該接口是個回環設備。
  • B:表示設置了廣播地址。
  • M:表示接收所有數據包。
  • R:表示接口正在運行。
  • U:表示接口處於活動狀態。
  • o:表示在該接口上禁用arp。
  • P:表示一個點到點的連接。
正常情況下,RX-ERR/TX-ERR、RX-DRP/TX-DRP和RX-OVR/TX-OVR的值都應該為0,如果這幾個選項的值不為0,並且很大,那麽網絡質量肯定有問題,網絡傳輸性能也一定會下降。


[[email protected] ~]# netstat -n|awk ‘/^tcp/ {++lewen[$NF]} END {for (a in lewen) print a ,lewen[a]}‘ESTABLISHED 5TIME_WAIT 1

10.7 netstat:查看網絡狀態