Linux系统 tcpdump命令详解

567次阅读
一条评论

 

1. 命令简介:

tcpdump 命令是一款 sniffer 工具,是 linux 上的抓包工具,嗅探器;它可以打印出所有经过网络接口的数据包的头信息。

tcpdump 命令工作时先要把网卡的工作模式切换到混杂模式。所以 tcpdump 命令需要以 root 身份运行。tcpdump 命令是 linux 下使用最广泛的网络协议分析工具。使用 tcpdump 命令时,必须精通 TCP/IP 协议工作原理。

1.1 语法格式

tcpdump [参数]

1.2 常用参数:

-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 < 数据包文件 > 把数据包数据写入指定的文件
-i 指定网卡
-nn 显示 ip 不显示主机名
port 指定端口 

 

2. 参考实例:

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

[root@linuxcool ~]# tcpdump -i eth1

监视指定主机的数据包:

[root@linuxcool ~]# tcpdump host linuxcool

监视指定接口的 ping 数据包:

[root@linuxcool ~]# tcpdump -i eth1 -i eth1 icmp

截获主机 192.168.10.10 和主机 192.168.10.20 或 192.168.10.30 的通信:

[root@linuxcool ~]# tcpdump host 192.168.10.10 and \ (192.168.10.20 or 192.168.10.30 \)

抓取 80 端口的 HTTP 报文,以文本形式展示:

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

微信扫描下方的二维码阅读本文

正文完
 0
柹子丶
版权声明:本站原创文章,由 柹子丶 于2022-09-05发表,共计1080字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
验证码
xlsys.cn 评论达人 LV.1
2023-03-27 16:40:07 回复

牛逼了

     中国湖南省长沙市电信