http://domain.yqjdcyy.com/post/linux.netstat/
1 Netstat
1.1 作用
- 可於內核中訪問網絡連接狀態及其相關信息
- 用於顯示網絡連接、路由表和每個網絡接口設備的狀態信息
1.2 格式
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval]
1.3 參數
參數 | 作用 |
---|---|
-a/-all |
顯示所有socket,不論是否正在監聽 |
-c/-continuous |
持續每秒進行選中信息的輸出顯示 |
-i/-interfaces=iface |
顯示所有的網絡接口 |
-n/-numeric |
以數值地址形式進行展示 |
-r/-route |
顯示內核路由表,同 route -e |
-t/-tcp |
顯示 TCP 協議的連接情況 |
-u/-udp |
顯示 UDP 協議的連接情況 |
-v/-verbose |
詳細顯示正在進行的工作 |
-p/-program |
顯示套接字關聯的程序名稱和 PID |
-e/-extend |
顯示額外信息,如 uid 等 若連續兩次調用則顯示最大程度明細 |
-o/-timers |
顯示與網絡計時器相關的信息 |
-s/-statistics |
展示每個協議的摘要統計 |
-l/-listening |
僅顯示監聽中的套接字 |
1.4 序列圖
1.5 輸出
1.5.1 State
State | Desc |
---|---|
LISTENING | 正在監聽端口 |
SYNC_SEND | 已發送 SYN 報文等待連接請求建立 |
SYNC_RECEIVED | 已接收 SYN 報文的連接請求后,發送 SYN 回包后的 |
ESTABLISHED | 連接已建立,開始進行數據傳輸 |
CLOSE_WAIT | 服務端等待關閉 回應客戶端的 FIN 報文以 ACK 報文,無后綴則關閉 Socket 並發送 FIN 報文 |
FIN_WAIT_1 | 客戶端請求斷開,發送 FIN 報文后的等待狀態由於服務端響應及時,觀察頻率低 |
FIN_WAIT_2 | 客戶端等待數據傳輸完成后,服務端發送FIN 報文確認的過程半連接 |
LAST_ACK | 被動關閉方等待最終 ACK 報文的確認 |
TIME_WAIT | 接收 FIN 並返回 ACK 報文后,等待 2MSL 后返回 CLOSED 狀態 |
CLOSING | 等待遠程 TCP 對連接的確認 |
CLOSED | 無連接狀態鏈路 |
1.6 示例
1.6.1 過濾 TCP 連接統計
netstat -nat |awk '{print $6}'| sort | uniq -c
1.6.2 查詢指定端口的 TCP 連接數
netstat -ant | grep -i "80" | wc -l
1.6.3 已連接鏈路數
netstat -an | grep ESTABLISHED | wc -l