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.mzph.cn/news/719997.shtml

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

相关文章

防火墙:网络防御的第一道防线

目录 引言 一、安全技术与防火墙 (一)安全技术 (二)防火墙的主要功能与分类 1.防火墙的主要功能 2.防火墙的分类 二、Linux防火墙的基本认识 (一)Netfilter (二)防火墙工具…

单调队列(347. 前 K 个高频元素239. 滑动窗口最大值)

单调队列和单调栈其实差不多,就是维护一个区间单调的队列或者是栈,单调队列就是我们所说的大顶堆小顶堆, //升序队列 小顶堆 great 小到大 priority_queue <int,vector<int>,greater<int> > pri_que; //降序队列 大顶堆 less 大到小 默认 priority_qu…

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

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 4 Mar 2024 Totally 48 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Mitigating Reversal Curse via Semantic-aware Permutation Training Authors Qingyan Guo, Rui Wang, Junlia…

Fisher矩阵与自然梯度法

文章目录 Fisher矩阵及自然梯度法Fisher矩阵自然梯度法总结参考链接 Fisher矩阵及自然梯度法 自然梯度法相比传统的梯度下降法具有以下优势&#xff1a; 更好的适应性&#xff1a;自然梯度法通过引入黎曼流形上的梯度概念&#xff0c;能够更好地适应参数空间的几何结构。这使…

LCR 134. Pow(x, n)

解题思路&#xff1a; 分治 快速幂 Java中向下取整n/2即可 需要结合下图理解&#xff0c;算法就是实现的该过程 class Solution {public double myPow(double x, int n) {if(x 0.0f) return 0.0d;long b n;double res 1.0;//例如:2^-5(1/2)^5if(b < 0) {x 1 / x;b -b…

【Python】Python教师/学生信息管理系统 [简易版] (源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

京东商品优惠券API获取商品到手价

item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,i…

MATLAB环境下基于区域椭圆拟合的细胞分割方法

使用图像分割技术可以找到图像中的目标区域&#xff0c;目标区域可以定义为具有特定值的单个区域&#xff0c;也可以定义为具有相同值的多个区域。目前图像分割已经融入到生活中的方方面面&#xff0c;在遥感领域&#xff0c;它应用于航拍图中的地形、地貌的分割&#xff1b;在…

智慧城市的创新实践:全球案例分享

一、引言 在全球化和数字化的时代&#xff0c;智慧城市已经成为城市发展的前沿趋势。智慧城市运用先进的信息技术&#xff0c;如大数据、物联网、云计算和人工智能等&#xff0c;提升城市管理的智能化水平&#xff0c;增强公共服务效率&#xff0c;优化居民生活质量。本文将通…

第四十九回 吴学究双掌连环计 宋公明三打祝家庄-Python与HTTP服务交互

吴用请戴宗从梁山请来铁面孔目裴宣、圣手书生萧让、通臂猿侯健、玉臂匠金大坚来帮忙。又告诫扈家庄的扈成&#xff0c;打起来不要去帮祝家庄。 孙立把旗号改成“登州兵马提辖孙立”&#xff0c;来祝家庄找峦廷玉&#xff0c;被热情接待。 第三天&#xff0c;宋江派小李广花荣…

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍

1.简介 学习音视频开发&#xff0c;首先从做一款播放器开始是比较合理的&#xff0c;每一章节&#xff0c;我都会将源码贴在最后&#xff0c;此专栏你将学习到以下内容&#xff1a; 1&#xff09;音视频的解封装、解码&#xff1b; 2&#xff09;Qtopengl如何渲染视频&#…

Docker实战——容器

目录 Docker 容器的基本概念与操作1.使用“docker create”创建容器。这里基于Nginx的镜像创建了一个容器&#xff0c;名字为mycontainer。2.使用“docker ps -a”命令查看所有的容器&#xff0c;这时的容器不一定是运行状态。3.使用 “docker start” 命令可以启动容器。4.使用…

优化zabbix对Docker API的监控

启用Zabbix Agent 2对Docker API的监控&#xff0c;通常不需要直接编辑/etc/zabbix/zabbix_agent2.d/下的文件&#xff0c;因为针对Docker容器的监控是通过内建的插件实现的。以下是大致步骤&#xff1a; 确认Agent版本与配置&#xff1a; 确保你安装的是支持Docker监控的Zabbi…

JMeter正则表达式提取器和JSON提取器基础用法,小白必会!

【面试突击班】1. 性能测试主要关注哪些指标&#xff1f; 最近在利用JMeter做接口自动化测试&#xff0c;正则表达式提取器和JSON提取器用的还挺多&#xff0c;想着分享下&#xff0c;希望对大家的接口自动化测试项目有所启发。 在 JMeter 中&#xff0c;正则表达式和 JSON 提…

探索Ubuntu命令行:常见问题与解决方案

一、引言 Ubuntu&#xff0c;作为一款流行的Linux发行版&#xff0c;其命令行界面&#xff08;CLI&#xff09;为用户提供了丰富的功能和灵活性。然而&#xff0c;对于新手来说&#xff0c;命令行可能会带来一些挑战。本文将探讨一些在使用Ubuntu命令行时可能遇到的问题及其解决…

C语言内存优化实用指南

一、引言 在C语言编程中&#xff0c;内存管理是一项至关重要的任务。有效的内存优化可以提升程序的性能&#xff0c;减少资源消耗&#xff0c;并防止可能出现的内存泄漏和溢出问题。以下是一些关于C语言内存优化的实用指南。 二、理解内存管理 在C语言中&#xff0c;程序员需…

VMware虚拟机安装Linux

1.新建虚拟机 2. 安装操作系统 等待 选择中文 点软件选择 选择下面的GNOME桌面 禁用KDUMP 点进安装位置&#xff0c;点完成就可以了 网络连接&#xff0c;右上角打开 开始安装&#xff0c;输入ROOT密码&#xff0c;创建用户 点击重启&#xff0c;等待 重启完成之后出现下面的界…

Windows10蓝牙开关按钮不见了问题??

Windows10蓝牙开关按钮不见了问题&#xff1f;&#xff1f;此类问题一般是系统更新不及时的bug&#xff0c;遗漏掉了蓝牙相关驱动插件 试过很多方法&#xff0c;直接下载一个驱动人生即可&#xff0c;主要通过官网下载 下载这个就行 打开软件自动扫描就可以了 最后查看结果

python二级常见题目

一.常见语法 jieba—第三方中文分词函数库 jieba—第三方中文分词函数库_jieba库函数-CSDN博客 Python基础——format格式化 Python基础——format格式化_python format-CSDN博客 format()方法的使用超全_format方法-CSDN博客 Python中random函数用法整理 Python中random…

web安全学习笔记【19】——信息打点(9)

信息打点-红蓝队自动化项目&资产侦察&武器库部署&企查产权&网络空间[1] #知识点&#xff1a; 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-CM…