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

Linux tcpdump命令介绍

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

Linux tcpdump命令适用的Linux版本

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

bash 复制代码
[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命令的基本语法

语法格式如下:

bash 复制代码
tcpdump [options] [expression]

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

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

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

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

Linux tcpdump命令实例详解

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

实例1:基本使用

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump

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

实例2:指定网络接口

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -D

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

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -c 10

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

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

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump port 80

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

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump host 192.168.1.1

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

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -w output.pcap

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

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

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

bash 复制代码
[linux@bashcommandnotfound.cn ~]$ sudo tcpdump -r output.pcap

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

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

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

bash 复制代码
[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 命令:评估文件系统的磁盘使用

相关推荐
Ven%4 分钟前
centos查看硬盘资源使用情况命令大全
linux·运维·centos
萨格拉斯救世主1 小时前
戴尔R930服务器增加 Intel X710-DA2双万兆光口含模块
运维·服务器
Jtti1 小时前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws1 小时前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
yeyuningzi1 小时前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
上辈子杀猪这辈子学IT1 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
minihuabei1 小时前
linux centos 安装redis
linux·redis·centos
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
lldhsds2 小时前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux