tcpdump使用方法

ops/2024/11/23 22:23:52/

文章目录

      • 1. 安装tcpdump
        • 在Debian/Ubuntu系统
        • 在Red Hat/CentOS系统
        • 验证安装
      • 2. 基本用法
        • 查看可用网络接口
        • 捕获所有流量
        • 保存捕获的数据
        • 从文件读取数据
      • 3. 高级用法
        • 显示更多详细信息
        • 限制捕获数据包数量
        • 指定数据包大小
        • 实时输出时间戳
      • 4. 过滤流量
        • 过滤特定协议
        • 过滤IP地址
        • 过滤端口
        • 组合条件
      • 5. 常见场景示例
        • 捕获HTTP流量
        • 捕获HTTPS流量
        • 捕获Ping流量
        • 捕获ARP流量
        • 只显示IP和端口
        • 保存流量并限制文件大小
      • 6. 捕获结果解析
        • 示例输出
      • 7. 注意事项

tcpdump 是一个强大的命令行工具,用于捕获和分析网络流量。以下是 tcpdump 的详细使用说明,包括安装、基本命令、高级用法和过滤示例。


tcpdump_6">1. 安装tcpdump

在Debian/Ubuntu系统
sudo apt-get update
sudo apt-get install tcpdump
在Red Hat/CentOS系统
sudo yum install tcpdump
验证安装
tcpdump --version

2. 基本用法

查看可用网络接口
tcpdump -D

输出示例:

1. eth0
2. wlan0
3. any (pseudo-device that captures on all interfaces)
捕获所有流量
tcpdump -i eth0

说明

  • -i eth0:监听接口eth0的流量。如果不指定接口,默认使用第一个可用接口。
  • 需要 sudo 权限。
保存捕获的数据

将捕获的数据保存到文件:

tcpdump -i eth0 -w capture.pcap

保存的数据可用 Wireshark 等工具进行分析。

从文件读取数据
tcpdump -r capture.pcap

3. 高级用法

显示更多详细信息
tcpdump -i eth0 -v
tcpdump -i eth0 -vv
tcpdump -i eth0 -vvv

说明

  • -v:显示更详细的协议信息。
  • -vv:显示额外的详细信息,例如TTL、选项等。
  • -vvv:最详细模式,显示完整数据包信息。
限制捕获数据包数量
tcpdump -i eth0 -c 10

捕获10个数据包后停止。

指定数据包大小
tcpdump -i eth0 -s 0

说明

  • -s 0:捕获整个数据包(默认只捕获前96字节)。
实时输出时间戳
tcpdump -i eth0 -tt

4. 过滤流量

过滤特定协议
tcpdump -i eth0 tcp
tcpdump -i eth0 udp
tcpdump -i eth0 icmp
过滤IP地址

捕获来自指定IP地址的数据包:

tcpdump -i eth0 src 192.168.1.1

捕获发往指定IP地址的数据包:

tcpdump -i eth0 dst 192.168.1.1

捕获任一方向:

tcpdump -i eth0 host 192.168.1.1
过滤端口

捕获特定端口的流量:

tcpdump -i eth0 port 80

捕获源端口:

tcpdump -i eth0 src port 22

捕获目的端口:

tcpdump -i eth0 dst port 443
组合条件

使用逻辑运算符 andornot 组合过滤条件:

tcpdump -i eth0 src 192.168.1.1 and tcp
tcpdump -i eth0 port 80 or port 443
tcpdump -i eth0 not icmp

5. 常见场景示例

捕获HTTP流量
tcpdump -i eth0 tcp port 80
捕获HTTPS流量
tcpdump -i eth0 tcp port 443
捕获Ping流量
tcpdump -i eth0 icmp
捕获ARP流量
tcpdump -i eth0 arp
只显示IP和端口
tcpdump -i eth0 -nn

说明

  • -n:不解析主机名。
  • -nn:不解析主机名和端口号。
保存流量并限制文件大小
tcpdump -i eth0 -w capture.pcap -C 10

说明

  • -C 10:每个文件大小限制为10MB。

6. 捕获结果解析

示例输出
12:34:56.789123 IP 192.168.1.2.12345 > 192.168.1.3.80: Flags [S], seq 123456789, win 65535, options [mss 1460], length 0

字段说明

  • 12:34:56.789123:捕获时间。
  • IP:协议类型(IP)。
  • 192.168.1.2.12345:源IP和源端口。
  • 192.168.1.3.80:目标IP和目标端口。
  • Flags [S]:TCP标志位(SYN)。
  • seq:序列号。
  • win:窗口大小。
  • length:数据长度。

7. 注意事项

  1. 权限问题

    • 需要以 sudo 权限运行。
    • 或者将用户加入 tcpdump 组。
  2. 流量隐私

    • tcpdump会捕获明文数据(如HTTP请求内容),避免在生产环境中滥用。
  3. 性能影响

    • 在高负载环境下捕获流量可能导致性能下降。
  4. 保存文件格式

    • 默认保存为 .pcap 格式,可用Wireshark打开分析。

http://www.ppmy.cn/ops/136158.html

相关文章

Flink的Standalone集群模式安装部署

一.Flink模式介绍 Flink支持多种安装模式。 local(本地)——本地模式 standalone——独立模式,Flink自带集群,开发测试环境使用 standaloneHA—独立集群高可用模式,Flink自带集群,开发测试环境使用 ya…

秋招总结与感悟

秋招总结与感悟 第一章 个人简介 1.1 个人背景 笔者本科双一流,硕士211,控制工程专业,有英语六级,计算机三级证书,25秋招拿到6家offer。 1.2 求职经历 笔者从2023年7月份,即研一暑假开始准备25届秋招&…

大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

淘宝商品爬虫:Python的“购物车”大冒险

大家好,我是你们的老朋友Python,今天我将带领大家进行一场刺激的“购物车”大冒险,目标是淘宝的海量商品数据。别担心,我们的行动是完全合法的,就像在超市里用购物车一样,只是我们的目标是数据,…

unity webgl点击链接后微信下面有导航条问题

LaunchURLWebGL | Integration | Unity Asset Store 把里面 LaunchURLWebGL.jslib 文件改成如下内容,这样可以不加入历史记录,下面就不显示菜单了 ,不晓得有什么更好的方法,这个也不是最优接,返回还的加个按钮切换 m…

面试小札:Java的类加载过程和类加载机制。

Java类加载过程 加载(Loading) 这是类加载过程的第一个阶段。在这个阶段,Java虚拟机(JVM)主要完成三件事: 通过类的全限定名来获取定义此类的二进制字节流。这可以从多种来源获取,如本地文件系…

Flutter踩坑记录(一)debug运行生成的项目,不能手动点击运行

问题 IOS14设备,切后台划掉,二次启动崩溃。 原因 IOS14以上 flutter 不支持debugger模式下的二次启动 。 要二次启动需要以release方式编译工程安装至手机。 操作步骤 清理项目:在命令行中运行flutter clean来清理之前的构建文件。重新构…

java集合练习题

简答题:分析HashSet和treeSet分别如何去重的? TreeSet的去重机制: 如果你传入了一个Comparator匿名对象,就使用实现的compare去重,如果方法返回0,就认为是相同的元素/数据,就不添加,如果你没有传入一个Comp…