# Component中netstat怎么用
## 一、netstat命令概述
netstat(Network Statistics)是Linux/Unix系統中用于監控網絡連接狀態的命令行工具。在組件開發或系統運維中,它常用于:
- 查看當前所有網絡連接
- 分析端口占用情況
- 診斷網絡性能問題
- 監控TCP/UDP傳輸狀態
## 二、基本語法格式
```bash
netstat [選項] [過濾條件]
參數 | 說明 |
---|---|
-a | 顯示所有連接和監聽端口 |
-t | 僅顯示TCP連接 |
-u | 僅顯示UDP連接 |
-n | 以數字形式顯示地址和端口號 |
-p | 顯示進程ID/程序名(需sudo權限) |
# 顯示網絡接口統計信息
netstat -i
# 顯示路由表
netstat -r
# 顯示組播成員信息
netstat -g
# 持續刷新顯示(每2秒)
netstat -c
# 查看80端口占用情況
netstat -tulnp | grep :80
# 輸出示例:
# tcp6 0 0 :::80 :::* LISTEN 1234/nginx
netstat -nat | awk '{print $6}' | sort | uniq -c
# 常見狀態說明:
# ESTABLISHED - 已建立連接
# TIME_WT - 等待關閉
# SYN_SENT - 主動發起連接
# 顯示所有外連IP(按連接數排序)
netstat -tn | grep ESTA | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
# 查看容器網絡命名空間的連接
nsenter -t <PID> -n netstat -ant
kubectl exec <pod-name> -- netstat -tulnp
# 監控服務間HTTP通信
netstat -t | grep 8080 | wc -l
典型netstat輸出示例:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
tcp 0 0 192.168.1.2:22 10.0.0.3:54231 ESTABLISHED 1234/sshd
字段說明: 1. Proto:協議類型(TCP/UDP) 2. Recv-Q:接收隊列積壓數據量 3. Send-Q:發送隊列積壓數據量 4. Local Address:本地IP:端口 5. Foreign Address:遠端IP:端口 6. State:連接狀態(僅TCP) 7. PID/Program:關聯進程信息
ss -tulnp # 比netstat更高效
# 統計各狀態的連接數
netstat -ant | tail -n +3 | awk '{print $6}' | sort | uniq -c
# 監控ESTABLISHED連接變化
watch -n 1 "netstat -ant | grep ESTA | wc -l"
# 查找占用端口的進程
netstat -tulnp | grep <port>
kill -9 <PID>
# 優化內核參數
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
可能原因:應用程序未正確關閉連接,需要檢查代碼中的socket處理邏輯。
敏感信息保護:
# 避免在日志中記錄完整netstat輸出
netstat -an > network_info.log
chmod 600 network_info.log
監控腳本示例: “`bash #!/bin/bash ALERT_THRESHOLD=1000 CONN_COUNT=$(netstat -ant | wc -l)
if [ \(CONN_COUNT -gt \)ALERT_THRESHOLD ]; then echo “警報:當前連接數 $CONN_COUNT” | mail -s “網絡異常” admin@example.com fi
## 十、延伸學習
1. 相關命令:
- `lsof -i :<port>` 更詳細的端口進程信息
- `iftop` 實時帶寬監控
- `nethogs` 進程級流量統計
2. 文檔參考:
- Linux man page: `man netstat`
- IBM知識中心:網絡故障診斷指南
> 提示:在較新的Linux發行版中,建議使用`ss`命令替代netstat,但netstat仍然因其易讀性被廣泛使用。
(全文約1200字,實際使用時可根據Markdown渲染環境調整格式)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。