zoukankan      html  css  js  c++  java
  • tcpdump工具使用

    一.简单介绍

    tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

    二.使用语法

    语法:

    tcpdump (选项参数)
    

    抓包选项:

    -c <数据包数目>:    指定要抓取的包数量
    -i <网卡接口>:    指定tcpdump需要监听的接口,默认会抓取第一个网络接口;
    -n:    对地址以数字方式显示,否则显示为主机名,也就是说-n选项不做主机名解析;
    -nn:   除了-n的作用外,还把端口显示为数值,否则显示端口服务名;
    -P:    指定要抓取的包是流入还是流出的包,可以给定的值为"in"、"out"和"inout",默认为"inout";
    -s <数据包长度>:    设置tcpdump的数据包抓取长度为len,如果不设置默认为65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断。
    

    输出选项:

    -e:    输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
    -q:    快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
    -X:    输出包的头部数据,会以16进制和ASCII两种方式同时输出。
    -XX:   输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
    -v:    当分析和打印的时候,产生详细的输出。
    -vv:   产生比-v更详细的输出。
    -vvv:  产生比-vv更详细的输出
    

    其它功能选项:

    -D:    列出可用于抓包的接口,将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
    -F:    从文件中读取抓包的表达式,若使用该选项,则命令行中给定的其它表达式都将失效。
    -w:    将抓包数据输出到文件中而不是标准输出,这里可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
    -r:    从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。
    

    三.具体使用示例

    3.1 默认启动

    tcpdump
    

    默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包,这样抓取的结果会非常多,滚动非常快。

    3.2 监视指定网口的数据包

    tcpdump -i em2
    

    3.3 监视指定主机的数据包

    例如这里监视所有进入或离开node1的数据包:

    tcpdump -i em2 host node1
    

    3.4 打印node1和node2或者node1和node3之间通信的数据包

    tcmdump -i em2 host node1 and node2
    tcmdump -i em2 host node1 and node3
    

    3.5 打印node1和其它所有(不包含node4)主机之间通信的IP数据包

    tcpdump -i em2 host node1 and not node4
    

    3.6 截获主机node1发送的所有数据

    tcpdump -i em2 src host node1
    

    3.7 监视所有发送到主机node1的数据包

    tcpdump -i em2 dst host node1
    

    3.8 监视指定主机和端口的数据包

    tcpdump -i em2 port 22 and host node1
    

    3.9 监视指定网络的数据包

    例如这里监视本机与192.168网段通信的数据包,"-c 10"表示只抓取10个包

    tcpdump -i em2 -c 10 net 192.168
    

    3.10 抓取ping包

    tcpdump -c 5 -nn -i ens33
    

    3.11 抓取到本机22端口的包

    tcpdump -c 10 -nn -i em2 tcp dst port 22
    

    3.12 解析包的数据

    tcpdump -c 2 -q -XX -vvv -nn -i em2 tcp dst port 22
    

    参考链接:https://www.jianshu.com/p/d9162722f189

  • 相关阅读:
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    FFmpeg解码H264及swscale缩放详解
    linux中cat more less head tail 命令区别
    C语言字符串操作总结大全(超详细)
    如何使用eclipse进行嵌入式Linux的开发
  • 原文地址:https://www.cnblogs.com/yuhaohao/p/13825694.html
Copyright © 2011-2022 走看看