排查資料庫連線延遲、封包遺失、頻寬飽和時,route、netstat、tcpdump 是 Linux 系統管理員的三把利刃。本文以實戰場景示範三工具核心用法與輸出解讀。
# 新增主機路由
route add -host 192.168.1.10 gw 192.168.1.1 dev eth0
# 新增網段路由
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.0.0.1
# 刪除路由
route del -net 10.0.0.0
# 查看路由表
route -n
| 欄位 | 含義 |
|---|---|
| Destination | 目標網段/主機 |
| Gateway | 下一跳網關,* 表直連 |
| Genmask | 網路遮罩 |
| Flags | U=啟用 H=主機 G=網關 R=動態恢復 D=動態新增 M=修改 !=拒絕 |
| Metric | 路由成本 |
| Iface | 出介面 |
# 顯示所有 TCP/UDP 監聽與連線
netstat -anp
# 僅顯示監聽埠
netstat -ltnp
# 統計連線狀態分布
netstat -an | awk '/^tcp/ {print $6}' | sort | uniq -c
ESTABLISHED:正常連線TIME_WAIT:主動關閉端等待 2MSL,大量出現需調整 tcp_tw_reuseCLOSE_WAIT:被動關閉端未調用 close(),通常是應用程式 BugSYN_RECV:半連線佇列堆積,可能遭 SYN Flood 攻擊# 抓取 3306 埠雙向封包,存檔離線分析
tcpdump -i eth0 -nn -s0 -w mysql.pcap port 3306
# 即時顯示含資料載荷
tcpdump -i eth0 -nn -A -s0 port 3306
# 過濾特定 IP 與旗標
tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0 and src host 192.168.1.100'
.pcap 進行圖形化流向、重傳、延遲分析。Retransmission、ZeroWindow、TCP Window Full 判斷擁塞/流控問題。三工具組合拳:route 確認路由可達 → netstat 確認連線狀態 → tcpdump 深度剖析封包行為。