tcpdump的入门

本文介绍了Linux下的tcpdump工具,包括其支持的网络层和传输层协议捕获、过滤规则、常用参数如-n、-vv、-Q和-A,以及如何结合grep进行数据筛选和ASCII/二进制输出,还提及了数据链路层头部信息的显示和抓包规则文件的使用。
摘要由CSDN通过智能技术生成

tcpdump可以支持的功能

    1. 在Linux平台将网络中传输的数据包全部捕获过来进行分析

    2. 支持网络层,传输层协议等协议捕获过滤

    3. 数据发送和接收的主机,网卡和端口等各种过滤捕获数据规则

    4. 提供and, or, not等语句进行逻辑组合捕获数据包或去掉不用的信息

    5. 结合wireshark工具分析捕获的报文

TCP协议

TCP 传输控制协议,就是要对数据的传输进行一定的控制

tcpdump指令的使用

过滤:

tcpdump host 127.0.0.1

  • 这样就只能够抓取到127.0.0.1的报文了

tcpdum tcp port 80

  • 只抓取80端口的数据

tcpdump的常用参数

不加任何参数的tcpdump

-n: 不把ip转化成域名,直接显示ip, 避免执行 DNS lookups 的过程,速度会快很多

-nn:不把协议和端口号转化成名字,速度也会快很多。

-N:不打印出host的域名部分,比如,如果设置了此选项,tcpdump将会打印 ‘nic’ 而不是 ‘nic.ddn.mil’

-t:在每行的输出中不输出时间

-tt:在每行的输出中会输出时间戳

-ttt:输出每两行打印的时间间隔(以毫秒为单位)

-tttt:在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观)

-v:产生详细的输出,比如包的TTL,id表示,数据包长度,以及IP包的一些选项。同时它还会打开一些附加的包完整性检测,比如对IP或ICMP包头部的校验和

-vv:产生比-v更详细的输出,比如NFS回应包中的附加域将会被打印,SMB数据包也会被完全解码。

-vvv:产生比-vv更详细的输出。比如telnet时所使用的SB,SE选项将会被打印,如果telnet同时使用的是图形界面,其相应的图形选项将会以16进制的方式打印出来

-Q:选择是入方向还是出方向的数据包,可选项有:in, out, inout, 也可以使用 --direction=[direction]

tcpdump -Q in

tcpdump -Q out

tcpdump -Q inout

-q:简洁的打印输出。即打印很少的协议相关信息,从而输出行都比较简短

tcpdump -q

-D:显示所有可用网络接口的列表

-L:列出网络接口的已知数据链路

-A:将读取到的信息以ASCII字符的形式展示出来

tcpdump tcp port 8082 -A

-A:后面也可以接grep过滤需要的信息

tcpdump -A | grep baidu

-X:可以以二进制的方式来显示报文数据

tcpdump tcp port 8082 -X

-e:在输出行打印出数据链路层的头部信息。默认情况下tcpdump不会显示数据链路层信息,使用-e选项可以显示源和目的MAC地址,以及VLAN tag信息

tcpdump -e -r chicken.cap

-F:指定使用哪个文件的过滤表达式抓包。此时命令行上的输入将被忽略

tcpdump -F filter_rule -c10

filter_rule中的内容

tcp port 8082

-l:对标准输出进行行缓冲–使用标准输出设备遇到一个换行符就马上把这行的内容打印出来。

在需要同时观察抓包打印以及保存抓包记录的时候很有用

比如,可以通过一下命令组合来达到此抓包时保存到文件的同时查看包的内容

tcpdump -l | tee dat

这命令是使用tee来吧tcpdump的输出同时放到文件dat和标准输出中

tee 功能说明:读取标准输入的数据,并将其内容输出成文件

tcpdump -l > dat1 & tail -f dat1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值