tcpdump的基本用法

马谦马谦马谦 2018年4月9日10:27:33 发表评论
文章最后编辑于:2018-5-4 22:51:54

tcpdump是linux平台下抓取网络数据包的工具,功能十分强大,所以选项也很多。

纯字符的输出要求使用者对网络协议要很熟悉,这就导致了很多人对它望而却步。

复习socket,也顺便复习了三次握手和四次挥手,不得已在linux平台抓包,使用后发现还是相当简单。

这里就记录一些简单的用法,其他以后用到了再慢慢添加。

一、基本用法

最简单的用法就是直接输入tcpdump,监控所有的数据包:

1.1 指定网卡

通过-i选项指定监视的网卡,例如:

默认会监视系统的第一块网卡,会自动排除本地环回地址。

1.2 指定端口

指定端口可以根据不同的协议选择:tcp port *或者udp port *,也可以直接port *

例如,抓取本地地址的9999端口上的tcp协议的数据包:

二、输出解释

对于以下数据包:

10:12:55.371628 IP localhost.33632 > localhost.9999表示了数据包的时间以及源目地址,10点12分的数据包,从本地33632端口到本地9999端口。

Flags表名数据包类型:

  • S: 表示SYN,同步序号.
  • R: 表示RST,复位连接。
  • P: 表示PSH,尽可能快地将数据送往接收进程。
  • F: 表示FIN,发送方完成数据发送。
  • .: 表示以上四个标记位都为0.

后面的seq,ack,win等等则表示数据包中的字段,分别为数据包序号确认序号,和窗口大小

本文共执行44次查询,耗时0.283秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: