linux抓包工具 tcpdump
该篇文章抓包方式为监听网卡
一、查看网卡
cat /proc/net/dev

如上图所示,有两块网卡,eno16777736、lo
二、tcpdump 介绍
tcpdump --help
使用上面命令查看介绍

tcpdump version 4.1-PRE-CVS_2012_02_01 libpcap version 1.4.0 Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ] [ -Z user ] [ expression ]
-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<数据包文件>:把数据包数据写入指定的文件。
三、场景演示
1、首先查看我的网卡
cat /proc/net/dev

或者使用
ip addr

2、监听网卡
tcpdump -i eno16777736
使用-i 指定监听的网络接口。打印信息如下:

可以发现一直在滚动
3、监听ip
tcpdump -A -i eno16777736 src or dst 182.61.200.6
监听 eno16777736 网卡的,182.61.200.6通信信息
抓包多个ip
tcpdump -A src or dst 125.210.163 or 125.210.163 or 125.210.163 -w tcp3.log
3.1 语法
类型的关键字
host(缺省类型): 指明一台主机,如:host 210.27.48.2
net: 指明一个网络地址,如:net 202.0.0.0
port: 指明端口号,如:port 23
确定方向的关键字
src: src 210.27.48.2, IP包源地址是210.27.48.2
dst: dst net 202.0.0.0, 目标网络地址是202.0.0.0
dst or src(缺省值)
dst and src
协议的关键字:缺省值是监听所有协议的信息包
fddi
ip
arp
rarp
tcp
udp
其他关键字
gateway
broadcast
less
greater
常用表达式:多条件时可以用括号,但是要用转义
非 : ! or “not” (去掉双引号)
且 : && or “and”
或 : || or “or”
参考资料:
https://man.linuxde.net/tcpdump
https://www.cnblogs.com/pyng/p/9698723.html
https://www.cnblogs.com/xuange306/p/9811458.html
https://www.jb51.net/LINUXjishu/273382.html

浙公网安备 33010602011771号