您的位置:首页 > 汽车 > 新车 > tcpdump使用指南

tcpdump使用指南

2024/11/15 20:24:23 来源:https://blog.csdn.net/u013092227/article/details/140933657  浏览:    关键词:tcpdump使用指南

tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。
在这里插入图片描述

# 1. 基于IP地址过滤
# 根据源ip进行过滤
$ tcpdump -i eth2 src 192.168.10.100# 根据目标ip进行过滤
$ tcpdump -i eth2 dst 192.168.10.200# 2. 基于网段进行过滤:net
$ tcpdump net 192.168.10.0/24
# 根据源网段进行过滤  可以理解为 ip 的前缀
$ tcpdump src net 192.168# 根据目标网段进行过滤
$ tcpdump dst net 192.168# 示例
$ tcpdump -i ens160  src net 10.10
17:11:59.473114 IP 10.10.2.238.55742 > master01.cluster.local.ssh: Flags [.], ack 14604, win 2028, options [nop,nop,TS val 1375892214 ecr 4001186014], length 0
17:11:59.473188 IP master01.cluster.local.ssh > 10.10.2.238.55742: Flags [.], seq 20844:23340, ack 1, win 501, options [nop,nop,TS val 4001186225 ecr 1375892214], length 2496
17:11:59.489447 IP 10.10.2.50.ideafarm-door > 10.10.1.21.41714: Flags [.], ack 149, win 128, length 0
17:11:59.498194 IP 10.10.2.238.55742 > master01.cluster.local.ssh: Flags [.], ack 15852, win 2048, options [nop,nop,TS val 1375892216 ecr 4001186042], length 0
17:11:59.498231 IP master01.cluster.local.ssh > 10.10.2.238.55742: Flags [.], seq 23340:24588, ack 1, win 501, options [nop,nop,TS val 4001186250 ecr 1375892216], length 1248
17:11:59.539698 IP 10.10.2.33.etcd-client > 10.10.2.49.45720: Flags [.], ack 3363427380, win 1432, options [nop,nop,TS val 3296084139 ecr 1511276523], length 0
17:11:59.539699 IP 10.10.2.33.etcd-client > 10.10.2.49.45130: Flags [.], ack 2489720301, win 801, options [nop,nop,TS val 3296084139 ecr 1511276523], length 0
# 可看出筛选出 所有 1 段的源 ip 包,也可以理解为前缀符合 10.10.1
$ tcpdump -i ens160  src net 10.10.1
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens160, link-type EN10MB (Ethernet), capture size 262144 bytes
17:13:23.179904 IP 10.10.1.21.41714 > 10.10.2.50.ideafarm-door: Flags [P.], seq 3089274228:3089274265, ack 2296379143, win 3507, length 37
17:13:23.199903 IP 10.10.1.21.41714 > 10.10.2.50.ideafarm-door: Flags [P.], seq 37:74, ack 54, win 3507, length 37
17:13:23.386367 IP 10.10.1.21.41714 > 10.10.2.50.ideafarm-door: Flags [P.], seq 74:111, ack 210, win 3507, length 37
17:13:23.596409 IP 10.10.1.21.41714 > 10.10.2.50.ideafarm-door: Flags [P.], seq 111:148, ack 279, win 3507, length 37# 3. 基于端口进行过滤:port
$ tcpdump port 8088
# 根据源端口进行过滤
$ tcpdump src port 8088# 根据目标端口进行过滤
$ tcpdump dst port 8088# 想要同时指定两个端口你可以这样写
$ tcpdump port 80 or port 8088# 想抓取的不再是一两个端口,而是一个范围,一个一个指定就非常麻烦了,此时你可以这样指定一个端口段
$ tcpdump portrange 8000-8080
$ tcpdump src portrange 8000-8080
$ tcpdump dst portrange 8000-8080# 对于一些常见协议的默认端口,我们还可以直接使用协议名,而不用具体的端口号 比如 http == 80,https == 443 等
$ tcpdump tcp port http# 4. 基本IP协议的版本进行过滤
# 当你想查看 tcp 的包,你也许会这样子写
$ tcpdump tcp# ip 根据版本的不同,可以再细分为 IPv4 和 IPv6 两种,如果你只指定了 tcp,这两种其实都会包含在内。
# 那有什么办法,能够将 IPv4 和 IPv6 区分开来呢?
# 如果是 IPv4 的 tcp 包 ,就这样写
$ tcpdump 'ip proto tcp'# 而如果是 IPv6 的 tcp 包 ,就这样写
$ tcpdump 'ip6 proto tcp'

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com