zoukankan      html  css  js  c++  java
  • linux下的tcpdump

    前期主要介绍了wireshark抓包工具的基本和组合用法,这款工具可以与tcpdump进行结合,在Linux主机用tcpdump抓取我们需要的数据包,然后保存在本地,最后用wireshark工具打开进行查看数据包。这里先介绍tcpdump如何使用。
    TCPDump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
    ---来源百度百科

    1、查看tcpdump帮助命令:

    tcpdump --help

    -A:以ASCII编码打印每个报文(不包括链路层的头),这对分析网页来说很方便;
    -a:将网络地址和广播地址转变成名字;
    -c<数据包数目>:在收到指定的包的数目后,tcpdump就会停止;
    -C:用于判断用 -w 选项将报文写入的文件的大小是否超过这个值,如果超过了就新建文件(文件名后缀是1、2、3依次增加);
    -d:将匹配信息包的代码以人们能够理解的汇编格式给出;
    -dd:将匹配信息包的代码以c语言程序段的格式给出;
    -ddd:将匹配信息包的代码以十进制的形式给出;
    -D:列出当前主机的所有网卡编号和名称,可以用于选项 -i;
    -e:在输出行打印出数据链路层的头部信息;
    -f:将外部的Internet地址以数字的形式打印出来;
    -F<表达文件>:从指定的文件中读取表达式,忽略其它的表达式;
    -i<网络界面>:监听主机的该网卡上的数据流,如果没有指定,就会使用最小网卡编号的网卡(在选项-D可知道,但是不包括环路接口),linux 2.2 内核及之后的版本支持 any 网卡,用于指代任意网卡;
    -l:如果没有使用 -w 选项,就可以将报文打印到 标准输出终端(此时这是默认);
    -n:显示ip,而不是主机名;
    -N:不列出域名;
    -O:不将数据包编码最佳化;
    -p:不让网络界面进入混杂模式;
    -q:快速输出,仅列出少数的传输协议信息;
    -r<数据包文件>:从指定的文件中读取包(这些包一般通过-w选项产生);
    -s<数据包大小>:指定抓包显示一行的宽度,-s0表示可按包长显示完整的包,经常和-A一起用,默认截取长度为60个字节,但一般ethernet MTU都是1500字节。所以,要抓取大于60字节的包时,使用默认参数就会导致包数据丢失;
    -S:用绝对而非相对数值列出TCP关联数;
    -t:在输出的每一行不打印时间戳;
    -tt:在输出的每一行显示未经格式化的时间戳记;
    -T<数据包类型>:将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议);
    -v:输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
    -vv:输出详细的报文信息;
    -x/-xx/-X/-XX:以十六进制显示包内容,几个选项只有细微的差别,详见man手册;
    -w<数据包文件>:直接将包写入文件中,并不分析和打印出来;
    expression:用于筛选的逻辑表达式
    

    2、启动默认抓取命令:

    tcpdump --将会抓取主机的相关的所有的数据包信息

    3、抓取特定网卡口的流量:

    一般在生产环境中,一台服务器为了业务的需要,需要设置多个网卡口,这样我们在抓取书包的时候,
    需要制定我们想要的数据包的网卡口。
    tcpdump -i 网卡扣的名称

    4、抓取指定端口的数据包:

    tcpdump -i ens33 port 80 ---抓取访问本地主机的80端口的数据包

    5、根据协议进行抓取数据包

    tcpdump -i ens33 icmp ---抓取ping主机的icmp数据包。
    tcpdump udp port 2323 --抓取udp数据包。

    6、抓取指定主机的数据包

    tcpdump -vv host 192.168.19.129 -i ens33

    7、逻辑关系参数

    and --逻辑与;
    or --逻辑或,
    ! --逻辑非

    7.1 逻辑与:

    抓取经过网卡口ens33,并且过滤主机是192.168.19.2的icmp数据包
    tcpdump -i ens33 -v ip host 192.168.19.136 and ! 192.168.19.2 and icmp

    7.2 逻辑或

    抓取192,168.19.1或者136主机ping主机129的数据包
    tcpdump -i ens33 -vv ip host 192.168.19.129 and (192.168.19.1 or 192.168.19.136 ) and icmp

    8、抓取经过某个主机网卡口的所有流量

    tcpdump -i ens33 -vv host 192.168.19.129
    抓取经过主机ens33网卡口的icmp的数据包信息。
    tcpdump -i ens33 -vv host 192.168.19.129 and icmp

    9、抓取某个主机发出的所有的流量

    抓取主机192.168.19.129主机发出的icmp数据包
    tcpdump -i ens33 src host 192.168.19.129 and icmp

    10、抓取某个主机接受的所有的流量

    抓取主机192.168.19.129主机几首的icmp数据包
    tcpdump -i ens33 src host 192.168.19.129 and icmp

    11、抓取所有经过ens33,网络是 192.168上的数据包

    tcpdump -i ens33 net 192.168 and icmp
    抓取所有经过ens33,网络源地址为192.168的数据包。
    tcpdump -i en0 src net 192.168
    抓取所有经过ens33,网络目的地址为192.168的数据包。
    tcpdump -i en0 dst net 192.168
    抓取所有经过ens33,网络地址为192.168.1的数据包。
    tcpdump -i en0 net 192.168.1
    抓取所有经过ens33,网络地址为1.0的C端。
    tcpdump -i en0 net 192.168.1.0/24

    12、1、首先抓取与192.168.19.129主机之间的通信,并保存在本地,文件名为1.pcap。

    13、使用wireshark将1.pacp文件导入,这样我们就可以进行本地查看

  • 相关阅读:
    Java编程思想学习(三)----第三章:操作符
    mybatis入门
    responsebody和requestbody的使用
    一个Interface 继承多个Interface 的总结
    requirejs中Shims使用说明
    java 中解析json步骤
    @transient加在属性前的作用
    实现serializable接口的作用
    springmvc源码解析-初始化
    @RequestMapping注解详解
  • 原文地址:https://www.cnblogs.com/0x7e/p/13935527.html
Copyright © 2011-2022 走看看