博客园  :: 首页  :: 管理

关于在linux中使用tcpdump命令进行简单的抓包操作方法

Posted on 2023-04-26 21:36  520_1351  阅读(356)  评论(0编辑  收藏  举报

如果需要在linux操作系统中对网络数据进行抓包,然后进行数据分析 ,一般使用最多的就是tcpdump命令了

这里笔者介绍一下,关于linux下tcpdump命令的简单使用方法,首先是需要在OS中安装tcpdump软件包的(最小化安装的系统中默认是没有tcpdump命令的)

[root@localhost qq-5201351]# yum install tcpdump -y

关于tcpdump命令,最简单的使用就是直接只执行 tcpdump命令, 可以不添加任何选项,

如果不添加任何选项,那么是抓取的那个网卡数据包呢,我们可以从帮助手册中看到,也会根据如下条件选择一个网络接口

If unspecified, tcpdump searches the system interface list

for the lowest numbered, configured up interface (exclud‐ing loopback), which may turn out to be, for example, ``eth0''.

因此我们最好还是指定网络接口,可以结果更加可靠严谨

tcpdump -i eth0 -vnn    

说明:对于选项,其中-n代表以ip数字形式代替名称,再加上一个n,代表以数字形式代替端口协议名称

关于-v选项(最多可以指定-vvv):When parsing and printing, produce (slightly more) verbose output

# 抓取eth0网络接口上,包含主机1.1.1.1的所有数据包,另外,关于主机也可以使用域名的如
tcpdump -i eth0 -vnn host 1.1.1.1

# 指定源IP(使用src host), 如果是目标IP(使用dst host)
tcpdump -i eth0 -nn src host 2.2.2.2

# 指定源端口Port(使用src port), 如果是目标IP(使用dst port), 也可以直接使用port同时表示源和目标
tcpdump -i eth0 -nn dst port 443

多个条件的组合的使用,可以使用and, or 等关键词进行组合,如下,只抓取指定源IP并且包含指定端口数据包

tcpdump -i eth0 -nn src host 3.3.3.3 and dst port 443

另外,还有一些小技巧,可以将结果直接输出到文件(当然这里我们是否使用-vnn选项对于结果文件都没有影响的)

tcpdump -i eth0 -vnn host www.abc.com -w xxxxxx.dump

其中-n最多指定两个,-v最多可以指定三个,抓取后的文件格式为:

[root@localhost qq-5201351]# file xxxxxx.dump
xxxxxx.dump: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)
[root@localhost qq-5201351]# 

对于文件,也是可以通过tcpdump -r 进行读取的,笔者也将在另外的文章中进行单独地详细说明

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17357444.html