Linux 基础教程 29-tcpdump命令-1

针对当前热议的Linux 基础教程 29-tcpdump命令-1话题 ,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。

在Linux中输入命令man tcpdump给出的定义如下所示:

是不是感觉很懵?我们用通俗 、形象、学术的表达方式来全方位描述tcpdump:

常用选项如下所示:

1、第一个抓包示例

-i : 指定用来抓包的网络接口,这个参数在服务器有多个网卡的时候非常有效

-nn : 不转换协议和端口号 ,当tcpdump遇到协议号或端口号 ,不需要将这些数字转换为对应的协议名称或端口名称,如22端口SSH端口,我们希望显示22 ,而非SSH

-X : 将协议头和包内容原原本本的显示出来,tcpdump会同时以16进制和ASCII的形式进行显示,在协议分析时非常好用 。

'port 22' : 告诉tcpdump要有选择的显示所抓到的包,在该示例中 ,只显示源端口或目的端口是22的数据包,其他的数据包则不显示。

-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 基础教程 29-tcpdump命令-1的精彩内容就分享到这里,衷心希望这些信息能为您带来实质帮助 。期待您继续支持我们 ,发现更多有价值的知识。

(1)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 私立产有学校的头像
    私立产有学校 2026年04月21日

    我是东华号的签约作者“私立产有学校”

  • 私立产有学校
    私立产有学校 2026年04月21日

    本文概览:针对当前热议的Linux 基础教程 29-tcpdump命令-1话题,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。 在Linux中输入命令man tc...

  • 私立产有学校
    用户042109 2026年04月21日

    文章不错《Linux 基础教程 29-tcpdump命令-1》内容很有帮助

联系我们:

邮件:东华号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信