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 命令:评估文件系统的磁盘使用

相关推荐
李昊哲小课20 分钟前
deepin 安装 zookeeper
大数据·运维·zookeeper·debian·hbase
真真-真真37 分钟前
WebXR
linux·运维·服务器
轩辰~1 小时前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
wanhengidc2 小时前
短视频运营行业该如何选择服务器?
运维·服务器
雨中rain2 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG2 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss2 小时前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish2 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个2 小时前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&2 小时前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops