zoukankan      html  css  js  c++  java
  • tcpdump使用方法小结

    在进行网络测试的时候,我们经常需要进行抓包的工作,当然有许多测试工具可以使用,比如sniffer, ethreal等.但最为方便和简单得就非TCPDump莫属. Linux的发行版里基本都包括了这个工具. TCPDump将网络接口设置成混杂模式以便捕获到达的每一个数据包.下面给出TCPDump的部分常用选项:

    -i <interface> 指定监听的网络接口

    -v指定详细模式输出详细的报文信息

    -vv指定更详细模式输出更详细的报文信息

    -x指定以16进制数格式显示数据包

    -X规定以ASCII码格式显示输出

    -n规定在捕获过程中不需向DNS查询IP地址

    -F <file> 从指定文件中读取表达式

    -D显示可用网络接口

    -s <length> 设置捕获数据包的长度

    TCPDump的表达式:

    默认情况下TCPDump将捕获所有到达网络的数据包.这并不是我们想要的,因此就必须通过表达式来限制不必要的流量,只输出我们需要监听的数据包.

    1.类型限定词

    类型限定词有: host, port和net. host用来指定主机或目的地址,port指定端口,net可以用来指定某一子网. 如:

    tcpdump 'port 80' 监听80端口

    tcpdump 'net 192.168.1' 监听子网192.168.1.0

    tcpdump 'net 192.168.1.0/24'

    2.逻辑运算符

    逻辑运算符有AND,OR和NOT. ()可将多个表达式组合起来.

    tcpdump 'port 80 and (host 192.168.1.10 or host 192.168.1.11)'

    监听主机192.168.1.10 或192.168.1.11的80端口.

    3.传输方向限定词

    关键词src指定源地址,dst指定目的地址

    tcpdump 'port 80 and (src 192.168.1.10 or src 192.168.1.11)'

    tcpdump 'dst port 25'

    4.协议限定词

    用来捕获特定协议的数据包有: ether(Ethernet), TCP,UDP,ICMP,IP,ip6(IPv6),ARP,rarp(reverse ARP)等.

    5.原语

    原语主要有: 算术运算符(+,-,*,/,>,<,>=,<=,!=等), broadcast, gateway, greater, less.

    broadcast捕获广播数据包, greater和less相当于>=和<=.

    小例子:

    //本机20000端口通讯数据抓包

     tcpdump -s 0 -i lo port 20000 -w /tmp/20000.pcap

    //10.8.2.181:7001端口通讯数据抓包

     tcpdump -i eth0 -s 0 host 10.8.2.181 and port 7001  -w /tmp/syrk.pcap

    本文系作者原创,转载请注明出处。如您阅读的是转载,请最好再看下原文,原文随时会更新和勘误的。

    @Gordon_chang
    1997年毕业于北京联合大学,先后在中国万网,新媒传信,亚信等公司工作,现在在一家创业型公司担任云计算与大数据运维方面的 PM & Engineer。 专注于以下四个领域: 分布式存储 分布式数据库 云计算 大数据 重点通过技术架构与性能优化(底层)实现基于私有云的大数据平台能力

  • 相关阅读:
    oracle 认证方式
    Oracle
    深入理解Java的接口和抽象类
    mongoDB的学习【小白的福音】
    对于vertical-align的学习
    flex的学习 flexBox的学习
    用伪类添加翘边阴影::before和::after
    icon小图标
    url 中的 ? 和 & 还有 # 的作用
    解决img的1px空白问题
  • 原文地址:https://www.cnblogs.com/gordonchang/p/6681713.html
Copyright © 2011-2022 走看看