【Linux】tcpdump P2 - 捕获和查看网络数据包

本文主要介绍了如何使用tcpdump来捕获和查看网络数据包。

7. 选项 -r

如果你已经走到了这一步并且写入了一个.pcap文件,你知道你不能使用简单的文本编辑器来读取文件内容。因此,你应该使用-r file.pcap选项。它读取现有的捕获文件并将其打印为输出。

# tcpdump -i any port 8080 -w 8080.pcap -v
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
^C14 packets captured
28 packets received by filter
0 packets dropped by kernel

# tcpdump -r 8080.pcap
reading from file 8080.pcap, link-type LINUX_SLL (Linux cooked)
15:01:09.515750 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [S], seq 4077166376, win 65495, options [mss 65495,sackOK,TS val 1908517405 ecr 0,nop,wscale 7], length 0
15:01:09.515760 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [S.], seq 2501983880, ack 4077166377, win 65483, options [mss 65495,sackOK,TS val 1908517405 ecr 1908517405,nop,wscale 7], length 0
15:01:09.515768 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [.], ack 1, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.515816 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [P.], seq 1:172, ack 1, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 171: HTTP: POST /hello HTTP/1.1
15:01:09.515819 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [.], ack 172, win 511, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.516091 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [P.], seq 1:18, ack 172, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 17: HTTP: HTTP/1.0 200 OK
15:01:09.516102 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [.], ack 18, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.516119 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [P.], seq 18:53, ack 172, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 35: HTTP
15:01:09.516122 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [.], ack 53, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.516145 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [P.], seq 53:90, ack 172, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 37: HTTP
15:01:09.516147 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [.], ack 90, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.516176 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [F.], seq 90, ack 172, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.516196 IP 10.10.10.11.51710 > 10.10.10.11.webcache: Flags [F.], seq 172, ack 91, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0
15:01:09.516199 IP 10.10.10.11.webcache > 10.10.10.11.51710: Flags [.], ack 173, win 512, options [nop,nop,TS val 1908517405 ecr 1908517405], length 0

8. 主机选项

如果你想过滤特定主机的流量,你可以使用host iphost name来捕获特定主机的数据包。

# tcpdump host redhat.com -i any -c4

你可以使用srcdst关键字来告诉tcpdump捕获的数据包应该包含源地址或目的地址中的主机,例如,你可以尝试运行tcpdump -i any src host localhosttcpdump -i any dst host redhat.com

9. 逻辑运算符

tcpdump支持and/or/not运算符作为关键字,例如:tcpdump -i eth0 "host redhat.com and (port 80 or port 443)"。将复杂表达式用引号括起来是明智的,这样bash就不会尝试解释括号。

# tcpdump -i eth0 "host 10.10.10.11 and (port 22 or port 8080)"

10. 关键字 net

net关键字可以用来通过CIDR表示法指定捕获哪个网络的流量。你可以使用srcdst网络CIDR与逻辑运算符结合,更精确地过滤数据包。

# tcpdump -i any -n "src net 192.168.0.0/16 and not dst net 10.0.0.0/8" -c4

11. 关键字 ether

可以使用ether host关键字应用过滤器,将流量捕获限制在MAC地址上。使用-e选项在每个转储行上打印链路层头。这可以用于打印诸如以太网和IEEE 802.11等协议的MAC层地址。以下示例捕获了第2层广播流量:

# tcpdump ether host ff:ff:ff:ff:ff:ff -i eth0 -e -c4

12. 关键字 ip6

可以使用ip6关键字捕获IPv6流量。以下是一个示例:

# tcpdump -i any ip6 host google.com -c4

总结

在第二部分中,你学习了六个新的选项,用于使用tcpdump在网络上管理数据包捕获。这篇文章建立在第一部分所涵盖的信息之上。在最后一篇中,你将看到另外六个帮助过滤tcpdump结果的标志。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值