tcpdump 用法
来源:互联网 发布:作死知乎 编辑:程序博客网 时间:2024/05/18 21:41
tcpdump 用法详解收藏
tcpdump 采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]
(1). tcpdump的选项介绍
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息;
-f 将外部的Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 不把网络地址转换成名字;
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv 输出详细的报文信息;
-x 打印出数据包的内容
-xx 更加详细的打印出数据包的内容
-X 用ASCII码的形式打印出数据包的内容
-XX 同上,不过打印出来的信息内容更加详尽
-c 在收到指定的包的数目后,tcpdump 就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-i 指定监听的网络接口;
-r 从指定的文件中读取包(这些包一般通过-w选项产生);
-w 直接将包写入文件中,并不分析和打印出来;
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)
(2) 实战1: 选项的使用
*如何让抓到的数据包,显示其ip地址而不是显示主机名:
在使用tcpdump时,一般我们希望看到的是ip地址,而不适机器名,所以一般可以加上 -n -f选项
*在主机有多个接口的情况下如何指定其中的一个接口?
可以使用:
tcpdump -i 接口名
来指定特定的接口,比如,要抓取来自eth0接口的icmp数据包的命令是:
tcpdump -i eth0 icmp
注意,-i 选项后面必须接接口名,有的机器的接口名可以是any,此时抓取的是来之任意接口的数据包。
tcpdump -i any icmp
tcpdump -nf -i any icmp #打印数据包的ip地址而不是主机名
* 如何看到数据包中的MAC地址?
加上-e选项就可以看到数据包的MAC地址了。
tcpdump -enf -i any icmp
* 如何查看数据包头部的各个字段的数据?
有时候我们需要看到数据包的头部各个字段的信息,那么只需要添加选项 -v ,若需要更加详细则使用: -vv选项
tcpdump -enfv -i any
tcpdump -enf -vv -i any
* 如何打印出抓到的数据包的数据?
添加选项 -x 或 -xx 或 -X(ASIIC码的形式打印数据包的内容) 或 -XX (更加详细的打印数据包的内容)
tcpdump -x -i eth0 src port 8080
(3) 实战2: 表达式的使用
使用表达式可以更加灵活的定制过滤条件,从而抓取到我们想要的数据包。
* 表达式的组成
表达式可以由3部分的限定词组成:
1, 类型: host, port, portrange,net ,若没有指定类型参数,缺省是host
2,方向 : src, dst, src or dst, src and dst, addr1, addr2, addr3, and addr4 若没有指定,缺省是src and dst
3,协议 : ether, fddi, tr,wlan, ip, ip6, arp, rarp, decnet, tcp and udp 等。 若没有指定,缺省的是所有协议。
可用的表达式组合请看手册: man tcpdump,这里只讲一些实用的例子:
(4) 实例:
* 如何抓取某个主机的数据包?
tcpdump host localhost1
* 获取目的主机是192.168.1.3的数据包?
tcpdump -en -i eth0 dst 192.168.1.3
* 获取来自主机192.168.1.3 端口是22的数据包?
tcpdump -enf -i any dst 192.168.1.3 port 22
* 获取来自主机192.168.1.3 或是主机192.168.1.4 端口是22 的数据包?
tcpdump -enf -i any host 192.168.1.3 or 192.168.1.4 and port 22
(4) 结果分析
- tcpdump 用法
- tcpdump用法
- tcpdump用法
- tcpdump用法
- tcpdump 用法
- TCPDUMP用法
- tcpdump用法
- tcpdump用法
- tcpdump 用法
- tcpdump用法
- tcpdump用法
- tcpdump用法
- tcpdump的用法
- [转]tcpdump详细用法
- tcpdump高级用法
- tcpdump的一个用法
- Tcpdump 的用法
- tcpdump用法详解
- oracle的结果输出单引号 ' 的字符 的sql语句
- 【VB.NET】自定义控件(一)属性说明
- 主流报表制作工具之王者争夺战:功能大PK系列之参数控件种类
- Android环境搭建心得体会(windows)
- 转:信息熵学习随笔
- tcpdump 用法
- 获取当前页面URL
- Android进程管理机制及优化
- Extjs 如何将CheckboxGroup中的实际值传递到后台
- 一个工作流引擎脚本语言底层模型及实现
- 动态调用WebService 【原创+整理】
- cpld的verilog学习
- 条件操作符
- linux下错误的捕获:errno和strerror的使用