虽然man上写的很详细,但有时用的时候可能并不想去man,还是写些笔记,方便以后使用。基本命令格式如下tcpdump [- 包显示格式参数] [- 捕获控制参数] "过滤匹配条件" tcpdump可以以一定的显示格式来打印满足过滤条件的包信息,包的来源可以是网络接口,也可以是文件。通常仅仅键入tcpdump就可以开始包的捕获,但这时由于缺少捕获条件,你想要的包会淹没在一大批无用的数据中,而且缺少显示格式参数的控制,tcpdump只会打印IP包头信息,有时你需要更精确的捕获控制和更详细的包信息,那么就需要更多的参数。
1 捕获控制参数 -s pkt-size 每个包的最小缓冲区,默认为98,超过的包内容会被截断-c count 当捕获到count个包后,停止捕获,否则进行连继捕获,当然你可以通过SIGINT或SIGTERM信息来终止捕获-w file-name 将捕获的包写入的文件而非标准输出,供以后分析-r file-name 从文件中读取包的内容,并根据过滤条件显示到标准输出上-C p-f-size 当使用-w参数时,当把包写入文件时,如果文件大于size MB,则关闭当前文件,打开新的文件进行保存-F file-match 使用文件中的过滤表达式-i interface 捕获特定的接口-T type 将捕获的包解释为type,支持的type列表为aodv,rtp,rtcp,rpc,snmp,tftp...-W file-count 保存捕获包的文件个数-y dl-type 设置链路层类型-Z user-l 使得tcpdump的输出为行缓冲的,以便为其他管道处理-E spi@ipaddr algo:secret 使用指定信息解密IPSEC数据,算法可以是des-cbc等,secret为ASCII的密钥-D 显示系统当前可用接口1-L 显示当前系统的链路层信息并退出
2 包显示参数 -x 以十六进制格式打印包的内容,IP头开始-xx 包括链路层头信息-X 同时以十-A 以ASCII文本方式显示包内容,html等比较方便-e 打包头的印链路层信息-C -n 不将ip址转换为域名-nn 同时不把端口转换为服务-S 显示TCP绝对序号,而非相对序号-t 不打印时间-tt 打印未格式化的时间-v 显示IP头的详细信息如TTL,ID,Length
3 过滤表达式 [协议] [方向] [目标]关键字目标指定:host , net, port,portrangenet 192.168.1.1/24portrange 1-1024方向指定:src,dst 可以用 or and连接协议指定:ether,wlan,ip,ip6,arp,tcp,udpip proto tcpip6 proto udpip6 protochain type 头中包含类型type的头其他: gateway,broadcast,less,greater或算法表达式less length这些关键词可能通过not !,and &&及 or ||来进行逻辑叠加
4 DPI 可以访问数据包的任意位置的数值并进行过滤一般格式为:proto[算术表达式:size] [运算符] [值]算术表达式中可以使用+ - * / & | << >>,,如udp[4:2]&0xffff>256运行符可以是> < >= <= != =一个示例:tcpdump -x -c 10 -s 300 "dst port 8080 and udp[4:2]&0xffff>200"Linux下查看进程打开的文件与打开文件的进程Linux的通用makefile模板相关资讯 Linux命令
- 48 字节命令可令 Linux 系统当机! (今 07:55)
- 在Linux笔记本上执行这句命令能致 (02月02日)
- .NET开发必会的Linux命令 (12/20/2015 10:32:03)
| - 运维工程师必会的109个Linux命令 (03月09日)
- 有趣的Linux命令行:随机输出唐诗 (12/28/2015 20:14:23)
- 10 个 Linux 中的 passwd 命令示例 (10/29/2015 10:14:30)
|
本文评论 查看全部评论 (0)