tcpdump 使用介绍

17 篇文章 0 订阅
4 篇文章 0 订阅

介绍

tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上。熟悉 tcpdump 的使用能够帮助你分析、调试网络数据。

常用选项

-n  表示不要解析域名,直接显示 ip。
-nn**  不要解析域名和端口。
-X  同时用 hex 和 ascii 显示报文的内容。
-XX  同 -X,但同时显示以太网头部。
-S  显示绝对的序列号(sequence number),而不是相对编号。
-i  监听的网卡。
-v, -vv, -vvv  显示更多的详细信息。
-c number  截取 number 个报文,然后结束。
-A  只使用 ascii 打印报文的全部数据,不要和 -X 一起使用。
-D  列出所有可以监控的网卡。
-s 指定每条报文的最大字节数,默认为262144,如果值为0时,表示不截断,抓取完整的数据包

过滤器

机器上的网络报文数量异常的多,很多时候我们只关系和具体问题有关的数据报(比如访问某个网站的数据,或者 icmp 超时的报文等等),而这些数据只占到很小的一部分。把所有的数据截取下来,从里面找到想要的信息无疑是一件很费时费力的工作。而 tcpdump 提供了灵活的语法可以精确地截取关心的数据报,简化分析的工作量。这些选择数据包的语句就是过滤器(filter)!

过滤器也可以简单地分为三类:type, dir 和 proto。

Type 让你区分报文的类型,主要由 host(主机), net(网络) 和 port(端口) 组成。src(源地址) 和 dst(目的地址) 也可以用来过滤报文的源地址和目的地址。

过滤的真正强大之处在于你可以随意组合它们,而连接它们的逻辑就是常用的 与/AND/&& 、 或/OR/|| 和 非/not/!。

用例

1.监听所有端口,直接显示 ip 地址
	tcpdump -nS
	
2.显示更详细的数据报文,包括 tos, ttl, checksum 等
	tcpdump -nnvvS
	
3.显示数据报的全部数据信息,用 hex 和 ascii 两列对比输出
	tcpdump -nnvvXS
	
4.监控一个指定的网络接口
	tcpdump -i eth0
	
5.基于IP查找流量
	tcpdump host 114.114.114.114 
	
6.根据来源和目标进行筛选
	tcpdump src 1.1.1.1 (源地址)
	tcpdump dst 1.0.0.1 (目的地址)
	tcpdump not src  1.1.1.1 (过滤源地址)
	tcpdump not dst   1.0.0.1 (过滤目的地址)
	
7.查看某一网段或者子网的进出流量
	tcpdump net 1.2.3.0/24
	
8.使用十六进制输出
	tcpdump -c 1 -X icmp
	
9.显示特定端口的流量
	tcpdump port 3389 
	tcpdump src port 1025
	tcpdump dst port 1026
	
10.显示特定协议的流量
	tcpdump icmp
	tcpdump udp
	tcpdump tcp
	
11.查看某一范围内的所有端口的流量
	tcpdump portrange 21-23
	
12.将包存在文件中
	tcpdump port 80 -w capture_file
	
13.从文件中读取
	tcpdump -r capture_file
	
14.来自特定的IP,发往特定的端口
	tcpdump -nnvvS src 139.5.6.4 and dst port 3389
	
15.从某个网段来,到某个网段去
	tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
	
16.到某个IP的非ICMP流量
	tcpdump dst 192.168.0.2 and src net and not icmp
	tcpdump -vv src mars and not dst port 22
	
17.GET请求
	tcpdump -vvAls0 | grep 'GET'
	tcpdump -s 0 -A 'tcp dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
	
18.POST请求
	tcpdump -vvAls0 | grep 'Host:'
	tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

输出

10:35:25.648675 IP chenlvzhoudembp.54018 > 192.168.1.1.domain: 18464+ PTR? 1.1.168.192.in-addr.arpa. (42)
10:35:25.650092 IP 192.168.1.1.domain > chenlvzhoudembp.54018: 18464* 1/0/0 PTR 192.168.1.1. (67)
10:35:25.895269 IP chenlvzhoudembp.58063 > 117.34.61.133.http: Flags [F.], seq 706908684, ack 3609747502, win 4096, length 0
10:35:25.896315 IP chenlvzhoudembp.52148 > 192.168.1.1.domain: 8596+ PTR? 133.61.34.117.in-addr.arpa. (44)
10:35:26.739836 IP chenlvzhoudembp.57928 > 14.215.177.39.https: Flags [F.], seq 907035098, ack 3372296595, win 4096, length 0
10:35:26.790594 IP 192.168.1.1.domain > chenlvzhoudembp.52148: 8596 NXDomain 0/1/0 (106)

第一列:时分秒毫秒
第二列:网络协议
第三列:发送方的ip地址+端口号(或者协议)
第四列:>
第五列:接收方的ip地址+端口号(或者协议)
第六列:冒号
第七列:Flag标识符:
[S]:建立连接的标识SYN
[P]:发送数据的标识
[F]:结束连接的标识FIN
[.]:没有标识

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值