Linux抓包命令tcpdump使用笔记 Centos安装
-i 指定tcpdump监听的网络接口(ifconfig 或 ip addr查看),不使用默认 eth0 port 指定端口 -w 保存
抓包多个端口,使用or
条件过滤 1.指定需要抓取的协议 tcpdump可以只抓某种协议的包,支持指定以下协议:「ip,ip6,arp,tcp,udp,wlan」等。不指定协议默认所有 命令: tcpdump udp tcpdump icmp tcpdump tcp tcpdump arp 2.指定协议的端口号 使用port参数,用于指定端口号。 命令:tcpdump tcp port 80 使用portrange参数,用于指定端口范围。 命令:tcpdump tcp portrange 1-1024 3. 指定源与目标 src 表示源。 dst 表示目标。 命令: tcpdump src port 8080 tcpdump dst port 80 4.指定特定主机的消息包 使用host指定需要监听的主机。 命令: tcpdump host 192.168.1.113 注意:若使用了host参数使用了计算机名或域名。例tcpdump host shi-pc ,则无法再使用-n选项。 5. 过滤:指定数据包大小 使用greater(大于)与less(小于)可以指定数据包大小的范围。 「例:只抓取大于1000字节的数据包。」 命令: tcpdump greater 1000 「例:只抓取小于10字节的数据包。」 命令: tcpdump less 10 tcpdump逻辑表达式 使用基本逻辑组合拼装出更精细的过滤条件。 1.逻辑与 逻辑与关系,使用and。 命令: tcpdump tcp and host 192.168.1.112 tcpdump tcp and src 192.168.1.112 and port 8080 2.逻辑或 逻辑或关系,使用or。 命令: tcpdump host 192.168.1.112 or 192.168.1.113 3.逻辑非 逻辑非关系,使用not,也可以使用 ! 。 若使用 ! 必须与其后面的字符隔开一个空格。 例:当通过ssh协议远程使用tcpdump时,为了避免ssh的数据包的输出,所以一般需要禁止ssh数据包的输出。 命令: tcpdump not tcp port 22 tcpdump ! tcp port 22 4. 括号 括号需要使用在引号内,或转意使用。否则会报错。 例:抓取非22端口,且主机为192.168.1.112 和 192.168.1.113的TCP数据包。 命令: tcpdump not tcp port 22 and host 192.168.1.112or192.168.1.113 tcpdump "not tcp port 22 and host (192.168.1.112 or 192.168.1.113)" tcpdump not tcp port 22 and host "(192.168.1.112 or 192.168.1.113)" tcpdump抓包的同时实时保存成文件
-v 是显示详细情况,但在 -w 的参数影响下,只显示 got 5 这样的内容了。 -U 文件实时写入,而不是缓存后再写(用 -l 也可以实现相同效果,但两者还是) -w 把抓到的内容写到文件中,其中后面跟的文件是一个“减号”!即标准输入/输出。 tee 把标准输出保存成文件 tcpdump -r 把标准输入解析显示出来。 |