前言

日常运维中,我们经常会用到抓包工具来捕获一些数据以便来分析业务系统收发包情况,今天我们将一起学习下如何在银河麒麟服务器操作系统上使用tcpdump工具进行抓包分析。


一、tcpdump是什么?

tcpdump 是一个强大的网络监控工具,它允许用户自定义地过滤网上流量数据包,同时它是一款命令行程序,我们可以在没有ui的linux服务器上运行它,达到我们的抓包目的。

二、工具软件安装

查询系统是否已安装tcpdump:

rpm -qa |grep tcpdump   #若返回如下 ,说明系统已安装

在这里插入图片描述
在线安装命令

sudo yum install -y tcpdump

二、工具命令简介

1、列出所有网卡
命令:tcpdump -D

[root@localhost ~]# tcpdump -D
1.ens33 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
7.bluetooth0 (Bluetooth adapter number 0) [none]
8.usbmon0 (Raw USB traffic, all USB buses) [none]
9.usbmon1 (Raw USB traffic, bus number 1)
10.usbmon2 (Raw USB traffic, bus number 2)
[root@localhost ~]#

2、抓取某个网口的包。
命令 tcpdump -i 接口

[root@localhost ~]# tcpdump -i ens33
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
17:37:11.870931 IP localhost.localdomain.ssh > 192.168.10.1.8532: Flags [P.], seq 2798748933:2798749013, ack 661567704, win 501, length 80

3、根据条件抓取报文
命令 tcpdump -i 接口 协议/端口号

[root@localhost ~]# tcpdump -i ens33 -c 4 port 80
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes

4、限制抓包数量
命令 tcpdump -i 接口 -c

[root@localhost ~]# tcpdump -i ens33 -c 3
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
17:43:34.941187 IP localhost.localdomain.ssh > 192.168.10.1.8532: Flags [P.], seq 2798802869:2798802917, ack 661574152, win 501, length 48
17:43:34.944467 IP localhost.localdomain.ssh > 192.168.10.1.8532: Flags [P.], seq 48:96, ack 1, win 501, length 48
17:43:34.945140 IP localhost.localdomain.ssh > 192.168.10.1.8532: Flags [P.], seq 96:144, ack 1, win 501, length 48
3 packets captured
8 packets received by filter
0 packets dropped by kernel
[root@localhost ~]#

5、抓包保存为pcap格式
命令 tcpdump -i 接口 -w xxxx.pcap

[root@localhost ~]# tcpdump -i ens33 -c 10 -w /home/test.pcap
dropped privs to tcpdump
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
10 packets captured
22 packets received by filter
0 packets dropped by kernel
[root@localhost ~]# ll /home/test.pcap
-rw-r--r-- 1 tcpdump tcpdump 935  7月 26 17:49 /home/test.pcap
[root@localhost ~]#

总结

tcpdump是一款非常好用的工具,可以很轻松实时分析解决我们在服务器上遇到的网络问题。

更多推荐