当前位置: 首页 > news >正文

【漏洞分析】DDOS攻防分析

0x00 UDP攻击实例

2013年12月30日,网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd(这名字一看就是个玩家)和黑客组织DERP Trolling。

PhantomL0rd,人称“鬼王”,本名James Varga,某专业游戏小组的成员,同时是美国最大的在线游戏直播平台Twitch的知名和资深视频博主,经常一边参加游戏对战一边实况直播。

DERP Trolling,一个成立于2011年的黑客组织,本次事件中专门以“PhantomL0rd”实况直播的游戏为攻击目标,一旦成功弄倒目标,便会在推特上发布战果。

事情看上去很简单。这一天,PhantmL0rd连续在多场游戏对战中遭到DERP Trolling的“追杀”:凡是PhantmL0rd参加的网络游戏,都不同程度地遭到了DERP Trolling的DDoS攻击。英雄联盟、EA官网、暴雪战网、DOTA2官网、企鹅俱乐部等等知名游戏网站都因遭到DDoS攻击而瘫痪。哎,不过想要玩个游戏而已,怎么就这么难?

然而,随着事件的不断被挖掘和曝光,知道真相的玩家们哭了。调查发现,一直被认为是受害者的PhantomL0rd实际上恰恰是这次事件的幕后主使。这是什么原因呢?

原来,PhantomL0rd经常参加一些游戏对战比赛,既然是比赛就会有胜有负。但是PhantomL0rd为了保住自己“王”的地位,就偷偷地和DERP Trolling串通:一旦比赛过程中PhantomL0rd打不过对手,DERP Trolling就登场,向游戏服务器发动DDoS攻击,让比赛异常终止,这样PhantomL0rd就有翻盘的机会。

这次事件的曝光不仅让PhantomL0rd颜面尽失,还让DERP Trolling使用的这个DDoS攻击手段“火”了一把。那么DERP Trolling到底使用了什么手段呢?

DERP Trolling在这次“追杀”事件中,采用的是NTP反射放大攻击。从记载来看,DERP Trolling应该是第一个利用NTP服务器进行大规模反射放大攻击的黑客组织。这次“追杀”事件之后,NTP反射放大攻击一夜之间变得非常火热。2014新年的第一周,NTP反射放大攻击占到了DDoS攻击流量的69%。

什么是NTP反射放大攻击?

我们先来看看什么是NTP。NTP,全称是Network Time Protocol,网络时间协议。顾名思义,NTP是一种用于保证网络中的计算机时间同步的协议。在网络中,计算机的时间同步非常的重要。比如发射火箭,如果每台计算机时间都不同,那么发射的时候应该以哪台计算机为准呢?

NTP协议采用服务器-客户端模型,提供了高精准度的时间校正机制。在网络中,NTP客户端不以自己的时间为准,而是每隔一段时间从NTP服务器同步更新自身时间。NTP协议定义了NTP服务器的层次结构,通过逐层传播,实现时间同步。因为上游NTP服务器通常是高精度而可靠的时钟源,如原子钟、卫星、天文台等,时间同步的精度得到了保证。

20161101142049665.png

NTP协议中有一个监控(Monlist)功能,用于监控NTP服务器。NTP服务器会记录与自己进行过时间同步的客户端IP地址的信息,而且客户端可以通过一些命令索要这些记录。每个NTP服务器可以记录进行过时间同步的最后600个客户端的IP地址,当有客户端索要这个记录时,NTP服务器会返回这600个客户端IP地址,响应包按照每6个IP地址进行分割,最多可以返回100个响应包。

20161101142103507.png

 

理解了NTP协议,NTP反射放大攻击就容易理解了。NTP反射放大攻击有两个关键点:反射和放大。

反射

反射,就是把源IP地址伪造成被攻击IP地址,进行“传瞎话”的无耻行为。谎言之所以可以传播,就是因为听者轻信。缺少源认证机制的协议最容易被利用,所以反射攻击均为基于UDP的无状态连接协议。NTP正是基于UDP协议进行传输的。

在UDP协议中,正常情况下,客户端发送请求包到服务器,服务器返回响应包给客户端,这就完成了一次交互,中间没有校验过程。由于UDP协议是面向无连接的,所以客户端发送请求包的源IP地址很容易被篡改。一些低版本的NTP服务器没有针对源IP地址的校验机制,所以如果把请求包的源IP地址篡改为攻击目标的IP地址,最终服务器返回的响应包就会被送到攻击目标,这就是“反射”攻击。

20161101142116560.png

 

放大

放大,顾名思义,就是我假冒你的名义打他一拳,他会打你100拳。黑客通常是利用互联网的基础架构来进行放大攻击,效果更强,毕竟网络基础架构的能力是超级强大的,而且,完全免费。——这让我想起《三体》中叶文洁利用太阳来放大电磁波信号,把太阳作为放大器,大刘的脑洞够大。网络中开放的NTP服务器非常多,如果黑客利用僵尸主机,同时向NTP服务器发起大量的Monlist请求,1个Monlist请求包可以引发100个响应包。通常,1个NTP请求包只有90字节的大小,而1个回应报文通常为482字节,100个回应报文就是48200字节,回应报文是请求报文的500倍左右,这样就可以达到四两拨千斤的“放大”效果。

20161101142008179.png

(author Zhaoxuepeng https://www.cnblogs.com/Shepherdzhao/)

0x01 UDP协议基础知识

UDP协议全称“用户数据报协议”,User Datagram Protocol,是一种传输层协议。UDP协议是一种无连接的协议,不提供数据报的分组、组装,不对数据包的传输进行确认,当报文发送出去后,发送端不关心报文是否完整的到达对端。这个听起来像是缺点的特点,却是UDP协议最大的优点。这种报文处理方式决定了UDP协议资源消耗小,处理速度快,所以通常音频、视频和普通数据传送时使用UDP比较多。就比如音频或视频吧,大家在看视频或者听音乐的时候,都是追求数据传输更快一些,而在传输过程中,偶尔丢一两个数据包,对整体效果并不会产生太大的影响。

相比于之前介绍的DNS和HTTP协议,UDP协议需要关注的点要简单很多。我们来看看UDP报文结构。

20161108111340314.png

我们再来看一个现网真实UDP报文的抓包。

20161108111450166.png

每个UDP报文由UDP报文头部和UDP数据字段两部分组成。其中头部字段由8个字节,4个字段组成,分别是:源端口号、目的端口号、报文长度和校验和。

l  UDP协议使用端口号为不同的应用保留其各自的数据传输通道。比如DNS协议目的端口号是53;TFTP协议目的端口号是69。

l  数据报的长度是指包括报头和数据载荷部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据载荷部分。数据载荷的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报文的最大长度为65535字节。不过,一些实际应用往往会限制报文的大小。

l  UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方人为篡改或者因其他原因遭到了损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测报文传输过程中是否出错。虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的报文丢弃,或者给应用程序提供警告信息。

0x02 UDP DDOS攻击防御

UDP协议与TCP协议不同,是无连接状态的协议,并且UDP应用协议五花八门,差异极大,因此针对UDP Flood的防护其实非常困难。我们也不能像TCP攻击那样进行源认证,所以只能找特征了。

一般传统的UDP攻击都是由攻击工具打出来的,通常会具有一定的特征,尤其在数据段会有一些相同或者有规律变化的字段。而对于我们前一节介绍的UDP反射放大攻击,虽然并不是攻击工具伪造的UDP报文,而是真实网络设备发出的UDP报文,在数据段不具备相同的特征,但是目的端口却是固定的,所以也可以作为一种特征。

确定攻击报文的特征后,就可以根据特征进行过滤了。特征过滤也就是常说的指纹过滤,根据攻击报文的特征,自定义过滤属性。

指纹过滤有两种方法:

l  静态指纹过滤

对于已知的攻击特征,可以直接配置到过滤器的参数中。Anti-DDoS系统不仅具有TCP、UDP等传输层协议的报文解析能力,还具有应用层报文解析能力,可针对应用层头部信息字段做过滤。配置了静态指纹过滤后,Anti-DDoS会对收到的报文进行特征匹配,对匹配到攻击特征的报文,再进行丢弃、限流等下一步操作。

20161108111503177.png

那么,如何获知攻击特征呢?一种方法是抓包分析,人为识别出攻击特征,然后配置到过滤器中。UDP报文的数据段、源IP地址、源端口,目的IP地址、目的端口都可能隐藏着攻击报文的特征。比如,UDP反射放大攻击一般都是基于特定的UDP端口,比如现在比较常见的NTP、DNS、SSDP反射放大攻击,分别对应的UDP端口是123、53、1900。

下面一般有14种常见UDP反射放大攻击的过滤器模板。这些攻击都属于已知攻击特征,抗D设备可以配置已经预先定义好了攻击特征的参数,直接应用即可。

20161108111519770.png

如果抗D设备预置的过滤器模板不够用,个人也无法抓包分析配置攻击特征,那么有的抗D设备可以配置动态学习:

l  动态指纹学习

在攻击特征未知的情况下,Anti-DDoS系统具有指纹自动学习功能。对于一些攻击工具发起的UDP攻击,攻击报文通常都拥有相同的特征字段,比如都包含某一个字符串,或整个报文内容一致。指纹学习就是对一些有规律的UDP攻击报文负载特征进行识别,并且自动提取出指纹特征,然后就把这个提取的特征作为过滤条件,自动应用并进行过滤。

Anti-DDoS系统默认情况下,学习UDP载荷的最后8个字节,当然这个学习的偏移量和学习长度都是可以手动配置的。偏移量是从UDP报文头结束处开始计算,取值从0字节到1500字节可灵活配置;学习长度从1个字节开始配置,最多可以学习8个字节。

20161108111533644.png

传统的UDP flood攻击是一种消耗对方资源,也消耗自己资源的攻击方式,你攻击了一个服务器,其实也在消耗你的系统资源,说白了就是拼资源而已,看谁的带宽大,看谁能坚持到最后。这种攻击方式没有技术含量,现在已经越来越少的黑客使用这种方式了。

取而代之的是UDP反射放大攻击,近几年越来越多的被黑客所使用。像前面提到的几种做成过滤器模板的UDP反射放大攻击,都是比较常见的。后续对于UDP flood攻击的防御重点也应该聚焦在反射放大攻击上。

0x01 UDP协议基础知识

UDP协议全称“用户数据报协议”,User Datagram Protocol,是一种传输层协议。UDP协议是一种无连接的协议,不提供数据报的分组、组装,不对数据包的传输进行确认,当报文发送出去后,发送端不关心报文是否完整的到达对端。这个听起来像是缺点的特点,却是UDP协议最大的优点。这种报文处理方式决定了UDP协议资源消耗小,处理速度快,所以通常音频、视频和普通数据传送时使用UDP比较多。就比如音频或视频吧,大家在看视频或者听音乐的时候,都是追求数据传输更快一些,而在传输过程中,偶尔丢一两个数据包,对整体效果并不会产生太大的影响。

相比于之前介绍的DNS和HTTP协议,UDP协议需要关注的点要简单很多。我们来看看UDP报文结构。

20161108111340314.png

我们再来看一个现网真实UDP报文的抓包。

20161108111450166.png

每个UDP报文由UDP报文头部和UDP数据字段两部分组成。其中头部字段由8个字节,4个字段组成,分别是:源端口号、目的端口号、报文长度和校验和。

l  UDP协议使用端口号为不同的应用保留其各自的数据传输通道。比如DNS协议目的端口号是53;TFTP协议目的端口号是69。

l  数据报的长度是指包括报头和数据载荷部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据载荷部分。数据载荷的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报文的最大长度为65535字节。不过,一些实际应用往往会限制报文的大小。

l  UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方人为篡改或者因其他原因遭到了损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测报文传输过程中是否出错。虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的报文丢弃,或者给应用程序提供警告信息。

相关文章:

【漏洞分析】DDOS攻防分析

0x00 UDP攻击实例 2013年12月30日,网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd(这名字一看就是个玩家)和黑客组织DERP Trolling。 PhantomL0rd,人称“鬼王”,本名James Varga,某专业游戏小组的…...

【js进阶】设计模式之单例模式的几种声明方式

单例模式&#xff0c;简言之就是一个类无论实例化多少次&#xff0c;最终都是同一个对象 原生js的几个辅助方式的实现 手写forEch,map,filter Array.prototype.MyForEach function (callback) {for (let i 0; i < this.length; i) {callback(this[i], i, this);} };con…...

【VUE】计算属性+动态样式方法封装

【VUE】父子组件联动实现动态样式控制 【VUE】页面跳转实现动态样式控制 在utils下创建文件夹styleController 编写通用的方法 /*** 样式控制* 本文件主要提供一些动态控制样式的方法*//*** 控制表格表头中的 某些列 是否显示星号** param showStarActions boolean 当值为True时…...

Mac玩Steam游戏秘籍!

Mac玩Steam游戏秘籍&#xff01; 大家好&#xff01;最近有不少朋友在用MacBook玩Steam游戏时遇到不支持mac的问题。别担心&#xff0c;我来教你如何用第三方工具Crossover来畅玩这些不支持的游戏&#xff0c;简单又实用&#xff01; 第一步&#xff1a;下载Crossover 首先&…...

【后端面试总结】tls中.crt和.key的关系

tls中.crt和.key的关系 引言 在现代网络通信中&#xff0c;特别是基于SSL/TLS协议的加密通信中&#xff0c;.crt和.key文件扮演着至关重要的角色。这两个文件分别代表了数字证书和私钥&#xff0c;是确保通信双方身份认证和数据传输安全性的基石。本文旨在深入探讨TLS中.crt和…...

【Axure】配色库

配色库是一个专为设计师和创意工作者打造的在线资源平台&#xff0c;旨在提供丰富的色彩解决方案&#xff0c;帮助用户轻松找到或创造美观和谐的色彩搭配。其中&#xff0c;一个典型的配色库包含了以下几个核心元素&#xff1a; 渐变色&#xff1a;提供多样化的渐变色方案&…...

PL/SQL语言的语法糖

PL/SQL语言的语法糖 引言 PL/SQL&#xff08;Procedural Language/Structured Query Language&#xff09;是Oracle公司为其数据库管理系统&#xff08;DBMS&#xff09;设计的一种过程化语言。作为一种扩展SQL的语言&#xff0c;PL/SQL不仅支持数据的查询和操作&#xff0c;…...

Pytorch|YOLO

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、 前期准备 1. 设置GPU 如果设备上支持GPU就使用GPU,否则使用CPU import torch import torch.nn as nn import torchvision.transforms as transforms im…...

doc、pdf转markdown

国外的一个网站可以&#xff1a; Convert A File Word, PDF, JPG Online 这个网站免费的&#xff0c;算是非常厚道了&#xff0c;但是大文件上传多了之后会扛不住 国内的一个网站也不错&#xff1a; TextIn-AI智能文档处理-图像处理技术-大模型加速器-在线免费体验 https://…...

ZooKeeper 常见问题与核心机制解析

Zookeeper集群本身不直接支持动态添加机器。在Zookeeper中&#xff0c;集群的配置是在启动时静态定义的&#xff0c;并且集群中的每个成员都需要知道其他所有成员。当你想要增加一个新的Zookeeper服务器到现有的集群中时&#xff0c;你需要更新所有现有服务器的配置文件&#x…...

期权懂|场内期权合约行权价格是如何设定制度的?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 场内期权合约行权价格是如何设定制度的&#xff1f; 场内期权合约的行权价格是期权合约中的一个关键要素&#xff0c;它决定了期权买方在期权到期日或之前买入&#xff08;对于…...

处理 SQL Server 中的表锁问题

在 SQL Server 中&#xff0c;表锁是一个常见的问题&#xff0c;尤其是在并发访问和数据更新频繁的环境中。表锁会导致查询性能下降&#xff0c;甚至导致死锁和系统停滞。本文将详细介绍如何识别、分析和解决 SQL Server 中的表锁问题。 什么是表锁&#xff1f; 表锁是 SQL S…...

【Mysql进阶知识】Mysql 程序的介绍、选项在命令行配置文件的使用、选项在配置文件中的语法

目录 一、程序介绍 二、mysqld--mysql服务器介绍 三、mysql - MySQL 命令行客户端 3.1 客户端介绍 3.2 mysql 客户端选项 指定选项的方式 mysql 客户端命令常用选项 在命令行中使用选项 选项(配置)文件 使用方法 选项文件位置及加载顺序 选项文件语法 使用举例&am…...

代码随想录算法训练营总结

本人是一名普普通通的计算机专业的毕业生&#xff0c;在大学学数据结构和算法就感觉非常难&#xff0c;到毕业也没刷过几道题&#xff0c;所幸后来入职的公司也没有考察算法相关的内容。到现在已经工作两年多了&#xff0c;看到过许多聊面试聊算法的文章&#xff0c;也接触到一…...

二进制/源码编译安装mysql 8.0

二进制方式&#xff1a; 1.下载或上传安装包至设备&#xff1a; 2.创建组与用户&#xff1a; [rootopenEuler-1 ~]# groupadd mysql [rootopenEuler-1 ~]# useradd -r -g mysql -s /bin/false mysql 3.解压安装包&#xff1a; tar xf mysql-8.0.36-linux-glibc2.12-x86_64.ta…...

AI 编程工具—Cursor进阶使用 阅读开源项目

AI 编程工具—Cursor进阶使用 阅读开源项目 首先我们打开一个最近很火的项目browser-use ,直接从github 上克隆即可 索引整个代码库 这里我们使用@Codebase 这个选项会索引这个代码库,然后我们再选上这个项目的README.md 文件开始提问 @Codebase @README.md 这个项目是用…...

掌握C语言内存布局:数据存储的智慧之旅

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 引言正文一、数据类型介绍1.内置类型2.自定义…...

一键化配置java环境

一键化配置java环境 下载javaPathConfig 打开&#xff0c;将java的jdk路径写进去 例如我的路径就是 C:\Program Files\Java\jdk-1.8点击确认设置即可...

【I/O编程】UNIX文件基础

IO编程的本质是通过 API 操作 文件。 什么是 IO I - Input 输入O - Output 输出 这里的输入和输出都是站在应用&#xff08;运行中的程序&#xff09;的角度。外部特指文件。 这里的文件是泛指&#xff0c;并不是只表示存在存盘中的常规文件。还有设备、套接字、管道、链接…...

leetcode 面试经典 150 题:汇总区间

链接汇总区间题序号228题型数组解法一次遍历法难度简单熟练度✅✅✅ 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属…...

联想Android面试题及参考答案

请介绍一下 Android 的架构,并谈谈对 Linux 的了解。 Android 架构主要分为四层,从下往上依次是 Linux 内核层、系统运行库层、应用框架层和应用层。 Linux 内核层是 Android 系统的基础。它提供了底层的硬件驱动程序,包括显示驱动、摄像头驱动、音频驱动等多种硬件设备的驱…...

redux 结合 @reduxjs/toolkit 的使用

1&#xff0c;使用步骤 使用React Toolkit 创建 counterStore&#xff08;store目录下&#xff09; --> 为React注入store&#xff08;src下面的index&#xff09; --> React组件使用store中的数据&#xff08;组件&#xff09; 2&#xff0c;例如下面有一个简单加减的…...

【鱼皮大佬API开放平台项目】Spring Cloud Gateway HTTPS 配置问题解决方案总结

问题背景 项目架构为前后端分离的微服务架构&#xff1a; 前端部署在 8000 端口API 网关部署在 9000 端口后端服务包括&#xff1a; api-backend (9001端口)api-interface (9002端口) 初始状态&#xff1a; 前端已配置 HTTPS&#xff08;端口 8000&#xff09;后端服务未配…...

PHP反序列化

一、PHP面向对象的基础知识 基本概念 1、面向过程VS面向对象 以做饭为例&#xff0c;面向过程是自己从原材料到成品全部自己做&#xff0c;面向对象相当于去饭店&#xff0c;点菜&#xff0c;等待结果&#xff08;上菜&#xff09;。 2、类的定义 类是定义了一件事物的抽象…...

6、原来可以这样理解C语言_函数(7/8)嵌套调⽤和链式访问

目录 七、嵌套调⽤和链式访问 七、&#xff08;1&#xff09;、嵌套调⽤ 七、&#xff08;2&#xff09;、链式访问 七、嵌套调⽤和链式访问 七、&#xff08;1&#xff09;、嵌套调⽤ 嵌套调⽤就是函数之间的互相调⽤&#xff0c;每个函数就⾏⼀个乐⾼零件&#xff0c;正是因…...

安装 Jenkins 后无法访问用户名或密码且忘记这些凭证怎么办?

Jenkins 是一款功能强大的自动化服务器&#xff0c;在持续集成与交付&#xff08;CI/CD&#xff09;领域应用广泛。不过&#xff0c;用户在使用过程中&#xff0c;尤其是首次接触该系统或系统重启后&#xff0c;常常会遇到登录方面的问题。要是 Jenkins 突然要求输入用户名和密…...

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤 目录 前言 一、同步FIFO的使用 1、配置 2、仿真 二、异步FIFO的使用 1、配置 2、仿真 前言 在系统设计中&#xff0c;利用FIFO&#xff08;first in first out&#xff09;进行数据处理是再普遍不过的应用了&#xff0c…...

49_Lua调试

Lua提供了debug库用于创建自定义调试器,尽管Lua本身没有内置的调试器1。这个库允许开发者在程序运行时检查和控制执行流程,这对于开发过程中的错误查找和修复非常有用。 1.Debug库概述 debug库提供的函数可以分为两类:自省函数(introspection functions)和钩子函数(hoo…...

SR-BE 笔记和实验

一、笔记&#xff1a; SR不需要mpls&#xff0c;但要配置 mpls lsr-id 不需要MPLS LDP分标签&#xff0c;但仍然需要依赖IGP来分标签 fish—TE问题 SPF&#xff1a;Shortest Path First 最短路径算法 CSPF&#xff1a;Constrained SPF 受约束的SPF算法 BGP-LS&#xff1a; SR…...

实力认证 | 海云安入选《信创安全产品及服务购买决策参考》

近日&#xff0c;国内知名安全调研机构GoUpSec发布了2024年中国网络安全行业《信创安全产品及服务购买决策参考》&#xff0c;报告从产品特点、产品优势、成功案例、安全策略等维度对各厂商信创安全产品及服务进行调研了解。 海云安凭借AI大模型技术在信创安全领域中的创新应用…...

pytorch张量分块投影示例代码

张量的投影操作 背景 张量投影 是深度学习中常见的操作,将输入张量通过线性变换映射到另一个空间。例如: Y=W⋅X+b 其中: X: 输入张量(形状可能为 (B,M,K),即批量维度、序列维度、特征维度)。W: 权重矩阵((K,N),将 K 维投影到 N 维)。b: 偏置向量(可选,(N,))。Y:…...

Elasticsearch二次开发:实现实时定时同步同义词、近义词与停用词

Elasticsearch二次开发&#xff1a;实现实时定时同步同义词、近义词与停用词 引言 Elasticsearch&#xff08;ES&#xff09;作为开源搜索引擎的典范&#xff0c;以其强大的全文搜索、结构化搜索以及分析能力&#xff0c;在各个领域得到了广泛应用。在复杂的搜索场景中&#…...

Linux 常用文件查看命令

目录 cat 命令&#xff1a;连接与查看 more/less 命令&#xff1a;分页查看 tail 命令&#xff1a;实时追踪 cat 命令&#xff1a;连接与查看 基本功能&#xff1a;用于连接文件并打印到标准输出设备上&#xff0c;常用于查看文件内容。当有多个文件作为参数时&#xff0c;会…...

智能家居篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学

智能家居篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学 文章目录 [智能家居篇]( )一、Win10 VM虚拟机安装 Home Assistant 手把手教学 前言一.下载Vm版本的HomeAsistant安装包 二.打开Vmware选择新建虚拟机1.选择自定义高级2.选择16.x及以上3.选择稍后安装4.根据官网的…...

端口镜像和端口安全

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网络安全从菜鸟到飞鸟的逆袭 目录 一&#xff0c;端口镜像二&#xf…...

打造更安全的Linux系统:玩转PAM配置文件

在Linux系统中&#xff0c;用户认证是确保系统安全的关键步骤。PAM&#xff08;可插拔认证模块&#xff09;为我们提供了一个非常灵活的框架&#xff0c;帮助我们管理各种服务的认证过程。其中&#xff0c;/etc/pam.d目录是PAM配置的核心部分&#xff0c;这里存放了每个服务所需…...

猫咪智商相当于人的几岁?

猫咪&#xff0c;这个神秘又高冷的物种&#xff0c;总能让我们又爱又恨。它们时而撒娇卖萌&#xff0c;时而独立自主&#xff0c;让人琢磨不透。那么&#xff0c;问题来了&#xff0c;猫咪的智商到底相当于人的几岁呢&#xff1f;今天&#xff0c;就来给大家好好揭秘一下喵星人…...

软件设计大致步骤

由于近期在做软件架构设计&#xff0c;这里总结下大致的设计流程 软件设计流程 1 首先要先写系统架构图&#xff0c;将该功能在整个系统的位置以及和大致的内部模块划分 2 然后写内部的结构图&#xff0c;讲内部的各个子系统&#xff0c;模块&#xff0c;组件之间的关系和调用…...

Elasticsearch入门学习

Elasticsearch是什么 Elasticsearch 是一个基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展的数据存储和矢量数据库。 它针对生产规模工作负载的速度和相关性进行了优化。 使用 Elasticsearch 近乎实时地搜索、索引、存储和分析各种形状和大小的数据。 特点 分布式&a…...

Mac安装配置使用nginx的一系列问题

brew安装nginx https://juejin.cn/post/6986190222241464350 使用brew安装nginx&#xff0c;如下命令所示&#xff1a; brew install nginx 如下图所示&#xff1a; 2.查看nginx的配置信息&#xff0c;如下命令&#xff1a; brew info nginxFrom:xxx 这样的&#xff0c;是n…...

Elasticsearch Python 客户端是否与自由线程 Python 兼容?

作者&#xff1a;来自 Elastic Quentin_Pradet 在这篇文章中&#xff0c;我们将进行一些实验&#xff0c;看看 Python Elasticsearch 客户端是否与新的 Python 3.13 自由线程&#xff08;free-threading&#xff09;版本兼容&#xff0c;其中 GIL 已被删除。 介绍 但首先&…...

ROS2 的所有控制台命令

以下是 ROS2 的控制台命令&#xff1a; 编译 colcon是ros的构建工具 sudo apt install python3-colcon-common-extensions 如只编译 turn_robot colcon build --packages-select turn_robot 编译全部功能包 colcon build source source /home/sukai/turn_robot/install…...

深入理解 Entity、VO、QO、DTO 的区别及其在 MVC 架构中的应用

文章背景 在现代软件开发中&#xff0c;我们经常会接触到各种数据结构的概念&#xff0c;比如 Entity、VO&#xff08;Value Object&#xff09;、QO&#xff08;Query Object&#xff09;、DTO&#xff08;Data Transfer Object&#xff09;等。这些概念尽管看似相似&#xff…...

角色认知培训

课程记录 需求传达的时候先强调重点&#xff0c;理清需求的过程中&#xff0c;大家一起分析 一开始单线程&#xff0c;总结复盘&#xff0c;提升效率&#xff0c;变成多线程 心态 2、复盘能力&#xff0c;每次优化策略 优化 团结、执行、 3、 头马的理解&#xff1f; 小…...

记录一次微信小程序使用云能力开发的过程

对于开发微信小程序云开发不知从何起的同学们&#xff0c;可以当作一次参考。虽说官方有文档&#xff0c;有模板示例&#xff0c;但是这些都是片段或者完整的结果展示。对于初学或者开发经验较少的同学们&#xff0c;可能不知先从那里入手进行第一步的开发。下面解析下构建微信…...

vim将一行行尾倒数第三个字符替换成1

%s/\v(.)(.)(.)(.)$/1\2\3\4\v:very magic模式&#xff0c;可以省略转义符 &#xff08;.&#xff09;:圆括号的分组功能&#xff0c;将括号匹配内容放到第一个寄存器里面&#xff0c;第二个括号匹配内容放到第二个寄存器里面。 $:匹配行尾字符 \2:第二个括号匹配内容 \3:第三个…...

Kafka权威指南(第2版)读书笔记

目录 Kafka生产者——向Kafka写入数据生产者概览创建Kafka生产者bootstrap.serverskey.serializervalue.serializer 发送消息到Kafka同步发送消息异步发送消息 生产者配置client.idacks消息传递时间max.block.msdelivery.timeout.msrequest.timeout.msretries 和retry.backoff.…...

Yolov8 目标检测剪枝学习记录

最近在进行YOLOv8系列的轻量化&#xff0c;目前在网络结构方面的优化已经接近极限了&#xff0c;所以想要学习一下模型剪枝是否能够进一步优化模型的性能 这里主要参考了torch-pruning的基本使用&#xff0c;v8模型剪枝&#xff0c;Jetson nano部署剪枝YOLOv8 下面只是记录一个…...

5G+工业互联网迈入规模化发展新阶段

百度安全验证 https://blog.csdn.net/qq_25467441/article/details/145036191?sharetypeblogdetail&sharerId145036191&sharereferPC&sharesourceqq_25467441&spm1011.2480.3001.8118 好看视频-轻松有收获 产业供给加速提升。国内主流模组厂商引领全球5G模组…...

WOA-Transformer鲸鱼算法优化编码器时间序列预测(Matlab实现)

WOA-Transformer鲸鱼算法优化编码器时间序列预测&#xff08;Matlab实现&#xff09; 目录 WOA-Transformer鲸鱼算法优化编码器时间序列预测&#xff08;Matlab实现&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现WOA-Transformer鲸鱼算法优化编…...