Linux tcpdump命令教程:网络流量分析利器(附案例详解和注意事项)

本文主要是介绍Linux tcpdump命令教程:网络流量分析利器(附案例详解和注意事项),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux tcpdump命令介绍

tcpdump是一个命令行工具,用于捕获和检查系统的网络流量。尽管名字中有tcp,但它也可以捕获非TCP流量,如UDP、ARP或ICMP。捕获的数据包可以写入文件或标准输出。

Linux tcpdump命令适用的Linux版本

tcpdump在大多数Linux发行版中都已默认安装。如果你的系统中没有安装,可以使用以下命令进行安装:

[linux@bashcommandnotfound.cn ~]$ sudo apt install tcpdump  # 对于Ubuntu, Debian
[linux@bashcommandnotfound.cn ~]$ sudo dnf install tcpdump  # 对于CentOS, Fedora
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S tcpdump  # 对于Arch Linux

Linux tcpdump命令的基本语法

语法格式如下:

tcpdump [options] [expression]

这里的options控制命令的行为,expression定义了哪些数据包将被捕获。

Linux tcpdump命令的常用选项或参数说明

这里列出一些常用的选项:

选项说明
-c捕获指定数量的数据包
-D列出可用的网络接口
-i指定网络接口
-n不解析主机名和端口名
-v详细输出
-vv更详细的输出
-w将捕获的数据包写入文件

Linux tcpdump命令实例详解

下面是一些tcpdump命令的使用实例:

实例1:基本使用

最简单的使用方式是不带任何选项和过滤器直接调用tcpdump命令:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump

这个命令会持续捕获数据包并将结果输出到终端,直到你发送中断信号(通常是Ctrl+C)。

实例2:指定网络接口

如果你有多个网络接口,你可能需要指定你想要捕获流量的接口。你可以使用-D选项列出tcpdump可以使用的网络接口:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -D

实例3:捕获指定数量的数据包

你可以使用-c选项指定要捕获的数据包数量:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -c 10

这个命令会捕获10个数据包,然后停止。

实例4:过滤特定端口的流量

你可以使用表达式来过滤特定端口的流量。例如,以下命令只捕获目标或源端口为80的数据包:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump port 80

实例5:过滤特定主机的流量

你也可以使用表达式来过滤特定主机的流量。例如,以下命令只捕获与IP地址192.168.1.1相关的数据包:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump host 192.168.1.1

实例6:将捕获的数据包写入文件

你可以使用-w选项将捕获的数据包写入文件,以便稍后进行分析:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -w output.pcap

这个命令会将所有捕获的数据包写入output.pcap文件。

实例7:从文件读取数据包

你可以使用-r选项从文件读取数据包:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -r output.pcap

这个命令会从output.pcap文件读取数据包,并将它们输出到终端。

实例8:过滤特定协议的流量

你可以使用表达式来过滤特定协议的流量。例如,以下命令只捕获ICMP数据包:

[linux@bashcommandnotfound.cn ~]$ sudo tcpdump icmp

这个命令会捕获所有ICMP数据包,并将它们输出到终端。

Linux tcpdump命令的注意事项

  • tcpdump命令需要管理员权限才能运行。
  • 如果你看到bash: tcpdump: command not found的提示,那么你需要按照上面的方法安装tcpdump

Linux tcpdump相关命令

tcpdump 是一个强大的命令行界面的网络分析工具。它可以捕获或过滤 TCP/IP 和其他数据包,被用作网络问题调试和安全分析。下面是一些 tcpdump 的使用方式,以及一些常见的网络和系统相关命令:
tcpdump 命令:捕获网络包
ping 命令:发送 ICMP ECHO_REQUEST 来测试网络连接性
netstat 命令:显示网络连接、路由表、接口统计等信息
traceroute 命令:显示数据包到达主机所经过的路由
dig 命令:DNS 查询工具
iptables 命令:用户空间的命令行程序,用于配置 Linux 2.4.x 和后续版本的网桥过滤器表
nslookup 命令:查询互联网名称服务器
host 命令:DNS 查找工具
ip 命令:用于显示或操纵路由、设备、策略路由和隧道
ifconfig 命令
ssh 命令:安全地访问远端服务器
scp 命令:安全的远程文件复制程序
curl 命令:数据传输工具,支持多种协议
wget 命令:从网络上自动下载文件的工具
mtr 命令:网络诊断工具
ls 命令:列出目录的内容
cat 命令:连结文件并打印到标准输出设备上
mkdir 命令:创建目录
rm 命令:删除文件或目录
top 命令:显示或管理执行中的程序
ps 命令:报告当前系统的进程状态
chown 命令:更改文件的用户和/或组所有权
chmod 命令:更改文件模式权限
df 命令:显示磁盘空间使用情况
du 命令:评估文件系统的磁盘使用

这篇关于Linux tcpdump命令教程:网络流量分析利器(附案例详解和注意事项)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.