tcpdump
是一款强大的网络抓包工具,运行在Linux平台上。熟悉tcpdump
的使用能够帮助我们分析、调试网络数据。
在实际工作中,需要以root权限去执行该命令。
安装tcpdump工具
# yum install -y tcpdump
环境
1.准备两台机器
192.168.80.128 ----tcpdump-server
192.168.80.129 ----test-server
2.两台机器都关闭防火墙和selinux
六个标记
SYN(synchronous建立联机)
ACK(acknowledgement 确认) 用.表示
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
==========
Sequence number(顺序号码)
监听网卡端口为80的应用发出和接收的所有http协议包
#tcpdump -i port 80 -vv -nn
#curl http://192.168.80.128 #测试
监视ens33网卡上源地址192.168.80.129的所有网络包
#tcpdump -i ens33 src 192.168.80.129
#ssh 192.168.80.128 #测试
监视ens33网卡上的目的地址是192.168.80.129的网络包
#tcpdump -i ens33 dst 192.168.80.129
两台机器同时操作
# ip a
#抓来自192.168.80.129这台机器的imcp协议的包
#ping -c 1 192.168.80.128 #ping tcpdump的机器一次
PING 192.168.80.128 (192.168.80.128) 56(84) bytes of data.
64 bytes from 192.168.80.128: icmp_seq=1 ttl=64 time=0.751 ms
--- 192.168.80.128 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.751/0.751/0.751/0.000 ms
#tcpdump -i ens33 icmp -vv -nn
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
00:55:58.756161 IP (tos 0x0, ttl 64, id 33221, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.80.129 > 192.168.80.128: ICMP echo request, id 1139, seq 1, length 64
00:55:58.756254 IP (tos 0x0, ttl 64, id 11681, offset 0, flags [none], proto ICMP (1), length 84)
192.168.80.128 > 192.168.80.129: ICMP echo reply, id 1139, seq 1, length 64
echo request :请求包
echo reply:回复包
抓一个tcp的包--全部在文本模式下操作
# yum install -y epel*
# yum install -y nginx
# systemctl start nginx
]# curl -I http://192.168.80.128/ #测试访问
# tcpdump -i ens33 tcp -vv -nn -w tcp.txt #抓包tcp--在文本模式下
# curl -I http://192.168.80.128/ --访问
# ls
anaconda-ks.cfg tcp.txt ---抓包生成的文件,不能用vim查看
# tcpdump -r tcp.txt #读生成的文件
# tcpdump -i ens33 tcp -vv -nn
# curl -I http://192.168.80.128/ --访问,文本模式下
按shift键加pu键可以上翻。pd键可以下翻
=======导入wireshark
1.需要重新抓包一次并保存
# rm -rf tcp.txt #将原来的删除
# curl -I http://192.168.80.120
2.用客户端工具连接tcpdump-server的机器将产生的文件导入wireshark中
# ls
tcp.txt
# sz tcp.txt #下载到桌面