zoukankan      html  css  js  c++  java
  • linux tcpdump的使用详解

    Tcpdump是linux下的网络数据包分析工具,

    TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。

     

     

    上次在做一个kv的java客户端,连接到kv c++ server端的时候老是没有返回数据,也不清楚是否已经连接上,于是通过tcpdump诊断是否已经收到连接,并且诊断tcp包的内容是否跟c++ client连接到c++ server端的包内容是否一致。

     

    常用选项:

    -w 写到文件,-r 从文件读取 通过表达式来过虑

     

    -c 指定多少包之后中止

    -F 从文件中读取表达式

    -i 多个网卡时,可以用于指定什么网卡

    -l 输出时行缓冲

    -n 不会将ip地址转成hostname,也就是不会进行dns查询

    -nn 不会将已知的协议转换成名称

    -s length 表明每个包的需要记录下来的大小,一般设置为0表示全记录

    -v 输出包的详细信息,比如ttl,长度等

     

     



     

    三种限定方式进行过滤

    type : host net port portrange

    比如: host foo, net 10.0.0.0 ?

    dir: 传输方向,src dst and or 

    proto: 协议类型,ether, fddi, tr, wlan, ip, ip6, ?arp, ?rarp, ?decnet, tcp ?and ?udp.?

    其它可用

    less length: 包的长度要小于length

    greater length: 包的长度要大于length

     

     

     

    组合子表达式

    通过or[||]、and[&&]与not[!] 

    有括号,需要转义

    ?tcpdump host helios and \( hot or ace \)

    tcpdump  src 10.20.150.206查看源地址为该ip的包



     

    Tcp输出分析

    格式
    src > dst: flags data-seqno ack window urgent options
    Flags are some combination of S (SYN), F (FIN), P (PUSH), R (RST), W (ECNCWR) or E (ECN-Echo), or a single ‘.’ (no flags).
    data-seqno 发送的数据序列
    Ack 下一个数据序列的起始
    Window 窗口大小

    Tcp 22端口中的数据


     
    Wireshark分析
    tcpdump tcp port 22 –w a.pcap 



     
  • 相关阅读:
    《算法导论》读书笔记(五)
    《算法导论》读书笔记(四)
    《算法导论》读书笔记(三)
    《算法导论》读书笔记(二)
    《算法导论》读书笔记(一)
    Posix消息队列
    管道和FIFO
    linux内核数据结构之kfifo
    linux内核数据结构之链表
    Mybatis XML 映射配置文件 -- 熟悉配置
  • 原文地址:https://www.cnblogs.com/secbook/p/2655150.html
Copyright © 2011-2022 走看看