美文网首页
Linux基础:用tcpdump抓包

Linux基础:用tcpdump抓包

作者: 懒人向北 | 来源:发表于2021-07-07 23:18 被阅读0次

简介

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。
注:在目标机器上抓取任意tcp数据(需要root权限)

参数

-A 以ASCII格式打印出所有分组,并将链路层的头最小化。

-c 在收到指定的数量的分组后,tcpdump就会停止。

-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。

-d 将匹配信息包的代码以人们能够理解的汇编格式给出。

-dd 将匹配信息包的代码以c语言程序段的格式给出。

-ddd 将匹配信息包的代码以十进制的形式给出。

-D 打印出系统中所有可以用tcpdump截包的网络接口。

-e 在输出行打印出数据链路层的头部信息。

-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。

-f 将外部的Internet地址以数字的形式打印出来。

-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。

-i 指定监听的网络接口。

-l 使标准输出变为缓冲行形式,可以把数据导出到文件。

-L 列出网络接口的已知数据链路。

-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。

-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。

-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。

-n 不把网络地址转换成名字。

-nn 不进行端口名称的转换。

-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。

-t 在输出的每一行不打印时间戳。

-O 不运行分组分组匹配(packet-matching)代码优化程序。

-P 不将网络接口设置成混杂模式。

-q 快速输出。只输出较少的协议信息。

-r 从指定的文件中读取包(这些包一般通过-w选项产生)。

-S 将tcp的序列号以绝对值形式输出,而不是相对值。

-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。

-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。

-t 不在每一行中输出时间戳。

-tt 在每一行中输出非格式化的时间戳。

-ttt 输出本行和前面一行之间的时间差。

-tttt 在每一行中输出由date处理的默认格式的时间戳。

-u 输出未解码的NFS句柄。

-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。

-vv 输出详细的报文信息。

-w 直接将分组写入文件中,而不是不分析并打印出来。

示例

  1. 监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。
    tcpdump
  2. 监听特定网卡
    tcpdump -i en0
  3. 监听特定主机
    监听本机跟主机192.168.0.1之间往来的通信包。出、入的包都会被监听。
    tcpdump host 192.168.0.1
  4. 特定来源、目标地址的通信
    特定来源
    tcpdump src host hostname
    特定目标地址
    tcpdump dst host hostname
    如果不指定src跟dst,那么来源 或者目标 是hostname的通信都会被监听
    tcpdump host hostname
  5. 特定端口
    tcpdump port 8080
  6. 监听TCP/UDP
    服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
    tcpdump tcp
  7. 来源主机+端口+TCP
    监听来自主机123.207.116.169在端口22上的TCP数据包
    tcpdump tcp port 22 and src host 123.207.116.169
  8. 监听特定主机之间的通信
    tcpdump ip host 210.27.48.1 and 210.27.48.2
    210.27.48.1除了和210.27.48.2之外的主机之间的通信
    tcpdump ip host 210.27.48.1 and ! 210.27.48.2
  9. 监听特定主机之间的通信
    tcpdump ip host 210.27.48.1 and 210.27.48.2
    210.27.48.1除了和210.27.48.2之外的主机之间的通信
    tcpdump ip host 210.27.48.1 and ! 210.27.48.2
  10. 稍微详细点的例子
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1/any : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

参考文献:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

相关文章

  • Linux基础:用tcpdump抓包

    简介 网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮...

  • linux tcpdump加wireshark抓包

    -#由于wireshark只能在windows上使用,要想抓包linux,需要在linux安装tcpdump,用t...

  • tcpdump

    参考: Linux使用tcpdump抓取网络数据包示例 Linux命令行下抓包工具tcpdump的使用 示例: 截...

  • linux-用tcpdump抓包

    简介 网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮...

  • tcpdump小黑板抓包

    Linux、Unix默认安装了tcpdump纯字符抓包工具 抓包 抓包筛选 高级筛选 这里tcp[13]是指下图里...

  • 应用抓包之Fiddler抓包

    抓包前准备 tcpdump抓包:应用抓包之tcpdump命令抓包 原料 1.抓包工具Fiddler(Windows...

  • tcpdump的基本命令和使用

    tcpdump的基本命令和使用 介绍   tcpdump是linux下的抓包命令, 可以指定网卡/port/hos...

  • 【tcpdump】Linux下 tcpdump 抓包教程

    Linux下如何使用 tcpdump 进行抓包详细教程 https://blog.csdn.net/weixin_...

  • ieee802.11数据radiotap介绍

    之前写有文章介绍了在Linux系统用wireshark或tcpdump抓无线网卡数据包。分析包时发现每一数据帧前面...

  • wireshark打开十六进制报文

    注:方法仅供参考,我只是刚好百度不了,然后google出来的,zzzz 平时我们在linux上用tcpdump抓包...

网友评论

      本文标题:Linux基础:用tcpdump抓包

      本文链接:https://www.haomeiwen.com/subject/cwwaultx.html