zoukankan      html  css  js  c++  java
  • tcpdump抓包

    tcpdump简单来说就是输出网络上的数据报文。可以根据使用者的选择来对网络上的数据报文进行截获并进行分析。

    可以根据网络协议、物理接口、ip地址和端口号等各种条件进行过滤,还可以对抓获报文大小进行控制,等等。

    1. 抓取报文

    最简单的开始捕获报文的方法是直接使用tcpdump并指定捕获的网卡名称即可。

    tcpdump -i eth0

    可以使用ctrl+c来结束捕获程序。tcpdump的可视化输出功能有限。通常是捕获报文并保存下来,然后使用图形用户界面软件wireshark来分析。

    可以使用-w选项来指定文件名即可将报文保存下来。

    tcpdump -i eth0 -s 1500 -w aaa.cap

    tcpdump有很多参数来控制在哪里捕获,如何捕获,以及捕获文件如何保存处理等选项,

    -i interface 指定监听的网卡

    -s  指定每个报文中截取的数据长度,不是缺省的68字节。如果仅仅对报头感兴趣,可以不使用该选项,指定为0说明不限制报文长度,而是捕获整个报文。一般以太网的MTU值为1500,因此指定长度为1500即可。

    -w filename  报文保存到文件

    -c 当收到指定报文个数后退出

    -e 打印链接头,如MAC地址(print the link-level header on each dump line. This can be used, to print MAC layer addresses for protocols)。

    -n 不要将IP地址和端口号进行转换,转换需要CPU时间

    -G <rotate_seconds> 每隔指定的时间,将捕获的报文循环保存为新文件。需要-w配合使用,并指定时间格式才能循环保存文件,否则覆盖原来文件。常用事件格式%d(每月中的第几天),%H(当前的小时时间),%M(当前的分钟时间),%S(当前的秒时间)。

    -D 输出tcpdump可以捕获的接口列表,包含接口编号和接口名称

    -v 当解析或打印时输出详细的信息。例如报文的生存时间TTL、ID等IP报文选项。

    -r 读取有-w创建的报文

    -t 不打印时间戳

    tcpdump -i eth0 -s 1500 -G 60 -w  wang%H%M%s.pcap
    
    tcpdump -i eth0 -n -v -c 500

    2. 匹配规则

    只有符合表达式要求的报文才会被抓取到。

    表达式由一个或多个基本元素加上连接符组成,这些基本元素也称为原语,是指不可分割的最小单元。基本元素由一个ID和一个或多个修饰符组成,有3种不同类型的修饰符。

    第一种是类型修饰符,共4个类型修饰符,分别为host、net、port和portrange。

    host指定要捕获的主机或ip地址。

    net需要捕获报文的子网。

    port和portrange分别用于指定端口和端口范围。

    第二种是传输方向的修饰符,包括src和dst。不仅可修饰地址,也可修饰端口。

    tcpdump -i eth0 'dst port 80' -v
    tcpdump -i eth0 'prot 5060 and src 192.168.1.100' -v

    第三种是协议修饰符,可以基于特定的协议来进行过滤,可以是IP、ARP、RARP、ICMP、TCP和UDP等协议类型,如tcp port 21、udp port 5060等。

    另外这些原语可以使用and(&&)、or(||)和not(!)来进行运算组合。所有的报文集合是全集,可以进行交、并和补集运算。在多个层次的集合运算时,可以使用小括号来分割其集合运算符的结合关系。

    tcpdump -i eth0 -s0 -w wang.pcap host 10.0.0.15
    tcpdump -i eth0 -w aaa.pcap port 59 or port 53 or port 80 or arp or icmp

    摘自:智能路由器开发指南

  • 相关阅读:
    webpack loader和插件的编写原理
    vue和react原理性知识点
    详谈Javascript类与继承
    vue项目中要实现展示markdown文件[转载]
    前端知识总结--2 js部分
    前端知识总结--html
    react相关知识点总结
    优秀文章
    项目部署服务器2
    项目部署服务器
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/6940350.html
Copyright © 2011-2022 走看看