Tcpdump命令的用法详解

tcpdump命令,即:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具.tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。详细介绍在后面,开始直接说用法。tcpdump只能抓取流经本机的数据包

tcpdump -D;

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后;

tcpdump -c num -i eth0 -nn -XX -vvv

-c:指定要抓取的包数量;
-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口;
-n:对地址以数字方式显式,否则显式为主机名;
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名;
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细;
-v:当分析和打印的时候,产生详细的输出;
-vv:产生比-v更详细的输出;
-vvv:产生比-vv更详细的输出

   tcpdump -i eth0 host 192.168.1.3

抓取所有经过 eth0,目的或源地址是 192.168.1.3 的网络数据

   tcpdump -i eth0 port 25

抓取所有经过 eth0,目的或源端口是 25 的网络数据

tcpdump -i eth0 '((tcp) and (port 80) and ((dst host 192.168.1.234) or (dst host
192.168.1.220)))'

抓取所有经过 eth0,目的地址是 192.168.1.234 或 192.168.1.220 端口是 80 的 TCP 数据

tcpdump udp -i eth0 -t -nn -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24

(1)udp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth0 : 只抓经过接口eth0的包
(3)-t : 不显示时间戳
(4)-nn:地址和端口以数字方式显式
(5)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(6)-c 100 : 只抓取100个数据包
(7)dst port ! 22 : 不抓取目标端口是22的数据包
(8)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24

-------------------------------------------------------------------------------------------------------------------

tcpdump [ -DntUvxX ] [ -c count ]
           [ -i interface ] 
           [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
           [ expression ]

tcpdump的简单选项介绍
-c count: tcpdump将在接受到count个数据包后退出.
-D 打印系统中所有tcpdump可以在其上进行抓包的网络接口. 每一个接口会打印出数字编号, 相应的接口名字, 以及可能的一个网络接口描述. 其中网络接口名字和数字编号可以用在tcpdump 的-i flag 选项 来指定要在其上抓包的网络接口.
-i interface
指定tcpdump 需要监听的接口. 如果没有指定, tcpdump 会从系统接口列表中搜寻编号最小的已配置好的接口(不包括 loopback 接口).一但找到第一个符合条件的接口, 搜寻马上结束.
-n 不对地址(比如, 主机地址, 端口号)进行数字表示到名字表示的转换.
-r file 从文件file 中读取包数据. 如果file 字段为 ‘-’ 符号, 则tcpdump 会从标准输入中读取包数据.
-s snaplen 设置tcpdump的数据包抓取长度为snaplen, 如果不设置默认将会是68字节,把snaplen 设置为0 意味着让tcpdump自动选择合适的长度来抓取数据包.
-t 在每行输出中不打印时间戳
-U 使得当tcpdump在使用-w 选项时, 其文件写入与包的保存同步.(nt: 即, 当每个数据包被保存时, 它将及时被写入文件中,而不是等文件的输出缓冲已满时才真正写入此文件)
-v 当分析和打印的时候, 产生详细的输出. 比如, 包的生存时间, 标识, 总长度以及IP包的一些选项. 这也会打开一些附加的包完整性检测, 比如对IP或ICMP包头部的校验和.
-vv 产生比-v更详细的输出. 比如, NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码.
-vvv 产生比-vv更详细的输出. 比如, telent 时所使用的SB, SE 选项将会被打印, 如果telnet同时使用的是图形界面
-w 把包数据直接写入文件而不进行分析和打印输出. 这些包数据可在随后通过-r 选项来重新读入并进行分析和打印.

tcpdump 与wireshark

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口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)分析

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT技术猿猴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值