【tcpdump命令使用总结】

1.tcpdump说明

linux系统的tcpdump命令用来分析数据包分析工具,相似的工具有wireshark等,wireshark使用见【wireshark报文解析ping baidu.com】
执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员
如果不是root账户运行会出现

[potato@localhost ~]$ tcpdump
tcpdump:

2.语法及参数说明

2.1语法

tcpdump [-adeflnnopqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

2.2参数说明

-a 尝试将网络和广播地址转换成名称
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件

3.使用样例说明

只用root账户使用tcptump命令的话,获得的数据包超级多,不方便进行排查问题,因此得需要进行过滤
准备工作

#查看linux系统网卡信息
ifconfig

获取到的网卡信息如下,一般虚拟机的以太网网卡都是ens,这里ens33就是我们测试的网卡,ether就是网卡对应的mac地址

[root@localhost potato]# ifconfig
ens33: flags=4163<UP,broADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.198.145  netmask 255.255.255.0  broadcast 192.168.198.255
        inet6 fe80::1d:eebe:25e1:8e7d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a4:6e:7a  txqueuelen 1000  (Ethernet)
        RX packets 1326  bytes 126506 (123.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1118  bytes 132303 (129.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 11  bytes 1001 (1001.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11  bytes 1001 (1001.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,broADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:7f:f3:44  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.1根据ip地址过滤请求信息(host,src,dst)

#ping baidu.com获取百度的ip地址,得到baidu的ip为:39.156.66.10;
[root@localhost potato]# ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=128 time=67.6 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=128 time=66.1 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=128 time=76.1 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=4 ttl=128 time=78.9 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=5 ttl=128 time=70.1 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=6 ttl=128 time=78.9 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=7 ttl=128 time=72.5 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=8 ttl=128 time=76.5 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=9 ttl=128 time=78.0 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=10 ttl=128 time=60.7 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=11 ttl=128 time=67.5 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=12 ttl=128 time=65.6 ms
#开另外一个窗口获取百度相关的数据包

#监听ens33与所有主机相关的数据包
tcpdump -i ens33 host 39.156.66.10
#监听ens33与源地址主机相关的数据包
tcpdump -i ens33 scr 39.156.66.10
#监听ens33与目的主机相关的数据包
tcpdump -i ens33 dst 39.156.66.10

获取到相关数据包从左到右分别为:

请求时间 源ip地址 目的ip地址 协议类型 请求类型 请求序列号 标志 长度
01:46:47.718943 localhost.localdomain 39.156.66.10 ICMP request(请求) 3305 104 64
[root@localhost potato]# tcpdump -i ens33 | grep 39.156.66.10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
01:46:47.718943 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 104, length 64
01:46:47.777747 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 104, length 64
01:46:48.721386 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 105, length 64
01:46:48.782127 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 105, length 64
01:46:49.723747 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 106, length 64
01:46:49.792391 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 106, length 64
01:46:50.726134 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 107, length 64
01:46:50.790149 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 107, length 64
01:46:51.727692 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 108, length 64
01:46:51.786456 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 108, length 64
01:46:52.730669 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 109, length 64
01:46:52.791169 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 109, length 64
01:46:53.733012 IP localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 110, length 64
01:46:53.795976 IP 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 110, length 64

3.2查看数据链路层数据(mac地址)信息(-e)

通过-e命令可以查看,报文解析内容如下:

请求时间 源mac地址 目的mac地址 协议类型 长度 源ip地址 目的ip地址 协议类型 请求类型 请求序列号 标志 长度
01:48:09.891936 00:0c:29:a4:6e:7a 00:50:56:fb:7a:30 ethertype IPv4 98 localhost.localdomain 39.156.66.10 64 localhost.localdomain 39.156.66.10 ICMP request
#tcpdump -i ens33 -e | grep 39.156.66.10获取百度相关通信的包,并展示在每列倾倒资料上显示连接层级的文件头。
[root@localhost potato]# tcpdump -i ens33 -e host 39.156.66.10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
01:48:09.891936 00:0c:29:a4:6e:7a (oui UnkNown) > 00:50:56:fb:7a:30 (oui UnkNown), ethertype IPv4 (0x0800), length 98: localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 186, length 64
01:48:09.965766 00:50:56:fb:7a:30 (oui UnkNown) > 00:0c:29:a4:6e:7a (oui UnkNown), ethertype IPv4 (0x0800), length 98: 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 186, length 64
01:48:10.893545 00:0c:29:a4:6e:7a (oui UnkNown) > 00:50:56:fb:7a:30 (oui UnkNown), ethertype IPv4 (0x0800), length 98: localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 187, length 64
01:48:10.951369 00:50:56:fb:7a:30 (oui UnkNown) > 00:0c:29:a4:6e:7a (oui UnkNown), ethertype IPv4 (0x0800), length 98: 39.156.66.10 > localhost.localdomain: ICMP echo reply, id 3305, seq 187, length 64
01:48:11.895483 00:0c:29:a4:6e:7a (oui UnkNown) > 00:50:56:fb:7a:30 (oui UnkNown), ethertype IPv4 (0x0800), length 98: localhost.localdomain > 39.156.66.10: ICMP echo request, id 3305, seq 188, length 64

3.3监听端口

#对本机的UDP端口(123)进行监听
tcpdump udp port 123

3.4 ARP监听

[root@localhost potato]# tcpdump -i ens33 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
02:14:57.335964 ARP, Request who-has gateway tell localhost.localdomain, length 28
02:14:57.336343 ARP, Reply gateway is-at 00:50:56:fb:7a:30 (oui UnkNown), length 46
02:14:58.499764 ARP, Request who-has localhost.localdomain (00:0c:29:a4:6e:7a (oui UnkNown)) tell 192.168.198.1, length 46
02:14:58.499805 ARP, Reply localhost.localdomain is-at 00:0c:29:a4:6e:7a (oui UnkNown), length 28

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...