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