tcpdump命令也称为数据包分析器。
tcpdump命令将在大多数版本的Unix操作系统上运行。 tcpdump允许我们保存捕获的数据包,以便我们可以将其用于将来的分析。可以使用相同的tcpdump命令查看保存的文件。我们还可以使用Wireshark等开源软件来读取tcpdump pcap文件。
在本tcpdump教程中,让我们讨论一些有关如何使用tcpdump命令的实际示例。
1. Capture packets from a particular 道德ernet interface using tcpdump -i
不执行任何选项而执行tcpdump命令时,它将捕获流过所有接口的所有数据包。 tcpdump命令的-i选项允许您在特定的以太网接口上进行过滤。
$ tcpdump -i 道德1 14:59:26.608728 IP xx.domain.netbcp.net.52497 > valh4.lell.net.ssh: . ack 540 win 16554 14:59:26.610602 IP resolver.lell.net.domain > valh4.lell.net.24151: 4278 1/0/0 (73) 14:59:26.611262 IP valh4.lell.net.38527 > resolver.lell.net.domain: 26364+ PTR? 244.207.104.10.in-addr.arpa. (45)
In this example, tcpdump captured all the packets flows in the interface 道德1 和 displays in the standard output.
注意: 编辑帽 实用程序用于从转储文件中选择或删除特定的数据包,并将其转换为给定的格式。
2.使用tcpdump -c仅捕获N个数据包
当您执行tcpdump命令时,它将提供数据包,直到您取消tcpdump命令为止。使用-c选项,您可以指定要捕获的数据包数量。
$ tcpdump -c 2 -i 道德0 listening 上 道德0, link-type EN10MB (Ethernet), 捕获大小 96 通过tes 14:38:38.184913 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457255642:1457255758(116) ack 1561463966 win 63652 14:38:38.690919 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652 2 packets captured 13 packets received 通过 filter 0 packets dropped 通过 kernel
The above tcpdump命令 captured 上ly 2 packets from interface 道德0.
注意: Mergecap 和 TShark:Mergecap是一个数据包转储合并工具,它将多个转储合并到一个转储文件中。 Tshark是捕获网络数据包的强大工具,可用于分析网络流量。它带有wireshark网络分析仪发行版。
3.使用tcpdump -A以ASCII显示捕获的数据包
以下tcpdump语法以ASCII格式打印数据包。
$ tcpdump -A -i 道德0 tcpdump:禁止详细输出,请使用-v或-vv进行完整协议解码 listening 上 道德0, link-type EN10MB (Ethernet), 捕获大小 96 通过tes 14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652 [email protected]@..]..i...9...*.V...]...P....h....E...>{..U=...g. ......G..7\+KA....A...L. 14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652 [email protected]@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba... E..([email protected]|.....9...i.*...]...V..*P..OWp........
注意: Ifconfig 该命令用于配置网络接口
4. Display Captured Packets in HEX 和 ASCII using tcpdump -XX
一些用户可能希望以十六进制值分析数据包。 tcpdump提供了一种以ASCII和HEX格式打印数据包的方法。
$tcpdump -XX -i 道德0 18:52:54.859697 IP zz.domain.innetbcp.net.63897 > valh4.lell.net.ssh: . ack 232 win 16511 0x0000: 0050 569c 35a3 0019 bb1c 0c00 0800 4500 .PV.5.........E. 0x0010: 0028 042a 4000 7906 c89c 10b5 aaf6 0f9a .(.*@.y......... 0x0020: 69c4 f999 0016 57db 6e08 c712 ea2e 5010 i.....W.n.....P. 0x0030: 407f c976 0000 0000 0000 0000 @..v........ 18:52:54.877713 IP 10.0.0.0 > all-systems.mcast.net: igmp query v3 [max resp time 1s] 0x0000: 0050 569c 35a3 0000 0000 0000 0800 4600 .PV.5.........F. 0x0010: 0024 0000 0000 0102 3ad3 0a00 0000 e000 .$......:....... 0x0020: 0001 9404 0000 1101 ebfe 0000 0000 0300 ................ 0x0030: 0000 0000 0000 0000 0000 0000 ............
5. Capture the packets 和 write into a file using tcpdump -w
tcpdump允许您将数据包保存到文件中,以后您可以使用数据包文件进行进一步分析。
$ tcpdump -w 08232010.pcap -i 道德0 tcpdump: listening 上 道德0, link-type EN10MB (Ethernet), 捕获大小 96 通过tes 32 packets captured 32 packets received 通过 filter 0 packets dropped 通过 kernel
-w选项将数据包写入给定文件。文件扩展名应为.pcap,任何网络协议均可读取
分析仪。
6.使用tcpdump -r从保存的文件中读取数据包
You can read the captured pcap file 和 view the packets for analysis, as shown below.
$tcpdump -tttt -r data.pcap 2010-08-22 21:35:26.571793 00:50:56:9c:69:38 (oui Unknown) > Broadcast, 道德ertype Unknown (0xcafe), length 74: 0x0000: 0200 000a ffff 0000 ffff 0c00 3c00 0000 ............<... 0x0010: 0000 0000 0100 0080 3e9e 2900 0000 0000 ........>.)..... 0x0020: 0000 0000 ffff ffff ad00 996b 0600 0050 ...........k...P 0x0030: 569c 6938 0000 0000 8e07 0000 V.i8........ 2010-08-22 21:35:26.571797 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 800464396:800464448(52) ack 203316566 win 71 2010-08-22 21:35:26.571800 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 52:168(116) ack 1 win 71 2010-08-22 21:35:26.584865 IP valh5.lell.net.ssh > 11.154.12.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADC
7.使用tcpdump -n捕获具有IP地址的数据包
在以上所有示例中,它打印带有DNS地址而不是IP地址的数据包。以下示例捕获数据包,并将显示所涉及机器的IP地址。
$ tcpdump -n -i 道德0 15:01:35.170763 IP 10.0.19.121.52497 > 11.154.12.121.ssh: P 105:157(52) ack 18060 win 16549 15:01:35.170776 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 23988:24136(148) ack 157 win 113 15:01:35.170894 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 24136:24380(244) ack 157 win 113
8.使用tcpdump -tttt捕获具有正确可读时间戳的数据包
$ tcpdump -n -tttt -i 道德0 2010-08-22 15:10:39.162830 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 49800 win 16390 2010-08-22 15:10:39.162833 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 50288 win 16660 2010-08-22 15:10:39.162867 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 50584 win 16586
9.读取长度超过N个字节的数据包
您只能使用过滤器接收大于n个字节的数据包‘greater’通过tcpdump命令
$ tcpdump -w g_1024.pcap 更大的 1024
10.仅接收特定协议类型的数据包
您可以根据协议类型接收数据包。您可以指定以下协议之一—fddi,tr,wlan,ip,ip6,arp,rarp,decnet,tcp和udp。以下示例仅捕获流经eth0接口的arp数据包。
$ tcpdump -i 道德0 arp tcpdump:禁止详细输出,请使用-v或-vv进行完整协议解码 listening 上 道德0, link-type EN10MB (Ethernet), 捕获大小 96 通过tes 19:41:52.809642 arp who-has valh5.lell.net tell valh9.lell.net 19:41:52.863689 arp who-has 11.154.12.1 tell valh6.lell.net 19:41:53.024769 arp who-has 11.154.12.1 tell valh7.lell.net
11. Read packets 减er than N 通过tes
您只能使用过滤器接收少于n个字节的数据包‘less’通过tcpdump命令
$ tcpdump -w l_1024.pcap 减 1024
12.使用tcpdump端口接收特定端口上的数据包流
如果要了解计算机上特定端口接收的所有数据包,可以使用tcpdump命令,如下所示。
$ tcpdump -i 道德0 port 22 19:44:44.934459 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 18932:19096(164) ack 105 win 71 19:44:44.934533 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 19096:19260(164) ack 105 win 71 19:44:44.934612 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 19260:19424(164) ack 105 win 71
13. Capture packets for particular destination IP 和 Port
数据包将具有源和目标IP和端口号。使用tcpdump,我们可以在源或目标IP和端口号上应用过滤器。以下命令捕获具有特定目标ip和端口号22的eth0中的数据包流。
$ tcpdump -w xpackets.pcap -i 道德0 dst 10.181.140.216 和 port 22
14.捕获两个主机之间的TCP通信数据包
如果来自两个不同机器的两个不同进程正在通过tcp协议进行通信,则可以使用tcpdump捕获这些数据包,如下所示。
$tcpdump -w comm.pcap -i 道德0 dst 16.181.170.246 和 port 22
您可以使用任何网络协议分析器工具打开文件comm.pcap来调试任何潜在的问题。
15. tcpdump过滤器数据包– Capture all the packets other than arp 和 rarp
在tcpdump命令中,您可以给“and”, “or” 和 “not”条件以相应地过滤数据包。
$ tcpdump -i 道德0 不 arp 和 不 rarp 20:33:15.479278 IP resolver.lell.net.domain > valh4.lell.net.64639: 26929 1/0/0 (73) 20:33:15.479890 IP valh4.lell.net.16053 > resolver.lell.net.domain: 56556+ PTR? 255.107.154.15.in-addr.arpa. (45) 20:33:15.480197 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 540:1504(964) ack 1 win 96 20:33:15.487118 IP zz.domain.innetbcp.net.63897 > valh4.lell.net.ssh: . ack 540 win 16486 20:33:15.668599 IP 10.0.0.0 > all-systems.mcast.net: igmp query v3 [max resp time 1s]
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
Why 不 use wireshark?