在Ubuntu上查看eth网卡报文进行调试,最简单的方法是使用 tcpdump
。以下是具体步骤:
1. 安装 tcpdump
bash
sudo apt update
sudo apt install tcpdump
2. 基本使用命令
查看所有网络接口
bash
tcpdump -D
捕获eth0接口的所有流量
bash
sudo tcpdump -i eth0
捕获特定数量的数据包
bash
sudo tcpdump -i eth0 -c 10 # 只捕获10个包
详细输出
bash
sudo tcpdump -i eth0 -v # 详细信息
sudo tcpdump -i eth0 -vv # 更详细信息
sudo tcpdump -i eth0 -vvv # 最详细信息
3. 常用过滤选项
按IP地址过滤
bash
sudo tcpdump -i eth0 host 192.168.1.100 # 特定主机
sudo tcpdump -i eth0 src 192.168.1.100 # 源地址
sudo tcpdump -i eth0 dst 192.168.1.100 # 目的地址
按端口过滤
bash
sudo tcpdump -i eth0 port 80 # HTTP流量
sudo tcpdump -i eth0 port 443 # HTTPS流量
sudo tcpdump -i eth0 port 22 # SSH流量
按协议过滤
bash
sudo tcpdump -i eth0 icmp # 只显示ICMP(ping)包
sudo tcpdump -i eth0 arp # 只显示ARP包
sudo tcpdump -i eth0 tcp # 只显示TCP包
4. 保存和读取捕获文件
保存到文件
bash
sudo tcpdump -i eth0 -w capture.pcap
读取保存的文件
bash
tcpdump -r capture.pcap
5. 实时监控特定流量示例
bash
# 监控HTTP流量并显示ASCII内容
sudo tcpdump -i eth0 -A port 80
# 监控特定子网的流量
sudo tcpdump -i eth0 net 192.168.1.0/24
# 组合条件:监控来自特定IP的HTTP流量
sudo tcpdump -i eth0 src 192.168.1.100 and port 80
6. 替代方案:使用 wireshark/tshark
如果想用图形界面或更强大的分析工具:
bash
# 安装wireshark
sudo apt install wireshark
# 命令行版本的wireshark
sudo apt install tshark
# 使用tshark
sudo tshark -i eth0
提示:
- 使用
Ctrl+C
停止捕获 - 如果没有
eth0
,可以用ip link show
查看实际的接口名 - 对于无线网络,接口名通常是
wlan0
这就是最简单实用的网络报文调试方法!