TCPdump工具的使用方法
tcpdump简介
tcpdump是一个用于网络数据包捕获和分析的常用命令行工具。它在各种Unix和Linux操作系统上可用,用于监视和分析网络通信,以便进行故障排除、网络性能分析和安全审计。
tcpdump支持众多的命令行选项和过滤表达式,允许用户以不同方式捕获和分析网络数据包。用户可以根据自己的需求创建适当的命令来监视网络流量,进行故障排除或进行网络安全审计。需要注意的是,使用 `tcpdump` 需要具有足够的权限来访问网络接口。
tcpdump基本用法和一些常用参数
-
捕获某个网口的所有数据包(不设置该参数时默认为eth0,还得看自己网口的名称,如何查看自己的网口信息,请参考我的下一篇文章):
tcpdump -i eth0
-
捕获与特定主机相关的数据包,如果要指定不抓取某个主机的数据包,只需要在
host
后面添加一个not
:tcpdump -i eth0 host 192.168.1.100
这将仅捕获与主机IP地址为
192.168.1.100
有关的数据包。tcpdump -i eth0 host not 192.168.1.100
这将仅捕获与主机IP地址
192.168.1.100
不相关的数据包。 -
捕获指定端口的数据包:
tcpdump -i eth0 port 80
这将捕获目标或源端口为80的数据包,通常是HTTP流量。
-
保存捕获数据包到文件:
tcpdump -i eth0 -w capture.pcap
这将捕获的数据包保存到名为
capture.pcap
的文件中,以便以后分析。 -
显示数据包内容以ASCII文本格式:
tcpdump -i eth0 -A
这将以可读的ASCII文本格式显示捕获的数据包内容。
-
指定源IP与目的端口,同样也可以指定源端口与目的IP:
tcpdump -i eth0 'src host 192.168.1.100 and dst port 22'
这将捕获从IP地址
192.168.1.100
发出并目标端口为22的数据包,通常是SSH流量,其中的src(source,从自己出发的)指的是源,dst(destination,发出去的)指的是目的。 -
捕获指定数量的数据包后停止:
tcpdump -i eth0 -c 50
这将捕获50个数据包后停止捕获。
-
仅捕获小于指定大小的数据包,less捕获小于目标值的数据包,greater用于捕获大于目标值的数据包:
tcpdump -i eth0 less 100
这将仅捕获小于100字节大小的数据包。
-
指定协议抓取数据包,如TCP、UDP、ICMP等:
tcpdump -i eth0 tcp
这将仅捕获所有tcp协议的数据包。