Linux netstat命令作用是什麼?如何使用?

老男孩IT教育機構發表於2021-10-19

  netstat命令是Linux中非常重要的命令,主要用於檢視網路狀態,那麼Linux裡面netstat-an命令作用是什麼?以下便是詳細的內容介紹。

  netstat:檢視網路狀態

  命令詳解

  【命令星級】 ★★★★★

  【功能說明】netstat命令用來顯示本機網路連線狀態、執行埠和路由表等資訊。

  【語法格式】netstat [選項]

  【選項說明】

  -r顯示路由表資訊,功能類似前面學過的route和ip route

  -g顯示多播功能群組成員,功能類似前面學過的ip maddr

  -i顯示網路介面資訊,功能類似前面學過的ip -s link

  -s顯示各類協議的統計資訊

  -n顯示數字形式地址而不是去解析主機、埠或使用者名稱。預設情況下netstat命令會嘗試解析並顯示主機的主機名,這個過程通常比較長也是非必需的※

  -a顯示處於監聽狀態和非監聽狀態的socket資訊※

  使用範例

  1. 基礎範例

  範例10-25:常用選項組合(一)。

  [root@oldboy ~]# netstat -an #<==常用組合-a和-n,顯示所有連線資訊。

  Active Internet connections (servers and established) #<==活動的TCP/IP網路連線。

  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 10.0.0.12:22 10.0.0.1:57106 ESTABLISHED

  tcp 0 64 10.0.0.12:22 10.0.0.1:58180 ESTABLISHED

  tcp 0 0 :::22 :::* LISTEN

  Active UNIX domain sockets (servers and established) #<==活動的unix socket連線。

  Proto RefCnt Flags Type State I-Node Path

  範例10-26:常用選項組合(二)。

  [root@oldboy ~]# netstat -lntup

  Active 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 1314/sshd

  tcp 0 0 :::22 :::* LISTEN 1314/sshd

  以上命令語句的作用為顯示所有TCP和UDP正在監聽的連線資訊。

  q -l:顯示所有LISTEN狀態的網路連線。

  q -n:顯示IP地址,不進行DNS解析成主機名、域名。

  q -t:顯示所有TCP連線。

  q -u:顯示所有UDP連線。

  q -p:顯示程式號和程式名。

  範例10-27:顯示當前系統的路由表。

  [root@oldboy ~]# netstat -rn #<==使用-r選項顯示路由表資訊,-n選項不進行DNS解析,加快命令執行速度。

  Kernel IP routing table

  Destination Gateway Genmask Flags MSS Window irtt Iface

  10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

  169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

  0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0

  #提示:該命令相當於route -n。

  範例10-28:選項-i顯示網路介面狀況。

  [root@oldboy ~]# netstat -i

  Kernel Interface table

  Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

  eth0 1500 0 44735 0 0 0 45203 0 0 0 BMRU

  lo 65536 0 4081 0 0 0 4081 0 0 0 LRU

  以下是命令結果解釋。

  q Iface表示網路裝置的介面名稱。

  q MTU表示最大傳輸單元,單位位元組。

  q RX-OK/TX-OK表示已經準確無誤地接收/傳送了多少資料包。

  q RX-ERR/TX-ERR表示接收/傳送資料包時產生了多少錯誤。

  q RX-DRP/TX-DRP表示接收/傳送資料包時丟棄了多少資料包。

  q RX-OVR/TX-OVR表示由於誤差而遺失了多少資料包。

  q Flg 表示介面標記,其中:

  l L:表示該介面是個迴環裝置。

  l B:表示設定了廣播地址。

  l M:表示接收所有資料包。

  l R:表示介面正在執行。

  l U:表示介面處於活動狀態。

  l O:表示在該介面上禁用 arp。

  l P:表示一個點到點的連線。

  正常情況下,RX-ERR/TX-ERR、RX-DRP/TX-DRP和RX-OVR/TX-OVR的值都應該為0,如果這幾個選項的值不為0,並且很大,那麼網路質量肯定有問題,網路傳輸效能也一定會下降。

  2. 生產案例

  範例10-29:統計各個狀態的網路連線個數。

  [root@Backend-184 ~]# netstat -n |awk '/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}' #<==這個題目利用了awk陣列的功能,awk的使用請參考本書第四章。

  TIME_WAIT 6163

  FIN_WAIT1 42

  FIN_WAIT2 1056

  ESTABLISHED 4542

  SYN_RECV 53

  LAST_ACK 30


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2838127/,如需轉載,請註明出處,否則將追究法律責任。

相關文章