tcpdump命令的功能是用于监听网络流量,是一款数据嗅探工具,Linux系统中常用的数据抓包软件,能够记录所有经过服务器的数据包信息,需要使用管理员身份执行。
语法格式:tcpdump 参数 对象
常用参数:
| -a | 将网络和广播地址转换成名称 |
| -c | 收到指定的数据包数目后,就停止倾倒操作 |
| -d | 将编译过的数据包编码转换成可阅读的格式 |
| -dd | 将编译过的数据包编码转换成C语言的格式 |
| -ddd | 将编译过的数据包编码转换成十进制数字的格式 |
| -e | 在每列倾倒资料上显示连接层级的文件头 |
| -f | 用数字显示网络地址 |
| -F | 指定内含表达方式的文件 |
| -i | 使用指定的网络截面送出数据包 |
| -l | 使用标准输出列的缓冲区 |
| -n | 不将IP地址转换成主机名 |
| -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