用Ubuntu Dumpcap進行網絡故障排查的步驟與技巧
首先確保系統已安裝dumpcap(通常隨wireshark包安裝)。若未安裝,可通過以下命令安裝:
sudo apt update && sudo apt install wireshark
安裝后需配置權限:
wireshark組,無需每次用sudo:sudo usermod -aG wireshark $USER && newgrp wireshark
dumpcap捕獲權限(無需修改用戶組):sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
驗證權限:運行dumpcap -i any,若無權限錯誤則表示配置成功。
使用以下命令列出所有可用網絡接口(如以太網eth0、無線wlan0):
dumpcap -D
選擇需捕獲的接口(如eth0),后續命令中通過-i參數指定。
捕獲指定接口的所有流量并保存到capture.pcap(.pcap為Wireshark通用格式):
sudo dumpcap -i eth0 -w capture.pcap
按Ctrl+C停止捕獲。
通過BPF(Berkeley Packet Filter)語法縮小捕獲范圍,減少無關數據:
sudo dumpcap -i eth0 -w http_traffic.pcap 'tcp port 80'
192.168.1.100)的流量:sudo dumpcap -i eth0 -w ip_traffic.pcap 'ip.addr == 192.168.1.100'
sudo dumpcap -i eth0 -w icmp_traffic.pcap 'icmp'
更多過濾語法可參考Wireshark官方文檔。
sudo dumpcap -i eth0 -c 100 -w limited.pcap
sudo dumpcap -i eth0 -w output.pcap -C 10m -W 5 # 每個文件最大10MB,保留5個文件
避免因文件過大導致磁盤空間耗盡或捕獲性能下降。
若需實時查看流量并同時保存到文件,可使用以下命令:
sudo dumpcap -i any -w - 'tcp' | wireshark -k -i -
-w -:將捕獲的流量輸出到標準輸出(stdout);wireshark -k -i -:啟動Wireshark并從標準輸入(stdin)讀取流量,-k表示立即開始捕獲。使用Wireshark打開.pcap文件(File -> Open),通過以下功能定位故障:
tcp.analysis.retransmission)、延遲包(tcp.analysis.delay);Statistics -> Conversations查看會話統計,Statistics -> IO Graphs查看流量趨勢;Follow -> TCP Stream,查看完整的TCP會話內容(如HTTP請求/響應)。dumpcap緩沖區大?。ㄈ?0MB):sudo dumpcap -i eth0 -B 10m -w capture.pcap
journalctl -xe)是否有防火墻攔截記錄;ping或traceroute測試網絡連通性。IO Graphs查看流量峰值,判斷是否擁塞;tcp.analysis.delay),分析延遲發生的時間段;traceroute檢查路由路徑是否有異常節點。ip addr show eth0),確保接口處于UP狀態;sudo apt install --reinstall linux-firmware)。.pcap文件(如使用cron定時任務),避免磁盤空間耗盡。