tcpdump命令的功能是用于监听网络流量,是一款数据嗅探工具,Linux系统中常用的数据抓包软件,能够记录所有经过服务器的数据包信息,需要使用管理员身份执行。

语法格式: tcpdump [参数]

常用参数:

-a尝试将网络和广播地址转换成名称
-c<数据包数目>收到指定的数据包数目后,就停止进行倾倒操作
-d把编译过的数据包编码转换成可阅读的格式
-dd把编译过的数据包编码转换成C语言的格式
-ddd把编译过的数据包编码转换成十进制数字的格式
-e在每列倾倒资料上显示连接层级的文件头
-f用数字显示网际网络地址
-F<表达文件>指定内含表达方式的文件
-i<网络界面>使用指定的网络截面送出数据包
-l使用标准输出列的缓冲区
-n不把主机的网络地址转换成名字
-N不列出域名
-O不将数据包编码最佳化
-p不让网络界面进入混杂模式
-q快速输出,仅列出少数的传输协议信息
-r<数据包文件>从指定的文件读取数据包数据
-s<数据包大小>设置每个数据包的大小
-S用绝对而非相对数值列出TCP关联数
-t在每列倾倒资料上不显示时间戳记
-tt在每列倾倒资料上显示未经格式化的时间戳记
-T<数据包类型>强制将表达方式所指定的数据包转译成设置的数据包类型
-v详细显示指令执行过程
-vv更详细显示指令执行过程
-x用十六进制字码列出数据包资料
-w<数据包文件>把数据包数据写入指定的文件

参考实例

监视指定网络接口的数据包:

[root@linuxcool ~]# tcpdump -i ens160

监视指定主机的数据包(主机名):

[root@linuxcool ~]# tcpdump host linuxcool.com

监听指定主机的数据包(IP地址):

[root@linuxcool ~]# tcpdump host 192.168.10.10

监听指定端口号的数据包,并以文本形式展示:

[root@linuxcool ~]# tcpdump -i any port 80 -A
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。