不会使用这个工具的网工,都不能称为高手

你们好,我的网工朋友。

点开之前,你脑子里闪出来的工具是什么?ping?又或是arp、tracert、route……?

今天要给你分享的是非常经典的Linux网络抓包工具Tcpdump。

它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。

Tcpdump 适用于大多数的类Unix系统操作系统(如linux,BSD等),你用过吗?

不会使用这个抓包工具的网工,速速安排上!

今日文章阅读福利:《 Tcpdump工具资源丨使用手册 》

私信我,发送关键词“Tcpdump”(建议复制一下直接发哈),即可获取安装、依赖包、中文使用手册(18页)。

tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。

不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。

例如:

shell> tcpdump -nn -i eth0 icmp

下面是详细的tcpdump用法。

01 tcpdump选项

它的命令格式为:

01 抓包选项

02 输出选项

03 其他功能性选项

所以常用的选项也就这几个:

  • tcpdump -D
  • tcpdump -c num -i int -nn -XX -vvv

02 tcpdump表达式

表达式用于筛选输出哪些类型的数据包,如果没有给定表达式,所有的数据包都将输出,否则只输出表达式为true的包。

在表达式中出现的shell元字符建议使用单引号包围。

tcpdump的表达式由一个或多个"单元"组成,每个单元一般包含ID的修饰符和一个ID(数字或名称)。有三种修饰符:

01 type:指定ID的类型

可以给定的值有host/net/port/portrange

例如"host foo""net 128.3""port 20""portrange 6000-6008"。默认的type为host。

02 dir:指定ID的方向

可以给定的值包括src/dst/src or dst/src and dst,默认为src or dst。

例如,"src foo"表示源主机为foo的数据包,"dst net 128.3"表示目标网络为128.3的数据包,"src or dst port 22"表示源或目的端口为22的数据包。

03 proto:通过给定协议限定匹配的数据包类型

常用的协议有tcp/udp/arp/ip/ether/icmp等,若未给定协议类型,则匹配所有可能的类型。

例如"tcp port 21""udp portrange 7000-7009"

所以,一个基本的表达式单元格式为"proto dir type ID"

除了使用修饰符和ID组成的表达式单元,还有关键字表达式单元:gateway,broadcast,less,greater以及算术表达式。

表达式单元之间可以使用操作符" and / && / or / || / not / ! "进行连接,从而组成复杂的条件表达式。

"host foo and not port ftp and not port ftp-data",这表示筛选的数据包要满足"主机为foo且端口不是ftp(端口21)和ftp-data(端口20)的包",常用端口和名字的对应关系可在linux系统中的/etc/service文件中找到。

另外,同样的修饰符可省略;

"tcp dst port ftp or ftp-data or domain""tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain"意义相同,都表示包的协议为tcp且目的端口为ftp或ftp-data或domain(端口53)。

使用括号"()"可以改变表达式的优先级,但需要注意的是括号会被shell解释,所以应该使用反斜线""转义为"()",在需要的时候,还需要包围在引号中。

03 tcpdump示例

注意,tcpdump只能抓取流经本机的数据包。

01 默认启动

tcpdump

默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。这样抓取的结果会非常多,滚动非常快。

02 监视指定网络接口的数据包

tcpdump -i eth1

如果不指定网卡,默认tcpdump只会监视第一个网络接口,如eth0。

03 监视指定主机的数据包

例如所有进入或离开longshuai的数据包

tcpdump host longshuai

04 打印helios<-->hot或helios<-->ace之间通信的数据包

tcpdump host helios and ( hot or ace )

05 打印ace与任何其他主机之间通信的IP数据包,但不包括与helios之间的数据包

tcpdump ip host ace and not helios

06 截获主机 hostname发送的所有数据

tcpdump src host hostname

07 监视所有 发送到主机hostname的数据包

tcpdump dst host hostname

08 监视指定主机和端口的数据包

tcpdump tcp port 22 and host hostname

09 对本机的udp 123端口进行监视(123为ntp的服务端口)

tcpdump udp port 123

10 监视指定网络的数据包

如本机与192.168网段通信的数据包,"-c 10"表示只抓取10个包

tcpdump -c 10 net 192.168

11 打印所有通过网关snup的ftp数据包

(注意,表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析)

shell> tcpdump 'gateway snup and (port ftp or ftp-data)'

12 抓取ping包

如果明确要抓取主机为192.168.100.70对本机的ping,则使用and操作符。

注意不能直接写icmp src 192.168.100.70,因为icmp协议不支持直接应用host这个type。

13 抓取到本机22端口包

14 解析包数据

总的来说,tcpdump对基本的数据包抓取方法还是较简单的。只要掌握有限的几个选项(-nn -XX -vvv -i -c -q),再组合表达式即可。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pytest中doctests的测试方法应用!

在 Python 的测试生态中&#xff0c;Pytest 提供了多种灵活且强大的测试工具。其中&#xff0c;doctests 是一种独特而直观的测试方法&#xff0c;通过直接从文档注释中提取和执行测试用例&#xff0c;确保代码示例的正确性。本文将深入介绍 Pytest 中 doctests 的测试方法&…

幻兽帕鲁服务器视频教程,3分钟快速搭建,新手0基础也可以!

幻兽帕鲁服务器搭建教程&#xff0c;基于阿里云计算巢新手3分钟0基础搞定&#xff0c;详细参考 aliyunbaike.com/go/palworld 视频教程 1分钟部署幻兽帕鲁搭建&#xff0c;新手成功创建&#xff01; 大家也可以参考阿里云百科下方的教程&#xff1a; 如何自建幻兽帕鲁服务器&a…

二极管漏电流对单片机ad采样偏差的影响

1&#xff0c;下图是常规的单片机采集电压电路&#xff0c;被测量电压经过电阻分压&#xff0c;给到mcu采集&#xff0c;反向二极管起到钳位作用&#xff0c;避免高压打坏mcu。 2&#xff0c;该电路存在的问题 二极管存在漏电流&#xff0c;会在100k电阻上产生叠加电压&#x…

pve宿主机更改网络导致没网,pve更改ip

一、问题描述 快过年了&#xff0c;我把那台一直在用的小型服务器&#xff0c;带回去了&#xff0c;导致网络发生了变更&#xff0c;需要对网络进行调整&#xff0c;否则连不上网&#xff0c;我这里改的是宿主机&#xff0c;不是pve虚拟机中的系统。 二、解决方法 pve用的是…

07.领域驱动设计:3种常见微服务架构模型的对比和分析

目录 1、概述 2、整洁架构 3、六边形架构 4、三种微服务架构模型的对比和分析 5、从三种架构模型看中台和微服务设计 5.1 中台建设要聚焦领域模型 5.2 微服务要有合理的架构分层 5.2.1 项目级微服务 5.2.2 企业级中台微服务 5.3 应用和资源的解耦与适配 6、总结 1、概…

2024年CSC公派研究生项目(含联培)选派办法及解读

2024年春节将至&#xff0c;知识人网提前祝大家新年快乐&#xff0c;心想事成&#xff01;同时提醒申请者关注国家留学基金委&#xff08;CSC&#xff09;的申报政策。近日CSC官网发布了2024年国家建设高水平大学公派研究生项目通知&#xff0c;知识人网小编现将其选派办法原文…

13.前端--CSS-盒子模型

1.盒子模型的组成 CSS 盒子模型本质上是一个盒子&#xff0c;封装周围的 HTML 元素&#xff0c;它包括&#xff1a;边框、外边距、内边距、和 实际内容 2.边框&#xff08;border&#xff09; 2.1 边框的使用 1、border设置元素的边框。边框有三部分组成:边框宽度(粗细) 边框…

ucharts 让x轴文字倾斜文字

ucharts 让x轴文字倾斜文字 xAxis: {disableGrid: true,scrollShow: false,//x轴文字倾斜rotateLabel:true},

2023年天猫食用油市场行业分析(电商数据查询软件):市场细分,营养调和油高速成长

食用油是人类膳食的重要组成部分&#xff0c;除了为日常饮食提供美味外&#xff0c;也是人体所需脂肪和能量的重要来源&#xff0c;对人体健康发挥着重要作用。因此&#xff0c;作为日常生活中的刚需品&#xff0c;食用油市场的整体规模也较大。 首先来看食用油市场的年度销售…

华为OD-华为机试精讲500篇系列文章目录介绍(持续补充ing)

目录 背景介绍 什么是华为OD&#xff1f; OD现状 OD趋势 华为OD机考刷题攻略 1、刷题资料&#xff1a;投递岗位通过筛选后提供 2、注意事项&#xff1a; 真题代码目录 背景介绍 经济下行的这几年&#xff0c;每个人都感同身受&#xff0c;如何让自己在芸芸众生中脱颖而…

深度学习之卷积神经网络

卷积神经网络简称为CNN 首先我们来回顾一下&#xff0c;我们之前学到的全连接的神经网络&#xff1a; 上面我们通过线性层串行连接起来的神经网络&#xff0c;我们叫做全链接的网络&#xff0c;在线性层里面&#xff0c;我们的输入值和任意的输出值之间都存在权重&#xff0c;…

05 Redis之Benchmark+简单动态字符串SDS+集合的底层实现

3.8 Benchmark Redis安装完毕后会自动安装一个redis-benchmark测试工具&#xff0c;其是一个压力测试工具&#xff0c;用于测试 Redis 的性能。 src目录下可找到该工具 通过 redis-benchmark –help 命令可以查看到其用法 3.8.1 测试1 3.9 简单动态字符串SDS 无论是 Redis …

中间件系列 - Kafka3.x从入门到精通

前言 学习视频&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优&#xff0c;深入全面&#xff09;本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删除 1 Kafka 概述 1.1 定义 Kafka传统定义: Kafka 是一个分布式的基于发布/订阅模式的消息队列…

JMeter GUI:测试计划和工作台

什么是测试计划&#xff1f; 测试计划是您添加 JMeter 测试所需元素的地方。 它存储运行所需测试所需的所有元素&#xff08;如线程组、计时器等&#xff09;及其相应的设置。 下图显示了测试计划的示例 测试计划是您添加 JMeter 测试所需元素的地方。 它存储运行所需测试…

OpenCV实战:控制手势实现无触摸拖拽功能

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来学习一下如何使用OpenCV来控制手势&#xff0c;瞬间提升操作体验&#xff01;跨越界限&#xff0c;OpenCV手势控制拖拽功能现身。 一、主要步骤及库的功能介绍 1.主要步骤 要实现本次实验&#xff0c;主要步骤如下…

设计模式——职责链模式(Chain of Responsibility Pattern)

概述 职责链模式(Chain of Responsibility Pattern)&#xff1a;避免请求发送者与接收者耦合在一起&#xff0c;让多个对象都有可能接收请求&#xff0c;将这些对象连接成一条链&#xff0c;并且沿着这条链传递请求&#xff0c;直到有对象处理它为止。职责链模式是一种对象行为…

【基础算法】1、快速排序快速选择

快速排序思想&#xff1a; 1、找一个分界点。 2、在分界点两边开始调整范围。 3、递归两边&#xff0c;重复。 例题&#xff1a; 给定你一个长度为 n的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xf…

prism 10 for Mac v10.1.1.270激活版 医学绘图分析软件

GraphPad Prism 10 for Mac是一款专为科研工作者和数据分析师设计的绘图和数据可视化软件。以下是该软件的一些主要功能&#xff1a; 软件下载&#xff1a;prism 10 for Mac v10.1.1.270激活版 数据整理和导入&#xff1a;GraphPad Prism 10支持从多种数据源导入数据&#xff0…

第六讲_JavaScript原型

JavaScript原型 1. 原型的概念2. 原型继承2.1 原型链 3. class类的原型对象 1. 原型的概念 原型是 JavaScript 对象相互继承特性的机制。 每个函数都有一个 prototype 属性&#xff0c;这个属性指向一个对象&#xff0c;这个对象称为原型对象。每个对象都有一个 [[Prototype]…

Linux操作系统权限相关问题(一站式速通权限)

一、sudo命令 sudo yum install -y sl sudo命令的作用 不切换用户&#xff0c;就想让普通用户以root的身份&#xff0c;执行对应的指令 输入密码时&#xff0c;输入的是自己普通用户的密码&#xff0c;而不是root的密码&#xff01;&#xff01;&#xff01; sudo可以进行…