命令行工具tcpdump用法

       从事物联网相关开发工作,无法避免的需要对网络通讯数据进行抓包分析,而命令行工具 tcpdump 能够对流经本机的网络数据进行抓取。虽然其名称为tcpdump,但是它也可以抓UDP、ICMP等多种协议数据。tcpdump命令能够灵活的对接口的数据包进行筛选抓取,是类UNIX系统下用于网络分析和问题排查的首选工具。

用法:    通过 --help参数查询usage用法如下:

如图所示,除了显示tcpdump版本信息,还显示了libpcap的版本信息。libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础,candump也不例外,使用了libpcap的接口,故在usage标注了libpcap的版本。

tcpdump调用libpcap的接口在linux系统链路层抓包。而linux本身指定的许多访问控制规则都是基于三层或三层以上的过滤规则,所以tcpdump可以抓取过滤规则之前的数据包

 tcpdump用法介绍文档: https://www.tcpdump.org/tcpdump_man.html 

 由于参数选项复杂,如下仅列出常用的几种参数用法:

-A 以ASCII格式打印出所有分组,并将链路层的头最小化。 (通常用来分析数据内容)

-c 接收指定的数量的分组包。

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

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

-t : 不显示时间戳

-P 指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。

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

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

-v 产生详细的输出. 比如, 包的生存时间, 标识, 总长度以及IP包的一些选项等。

-XX 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据, 其中包括数据链路层的头部.这对于分析一些新协议的数据包很方便。

-w ./target.cap 保存成cap文件,方便用wireshark分析。

dst port ! 22 不抓取目标端口是22的数据包

tcp、udp、icmp 这些选项等都要放到第一个参数的位置,用来过滤数据报的类型

src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24

 

监视指定主机和端口的数据包

1、如果想要获取主机xxx.xx.xx.xx接收或发出的tcp包,使用如下命令:

tcpdump tcp port 23 and host xxx.xx.xx.xx

2、对本机的udp 123 端口进行监视,使用如下命令:

tcpdump udp port 123

3、使用tcpdump抓取HTTP包(0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT")

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

 

更多详细用法请参考博客:

https://blog.csdn.net/chinaltx/article/details/87469933

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值