【Linux】tcpdump P1 - 网络过滤选项

文章目录

  • 选项 -D
  • 选项 -c X
  • 选项 -n
  • 选项 -s
  • 端口捕获 port
  • 选项 -w
  • 总结

tcpdump 实用程序用于捕获和分析网络流量。系统管理员可以使用它来查看实时流量或将输出保存到文件中稍后分析。本文将演示在日常使用 tcpdump时可能想要使用的几种常见选项。

选项 -D

使用-D 选项的 tcpdump 提供了您可以从中捕获流量的设备列表。此选项识别 tcpdump 所知道的设备。一旦您看到这个列表,您就可以决定哪个接口来捕获流量。它还会告诉您接口是否处于 Up(开启)、Running(运行中)状态,以及它是否是 Loopback(回环)接口,如下面的输出所示:

# tcpdump -D
1.tun0 [Up, Running]
2.wlp0s20f3 [Up, Running]
3.lo [Up, Running, Loopback]
4.any (能够捕获所有接口的伪设备) [Up, Running]
5.virbr0 [Up]
6.docker0 [Up]
7.enp0s31f6 [Up]

选项 -c X

-c 选项捕获 X 个数据包然后停止。否则,tcpdump 会持续运行。所以当您只想捕获一小部分数据包样本时,可以使用这个选项。但是,如果接口上没有活动,tcpdump 会持续等待。

# tcpdump -c 5 -i anytcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
14:36:55.761644 IP 10.10.10.11.ssh > 14.22.11.191.17708: Flags [P.], seq 3507388358:3507388546, ack 3395898523, win 501, length 188
14:36:55.761934 IP 10.10.10.11.52604 > 183.60.83.19.domain: 19057+ PTR? 191.11.22.14.in-addr.arpa. (43)
14:36:55.770958 IP 14.22.11.191.17708 > 10.10.10.11.ssh: Flags [.], ack 0, win 239, length 0
14:36:55.789099 IP 14.22.11.191.17708 > 10.10.10.11.ssh: Flags [.], ack 188, win 254, length 0
14:36:55.824211 IP 183.60.83.19.domain > 10.10.10.11.52604: 19057 NXDomain 0/1/0 (131)
5 packets captured
10 packets received by filter
0 packets dropped by kernel

选项 -n

通常,使用 IP 地址而不是名称会更容易处理。您可以使用 -n 来实现这一点。

# tcpdump -c 5 -i any -ntcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
14:38:09.530074 IP 10.10.10.11.ssh > 14.22.11.191.17708: Flags [P.], seq 3507391162:3507391350, ack 3395898711, win 501, length 188
14:38:09.530173 IP 10.10.10.11.ssh > 14.22.11.191.17708: Flags [P.], seq 188:360, ack 1, win 501, length 172
14:38:09.530215 IP 10.10.10.11.ssh > 14.22.11.191.17708: Flags [P.], seq 360:500, ack 1, win 501, length 140
14:38:09.530256 IP 10.10.10.11.ssh > 14.22.11.191.17708: Flags [P.], seq 500:640, ack 1, win 501, length 140
14:38:09.530296 IP 10.10.10.11.ssh > 14.22.11.191.17708: Flags [P.], seq 640:780, ack 1, win 501, length 140
5 packets captured
5 packets received by filter
0 packets dropped by kernel

选项 -s

使用 -s XXXtcpdump 帮助您控制捕获大小。在上面的输出的第二行中,您可以看到它说捕获大小为 262144 字节,这比数据包本身大得多。您可以使用 -s来改变捕获大小。如果您只想检查数据包头,那么您可以为捕获使用较小的大小。以下是一个示例:

# tcpdump -c 5 -i any -n -s 64tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 64 bytes
14:39:36.302446 IP 10.10.10.11.ssh > 14.22.11.191.17707: Flags [P.], seq 2177159718:2177159906, ack 2903028371, win 501, length 188
14:39:36.302554 IP 10.10.10.11.ssh > 14.22.11.191.17707: Flags [P.], seq 188:360, ack 1, win 501, length 172
14:39:36.302600 IP 10.10.10.11.ssh > 14.22.11.191.17707: Flags [P.], seq 360:500, ack 1, win 501, length 140
14:39:36.302681 IP 10.10.10.11.ssh > 14.22.11.191.17707: Flags [P.], seq 500:640, ack 1, win 501, length 140
14:39:36.302754 IP 10.10.10.11.ssh > 14.22.11.191.17707: Flags [P.], seq 640:780, ack 1, win 501, length 140
5 packets captured
5 packets received by filter
0 packets dropped by kernel

端口捕获 port

tcpdump 允许您指定使用端口 X 作为源或目的地的网络数据包。例如,要捕获 DNS 流量,您可以使用端口 53。您可以在端口关键字前加上 src/dst 来进一步过滤,如 src port 53dst port 53

# tcpdump -i any port 53 -n

选项 -w

如果您想要将 tcpdump 的输出写入文件,可以使用 -w选项。要写入 .pcap 文件,可以使用 -w .pcap。如果您想知道写入了多少个数据包,可以添加 -v

# tcpdump -i any port 8080 -w 8080.pcap -v
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
Got 14

总结

如你所见,tcpdump 是一个收集有关网络流量数据的极好工具。数据包捕获为故障排除和安全分析提供了有用的信息。

本系列的第二部分将继续介绍 tcpdump 的另外六个特性和标志,包括如何读取捕获的数据。最后,第三部分将为您提供更多收集信息的选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中文域名有必要注册吗?

随着互联网的普及和全球化,中文域名作为一种新兴的网络标识,逐渐进入了公众的视野。中文域名,顾名思义,是以中文字符为主要组成部分的域名,它允许用户直接使用中文来访问网站,而不需要记忆或输入一串英文字…

并发基础面试题第一篇

1.为什么要使用并发编程 提升多核CPU的利用率:一般来说一台主机上会有多个cpu核心,我们可以创建多个线程,理论上讲操作系统可以将多个线程分配给不同的CPU执行,每个CPU执行一个线程,这样就提高了CPU的使用效率。 简单…

怎么开发一个预约小程序_一键预约新体验

预约小程序,让生活更便捷——轻松掌握未来,一键预约新体验 在快节奏的现代生活中,我们总是在不断地奔波,为了工作、为了生活,不停地忙碌着。然而,在这繁忙的生活中,我们是否曾想过如何更加高效…

邮件群发提高成功率的技巧?如何群发邮件?

邮件群发有哪些注意事项?怎么有效分析邮件群发效果? 邮件群发已经成为一种高效的信息传递手段。然而,很多人发现,尽管发送了大量的邮件,但回应率却并不理想。那么,如何才能在邮件群发中提高成功率呢&#…

【flutter启动分析】

flutter启动分析的入口: void main() {runApp(const MyApp()); } main函数会调用runapp(); void runApp(Widget app) { //生成对象给下面两个领域 //Flutter Framework ---调用到---胶水对象---》Flutter 的C++ Engine(so库这种)final WidgetsBinding binding = WidgetsF…

Oracle小机利用ZFS实现在线存储迁移

1.ZFS介绍 2004年:Sun Microsystems 开始研发 ZFS 文件系统。ZFS 最初是作为 Solaris 操作系统的一部分而开发的,旨在解决传统文件系统的一些限制和问题。 2010年:Oracle 收购了 Sun 公司,从而获得了 ZFS 文件系统的所有权和控制权…

node 中的 nextTick 和 vue 中的 nextTick 的区别

node 中的 nextTick node 中的 nextTick 是 node 自带全局的变量 process 的一个方法,process.nextTick 是一个微任务,在 node 的所有微任务中最先执行,是优先级最高的微任务。浏览器中是没有这一个方法的。 vue 中的 nextTick vue 中的 n…

只为兴趣,2024年你该学什么编程?

讲动人的故事,写懂人的代码 当你想学编程但不是特别关心找工作的时候,选哪种语言学完全取决于你自己的目标、兴趣和能找到的学习资料。一个很重要的点,别只学一种语言啊!毕竟,"门门都懂,样样皆通",每种编程语言都有自己的优点和适合的用途,多学几种可以让你的…

鸿蒙开发 一 (二)、熟悉鸿蒙之剑 ArkTS

ArkTS是HarmonyOS主要应用开发语言,以后也别在弄那个 java 和鸿蒙的混合版了, 没必要浪费时间, 一步到位, 学新的吧。 简介 ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保…

网络工程师(强化训练)-网络互联与互联网

网络工程师 以下关于OSPF路由协议的描述中,错误的是向整个网络中每一个路由器发送链路代价信息。相比于TCP,UDP的优势为开销较小。以太网可以传送最大的TCP段为1480字节。IP数据报经过MTU较小的网络时需要分片。假设一个大小为1500字节的报文分为2个较小…

【如何应用OpenCV对图像进行二值化】

使用OpenCV进行图像二值化是一个常见的图像处理任务。以下是一个简单的步骤说明,以及相应的Python代码示例。 步骤说明: 读取图像:首先,使用OpenCV的imread函数读取图像。灰度化:将彩色图像转换为灰度图像&#xff0…

LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)

【LetMeFly】1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心) 力扣题目链接:https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary ,它仅有 0 或者 1 组…

Day 20 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉…

【鸿蒙千帆起】《开心消消乐》完成鸿蒙原生应用开发,创新多端联动用户体验

《开心消消乐》已经完成鸿蒙原生应用开发,乐元素成为率先完成鸿蒙原生应用开发的20游戏厂商之一。作为一款经典游戏,《开心消消乐》已经拥有8亿玩家,加入鸿蒙原生应用生态,将为其带来更优的游戏性能和更多创新体验。自9月25日华为…

中国500米分辨率月最大EVI数据集

增强型植被指数(EVI)是在归一化植被指数(NDVI)改善出来的,根据大气校正所包含的影像因子大气分子、气溶胶、薄云、水汽和臭氧等因素进行全面的大气校正,EVI大气校正分三步,第一步是去云处理。第…

结构体和结构体指针的区别

1.定义区别 结构体的定义如下: struct 结构体名 {数据类型 成员变量名1;数据类型 成员变量名2;// 可以有更多的成员变量 };例如,定义一个表示学生的结构体: struct Student {int id;char name[20];int age; };上述定义了一个名为Student的…

Glide系列-自定义ModuleLoader

在当今快速发展的移动应用领域,图片的高效加载和显示对于提供流畅用户体验至关重要。Glide作为一款强大的图片加载库,已经成为Android开发者的首选工具之一。但是,你有没有遇到过Glide默认不支持的模型类型,或者需要对图片加载过程…

【SQL Sever】3. 用户管理 / 权限管理

1. 创建登录名/用户/角色 在SQL Server中,创建用户通常涉及几个步骤。 首先,你需要创建一个登录名,然后你可以基于这个登录名在数据库中创建一个用户。 以下是如何做到这一点的步骤和相应的SQL语句: 创建登录名 首先&#xff0c…

什么是尾调用优化

尾调用优化(Tail Call Optimization,TCO)是一种编译器或解释器的优化技术,旨在减少函数调用的内存消耗。尾调用发生在一个函数的最后一个操作是调用另一个函数时。在这种情况下,如果编译器能够优化,它可以将…

Centos离线安装ansible

Centos离线安装ansible 1、首先是互联网环境,安装python,创建虚拟环境,更新pip和setuptools python3 -m venv venv_2 # 此处 venv_2 也是自定义的虚拟环境名字 退出虚拟环境deactivate 进入虚拟环境source ~/ansible/bin/activate pip i…