Ubuntu Sniffer網絡測試流程(以tcpdump和Wireshark為例)
Ubuntu系統下,常用Sniffer工具為tcpdump(命令行)和Wireshark(圖形界面)。通過以下命令安裝:
# 更新軟件包列表
sudo apt update
# 安裝tcpdump(命令行工具)
sudo apt install tcpdump
# 安裝Wireshark(圖形界面工具,需管理員權限)
sudo apt install wireshark
安裝完成后,即可通過終端或圖形界面啟動工具。
-i
參數指定網絡接口(如eth0
有線接口、wlan0
無線接口),若不確定接口名稱,可通過ip a
或ifconfig
命令查看。sudo tcpdump -i eth0
any
偽設備捕獲所有網絡接口的流量。sudo tcpdump -i any
-c
參數指定捕獲的數據包數量(如捕獲10個包后自動停止)。sudo tcpdump -i eth0 -c 10
-w
參數將捕獲的數據包保存為.pcap
文件(后續可用Wireshark分析)。sudo tcpdump -i eth0 -w capture.pcap
wireshark
,或在應用程序菜單中找到“Wireshark”并打開。eth0
),點擊“Start”開始捕獲。過濾是Sniffer的核心功能,可減少無關流量,快速定位目標數據包。
192.168.1.100
)。sudo tcpdump -i eth0 host 192.168.1.100
sudo tcpdump -i eth0 port 80
sudo tcpdump -i eth0 icmp # 捕獲ping請求
sudo tcpdump -i eth0 tcp # 捕獲TCP流量
and
(與)、or
(或)、not
(非)組合條件(如捕獲192.168.1.100
的HTTP流量)。sudo tcpdump -i eth0 host 192.168.1.100 and port 80
Wireshark支持更豐富的過濾語法,常見的有:
ip.addr == 192.168.1.100
顯示該IP的所有流量)。tcp port 80
只捕獲HTTP流量),需在“Capture Options”中設置。-v
(詳細)、-vv
(更詳細)、-vvv
(最詳細)參數顯示更多信息(如IP頭部、TCP端口等)。sudo tcpdump -i eth0 -vv
-X
參數以十六進制和ASCII格式顯示數據包內容(如HTTP請求頭)。sudo tcpdump -i eth0 -X port 80
-r
參數讀取.pcap
文件(如分析之前保存的capture.pcap
)。sudo tcpdump -r capture.pcap
http.request
只顯示HTTP請求包),點擊“Apply”即可過濾。ping
的ICMP包、HTTP的SYN包),若無請求則可能是本地網絡問題;若有請求無響應,則可能是目標主機或中間網絡問題。192.168.1.100
的所有流量,查看是否有80
端口的響應包。sudo tcpdump -i eth0 host 192.168.1.100 and port 80
tcpdump -tttt
顯示完整時間)分析數據包的發送和接收時間間隔,判斷是否存在延遲。SYN
、ACK
標志位),若出現異常(如只有SYN
無ACK
,可能是連接未建立),則可能是協議實現問題。SYN
包(tcp.flags.syn == 1 and tcp.flags.ack == 0
),查看是否有對應的ACK
響應。sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0'