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

news/2025/2/22 8:59:29/

文章目录

  • 7. 选项 -r
  • 8. 主机选项
  • 9. 逻辑运算符
  • 10. 关键字 net
  • 11. 关键字 ether
  • 12. 关键字 ip6
  • 总结

本文主要介绍了如何使用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结果的标志。


http://www.ppmy.cn/news/1422349.html

相关文章

【C语言】——字符串函数的使用与模拟实现(下)

【C语言】——字符串函数的使用与模拟实现(下) 前言五、长度受限类字符串函数5.1、 s t r n c p y strncpy strncpy 函数5.2、 s t r n c a t strncat strncat 函数5.3、 s t r n c m p strncmp strncmp 函数 六、 s t r s t r strstr strstr 函数6.1、函…

take-out-sky项目笔记第三章

文章目录 前言公共字段自动填充文件的上传 前言 以后这个项目所涉及的比较重要的技术点我都会将其单独写一篇文章,如果将这些技术点写在项目文章里面的话,不仅会不够细致,而且还会使项目结构看起来很乱,不够规整。这个项目文章以…

【C 数据结构】线性表

文章目录 【 1. 线性表 】【 2. 顺序存储结构、链式存储结构 】【 3. 前驱、后继 】 【 1. 线性表 】 线性表,全名为线性存储结构,线性表结构存储的数据往往是可以依次排列的(不考虑数值大小顺序)。 例如,存储类似 {1…

【网络编程】web服务器shttpd源码剖析——命令行和文件配置解析

hello !大家好呀! 欢迎大家来到我的网络编程系列之web服务器shttpd源码剖析——命令行解析,在这篇文章中,你将会学习到在Linux内核中如何创建一个自己的并发服务器shttpd,并且我会给出源码进行剖析,以及手绘…

Java练习题

题目:使用二维数组打印杨辉三角前二十行。 介绍:杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。 左图的表在我国南宋数学家杨辉1261年所著的《详解九章算法》一书里就出现了。 现在&…

PCG共轭梯度最小二乘相位解包裹-matlab(可直接运行)

phase_unwrap.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 根据Ghiglia和Romero(1994)提出的方法,基于加权和非加权最小二乘法进行相位解包裹 % 链接:https://doi.org/10.1364/JOSAA.11.000107 % 输…

Go语言异常处理方式

Go 语言没有传统的异常处理机制,如 Java、C 或 Python 中的 try-catch 语句。取而代之,Go 采用了基于返回错误值和 panic/recover 机制的混合模式来进行错误处理。以下是 Go 语言中处理异常(或称错误)的两种主要方式: …

服务器docker应用一览

文章目录 一、需求概况二、业务流程三、运行效果四、实现过程1. 基础前提2. 源码放送3.核心代码4. 项目打包5.部署步骤 一、需求概况 现有某云主机服务器,用来做项目演示用,上面运行了docker应用,现希望有一总览页面,用来展示部署…