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'