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

2024-04-11 08:52

本文主要是介绍【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 的另外六个特性和标志,包括如何读取捕获的数据。最后,第三部分将为您提供更多收集信息的选项。

这篇关于【Linux】tcpdump P1 - 网络过滤选项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893612

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp