目录
命令简介
常用命令
综合示例
参考链接:https://man.linuxde.net/tcpdump
tcpdump 官网:https://www.tcpdump.org/manpages/tcpdump.1.html
命令简介
tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w
选项将数据包保存到文件中,方便以后分析。
一般安装 Linux 都会自带 tcpdump 命令,但是通常都需要 root 权限才能执行
tcpdump 的语法格式:
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 <数据包文件>:把数据包数据写入指定的文件。 |
常用命令
- 抓取指定IP发出和接收到的包
tcpdump host 210.27.48.1
- 抓取指定端口的包
tcpdump port 80
- 抓取指定协议的包
tcpdump tcp
- 将抓取到的包保存成文件
tcpdump ip host 11.24.225.206 -w log.cap
** .cap 是文件类型,这种类型的文件可以用 Wireshark 方便地进行解析
如果想要快速查看 log.cap 中的内容,可以使用 strings log.cap
- 限定来源和目的地址
tcpdump src host 192.168.1.101
tcpdump dst host 192.168.1.101
- 限制抓包个数
tcpdump -c 1000
- and/or 组合多个限制条件
tcpdump ip host 192.168.1.102 and 192.168.1.103 // 查询两个主机之间的通信
tcpdump src 192.168.122.98 and port 80 // 同时限定IP和端口
tcpdump port 443 and "(src 192.168.122.98 or src 106.11.31.214)"
综合示例
tcpdump port 443 and "(src 192.168.122.98 or src 106.11.31.214)" -c 100 -w log.cap