在CentOS系统中,常用的网络抓包工具是tcpdump。它是一款命令行网络数据包分析器,允许用户捕获并显示通过网络接口传输的数据包。以下是对tcpdump抓包命令的详细解析:
一、安装tcpdump
sudo yum install tcpdump -y
二、基本使用
1. 捕获所有接口上的数据包
sudo tcpdump
此命令会抓取经过系统所有网络接口的数据包,并以默认格式显示。
2. 指定接口捕获数据包
sudo tcpdump -i [接口名称]
-i:指定网络接口。
[接口名称]:要监控的网络接口名称,如eth0、ens33等,可以使用ifconfig或ip a命令查看系统中的网络接口。
3. 捕获特定数量的数据包
sudo tcpdump -c [数量] -i [接口名称]
-c:指定捕获的数据包数量。
[数量]:要捕获的数据包个数。
4.保存捕获的数据包到文件
sudo tcpdump -w [文件名] -i [接口名称]
-w:将捕获的数据包保存到指定文件。
[文件名]:保存数据包的文件名,通常以.pcap为后缀。
实战总结
常用的tcpdump命令使用格式: tcpdump -i [interface] host [ip1] and host [ip2] and prot [prot] -Xs0 -w
tcpdump 的抓包保存到文件的命令参数是-w xxx.cap
抓eth1的包
tcpdump -i eth1 -w /tmp/xxx.cap
抓 192.168.1.1的包
tcpdump -i eth1 host 192.168.1.1 -w /tmp/xxx.cap
抓192.168.1.1的80端口的包
tcpdump -i eth1 host 192.168.1.1 and port 80 -w /tmp/xxx.cap
抓192.168.1.1的icmp的包
tcpdump -i eth1 host 192.168.1.1 and icmp -w /tmp/xxx.cap
抓192.168.1.1的80端口和110和25以外的其他端口的包
tcpdump -i eth1 host 192.168.1.1 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap
捕获源IP地址为特定地址的数据包:
sudo tcpdump src [IP地址] -i [接口名称]
例如,捕获源IP地址为192.168.1.1的数据包:
sudo tcpdump src 192.168.1.1 -i eth0
捕获目的IP地址为特定地址的数据包:
sudo tcpdump dst [IP地址] -i [接口名称]
例如,捕获目的IP地址为192.168.1.1的数据包:
sudo tcpdump dst 192.168.1.1 -i eth0
捕获源或目的IP地址为特定地址的数据包:
sudo tcpdump host [IP地址] -i [接口名称]
例如,捕获源或目的IP地址为192.168.1.1的数据包:
sudo tcpdump host 192.168.1.1 -i eth0
捕获特定端口的数据包:
sudo tcpdump port [端口号] -i [接口名称]
例如,捕获目的端口为80(HTTP)的数据包:
sudo tcpdump dst port 80 -i eth0
捕获源IP地址和端口号的数据包:
sudo tcpdump src [IP地址] and port [端口号] -i [接口名称]
例如,捕获源IP地址为192.168.1.1且端口为80的数据包:
sudo tcpdump src 192.168.1.1 and port 80 -i eth0
捕获TCP协议的数据包:
sudo tcpdump tcp -i [接口名称]
捕获UDP协议的数据包:
sudo tcpdump udp -i [接口名称]
使用逻辑运算符组合过滤条件:
and:多个条件同时满足。
or:多个条件之一满足即可。
not:排除某些条件。
例如,捕获源IP地址为192.168.1.1或192.168.1.2的数据包:
sudo tcpdump src 192.168.1.1 or src 192.168.1.2 -i eth0