tcpdump

时间:2019-04-29 03:17:35  来源:igfitidea点击:

使用tcpdump分析网络数据包

什么是tcpdump?

tcpdump是命令行驱动的数据包嗅探工具。tcpdump用于捕获计算机发送和接收的数据包。tcpdump通常用作网络管理工具,以帮助调试网络问题。tcpdump基于传递的表达式显示捕获的网络数据包内容的描述。tcpdump必须以root运行。

tcpdump基本捕获命令

tcpdump的最简单形式:tcpdump

tcpdump

tcpdump将持续向stdout显示捕获的信息,直到遇到SIGINT信号为止。通常是按下 Crtl + C

10:57:44.025286 IP server1.ubuntu > server1.centos.2986: P 462764:462912(148) ack 79613 win 16616
10:57:44.025427 IP server1.ubuntu > server1.centos.2986: P 462912:463060(148) ack 79613 win 16616
10:57:44.025538 IP server1.ubuntu > server1.centos.2986: P 463060:463208(148) ack 79613 win 16616

tcpdump -A

在Ascii中显示数据包

tcpdump -c 20

通过指定-c标志,我们指示tcpdump仅捕获20个数据包。一旦捕获的数据包数量与该值匹配,tcpdump将停止其捕获过程。

tcpdump -D

显示系统上可用的网络接口列表,tcpdump可以将其捕获数据包。对于找到的每个接口,都会显示一个以数字为前缀的列表。然后,该信息可以与-i接口选项一起使用。

# tcpdump -D
1.eth0
2.any (Pseudo-device that captures on all interfaces)
3.lo

tcpdump host centos01

仅显示包含主机名centos01的数据

tcpdump -e

在每个转储行上显示链接级别标题。

tcpdump -F filter_file_name

使用过滤器文件捕获流量。在下面的示例中,我们创建了一个非常简单的过滤器文件:创建一个配置过滤器的文件(此处为TCP 80端口)

# vi Filter_File_Name
port 80

tcpdump -i 接口

在特定接口上捕获。如果没有接口传递给tcpdump命令,则tcpdump将在接口列表中搜索编号最少的已配置up接口。

tcpdump -L

列出到标准输出的已知数据链接类型:

# tcpdump -L
Data link types (use option -y to set):
  DOCSIS (DOCSIS) (not supported)
  EN10MB (Ethernet

tcpdump -n

-n选项强制显示数字地址而不是进行DNS解析:

tcpdump port http

仅捕获端口80。

tcpdump -q

显示较少的协议信息,从而缩短输出行。

tcpdump -r capture_file_name

从使用-w选项创建的文件或通过wireshark创建的文件中读取数据包信息

tcpdump src 192.168.0.11 and dst 192.168.0.18 and port ftp

显示从192.168.0.11到目标地址192.168.0.18的使用ftp端口的数据包

tcpdump -t

不要在每行都打印时间戳。

tcpdump -tt

在每行上打印未格式化的时间戳。

tcpdump -ttt

在每行的当前行和上一行之间打印增量(以微秒为单位)。

tcpdump -tttt

以缺省格式在每个行上按日期打印时间戳。

tcpdump -u

仅捕获UDP信息。

tcpdump -v

详细输出:打印IP数据包中的生存时间,标识,总长度和选项。

tcpdump -vv

非常详细选项。

tcpdump -vvv

非常详细选项。

tcpdump -vv

-vv是非常详细的选项

tcpdump -w capture_file_name

将原始数据包写入文件。以后可以使用-r选项读取它们。

tcpdump -w capture_file_name -i 接口

将原始数据包从指定接口写入指定文件。以后可以使用-r选项回读这些数据包。