如果需要在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
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!