Linux下使用tcpdump对网络数据包进行截获与分析

Linux知识
0 871

tcpdump可以将网络中传送的数据包完全截获下来供我们分析,它支持网络层、协议、主机、网络或端口号的过滤,并提供了and、or、not等逻辑语句来让我们更进一步筛选我们需要的数据。

基本用法

默认启动

tcpdump

默认情况下,直接使用tcpdump将默认监视第一个网络接口上传输的网络数据包.

监视指定网络接口上传输的数据包

tcpdump -i eth1

上条指令将监视第二个以太网接口上传输的数据包,第一个是eth0.

如果在测试自己编写的网络相关的代码时,需要截取本地的环回数据,则需要指定为监视环回数据,因为环回数据不经过以太网接口,指令如下:

tcpdump -i lo

监视指定主机上传输的数据包

tcpdump host 192.168.12.34 and \ (192.168.34.56\ )

监视IP为192.168.12.34和IP为192.168.34.56的主机上传输的数据包,这是使用and之后获取更准确更多数据的方法.

也可以通过使用not or等逻辑词对截获条件进行更准确的限定.

监视指定主机和端口上传输的数据包

tcpdump host 192.168.12.34 and port 8080

也可以在端口号前指定相关协议,更准确地抓取数据包.

监视指定网络的数据包

tcpdump net 192.168.12.34

截获所有网络地址为192.168.12.34的网络数据包.