首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 網絡性能調試三板斧:route、netstat、tcpdump 實戰

     編輯:MySQL 資料庫相關知識

工具定位

  • route:靜態路由表管理,配置網關/子網路由
  • netstat:網絡連接/協議統計/接口狀態綜合檢視
  • tcpdump:抓包分析,深度排查協議/應用層問題

route 實戰

# 添加主機路由
route add -host 192.168.1.10 dev eth0

# 添加網絡路由 (指定網關)
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1

# 添加默認網關
route add default gw 192.168.1.1

# 刪除路由
route del -net 10.0.0.0 netmask 255.0.0.0

# 查看路由表
route -n
# -n 直接顯示 IP,不做 DNS 解析,速度快

輸出字段:Destination(目標網絡) Gateway(網關) Genmask(掩碼) Flags(標志: U=Up H=Host G=Gateway) Metric(度量) Ref(引用) Use(使用) Iface(接口)

netstat 核心用法

# 所有監聽端口 (TCP/UDP)
netstat -tuln
# -t TCP, -u UDP, -l LISTEN, -n 數字顯示

# 所有已建立連接
netstat -tn
# 顯示本地/遠程地址、狀態 (ESTABLISHED/TIME_WAIT...)

# 統計協議數據
netstat -s
# IP/TCP/UDP/ICMP 收發包計數、錯誤計數

# 顯示進程信息 (需 root)
netstat -tulpn
# 顯示 PID/Program name,定位佔用端口進程

# 路由表 (同 route -n)
netstat -rn

# 接口統計
netstat -i
# RX/TX 包數、錯誤、丟包、衝突

tcpdump 經典過濾表達式

# 抓取 80 端口 HTTP 流量
tcpdump -i eth0 -n port 80

# 抓取特定主機雙向流量
tcpdump -i eth0 -n host 192.168.1.100

# 抓取特定主機特定端口
tcpdump -i eth0 -n host 192.168.1.100 and port 3306

# 寫入文件分析 (Wireshark 打開)
tcpdump -i eth0 -n -s 0 -w mysql.pcap port 3306
# -s 0 抓取完整包

# 顯示序列號/標志位/窗口大小
tcpdump -i eth0 -n -S -v port 3306

MySQL 專項網絡排查場景

現象排查命令關注點
連接超時netstat -tn | grep :3306SYN_SENT/SYN_RECV 堆積 → 防火牆/網絡不通
連接數暴增netstat -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr單 IP 佔比 → 應用連接洩漏/攻擊
查詢延遲高tcpdump -i eth0 -n port 3306 -w slow.pcapWireshark 分析 RTT、重傳、空閒時間
主從同步斷開tcpdump -i eth0 -n host slave_ip and port 3306Binlog 傳輸中斷、ACK 超時

進階工具推薦

  • ss:netstat 替代品,更快、信息更豐富 (ss -tuln)
  • iftop:接口實時帶佔用 Top 視圖
  • nethogs:按進程顯示帶寬佔用
  • Wireshark:圖形化深度包分析
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved