网络抓包工具 tcpdump 的使用

tcpdump 是 linux 下最常用的抓包应用,这里记录下常见的用法和表达式语法。

常用命令

  1. 抓取某个网卡下的所有包:

    tcpdump -i eth0
  2. 抓取来往 173.194.40.120 之间的所有包:

    tcpdump host 173.194.40.120
  3. 抓取来往 173.194.40.120:80 之间的所有包,并不解析主机名和端口名

    tcpdump -nn -i any host 173.194.40.120 and port 80
  4. 抓取来往 173.194.40.120:80 之间的所有包并展示 ASCII 码形式展示,且仅展示含有“User-Agent”的行

    tcpdump -i any -A host 173.194.40.120 and port 80 | grep 'User-Agent'
  5. 以 16 进制方式展示抓取内容,

    tcpdump -x
  6. 以 16 进制和 ASCII 码方式展示抓取内容

    tcpdump -X

条件表达式

表达式决定了哪些数据包被捕获,表达式由一个或多个表达元组成,每个表达元通常由一个或多个修饰符 + id组成。

常见的三种不同的修饰符 type、dir 和 proto。

type

修饰符指定id 所代表的对象类型。

dir

修饰符描述id 所对应的传输方向。

proto

修饰符描述id 所属的协议。

可选协议:

除以上所描述的表达元('primitive'), 还有其他形式的表达元, 并且与上述表达元格式不同. 比如: gateway, broadcast, less, greater以及算术表达式,详情参考Linux tcpdump命令详解

一些选项的介绍

创建于2022年02月10日 14:42
阅读量 12
留言列表

暂时没有留言

添加留言