linux抓包的命令 linux抓包命令详解( 二 )


-c : 用来指定抓包的个数,示例设置的个数为1 , 则代表仅抓取一个包之后就退出不再抓包了 。
2、-e 增加数据链路层的头部信息
? ? 通过两个命令的输出对比,可以看到增加-e选项后,输出的结果中增加MAC地址信息 。而且在输出内容中会有 oui Unknown ,OUI即Organizationally unique identifier(组织唯一标识符),在任何一块网卡中烧录的6字节MAC地址中,前3个字节体现了OUI , 其表明了网卡的制造组织 , 通常情况下,该标识符是唯一的 。在本例中 , 由于没有识别出网卡的制造商,因此显示为Unknown 。
3、-l 将输出变为行缓冲模式
? ? -l的作用是将tcpdump的输出行为变为 行缓冲 方式,这样可以保证tcpdump遇到换行符,就立即将缓冲的内容输出到标准输出(stdout),方便利用管道或重定向方式进行后续处理 , 而不会造成延迟 。
? ? 在Linux的标准I/O中提供了 全缓冲 、 行缓冲 、 无缓冲 三种缓冲方式 。标准错误是不带缓冲的,而终端设备常为行缓冲,其他默认则为全缓冲 。
? ? 在该例中,将tcpdump输出的内容通过管道提取第5列,可以用来查看详细的连接信息 。而如果不加 -l 选项时,则只有当缓冲区全部占满时,tcpdump才会将缓冲区中的内容输出,这样就有可能导致输出不连续的 , 如果强行结束,则会影响下一行的完整性 。
4、-t 输出不加时间戳
? ? 在增加选项 -t 选项后 , 时间23:48:03.193526就消失了 。tcpdump默认情况下是按微秒来计时 , 因此最一个时间精确到了第6位 。
5、 -v 显示详细信息
? ? 在增加 -v 选项后,会在输出的内容中增加 tos 、 ttl 、 id 、 offset 、 协议编号 、 总长度 等,如需要理解这些信息,就需要了解TCP/IP协议中的头的具体定义了 。
6、-F 指定过滤表达式所在的文件
? ? 在第一个示例中,命令行增加了 'port 22',而这一项就叫 过滤条件 ,如果设置了过滤条件 , 则tcpdump只抓取满足过滤条件的数据包 。如需要设置较为复杂的过滤条件或复用过滤条件时,这时可以将过滤条件保存为文件,然后通过-F加载该过滤文件 。
7、 -w 将原始数据包信息保存到文件中
? ? 当我们查看保存的文件时,出现的是乱码 。则代表无法直接查看,很有可能是二进制文件 。那么怎么查看保存的文件了?请看下一个示例 。
7、 -r 从文件中读取原始数据包
? ? 通过-w和-r选项即可实现抓包的录制回放功能 。
Linux本地环回地址lo 环回地址lo是主机用于向自身发送通信linux抓包的命令的一个特殊地址(也就是一个特殊的目的地址) 。
在Linux服务器抓包的时候,本机间程序的通信监听lo网卡的数据包即可获取相应的数据 。
抓包命令前缀linux抓包的命令: tcpdump -i lo
在linux命令行环境下如何抓取网络数据包? ? 众所周知,在Windows下开发运行环境下,在调试网络环境时 , 可以可以很方便的借助wireshark等软件进行抓包分析;并且在linux或者Ubuntu等桌面版里也可以进行安装抓包工具进行抓包分析,但总有一些情况,无法直接运用工具(比如一些没有界面的linux环境系统中),则此时我们就需要使用到最简单的tcpdump命令进行网络抓包 。
? 一般的,linux下抓包时,抓取特定的网络数据包到当前文件夹下的文件中 , 再把文件拷贝出来利用Windows下的wireshark软件进行分析 。
tcpdump命令详解:(简单举例)
? 1、抓取到的文件为filename.cap,然后将此文件拷贝到Windows下,使用wireshar打开后,即可对此文件进行分析 。

推荐阅读