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

lvs-dr模式实验详解

华子目录

  • `lvs-dr`(企业当中最常用)
    • dr模式数据逻辑
    • dr模式数据传输过程
    • dr模式的特点
    • 实验拓扑
    • 实验主机准备
    • 解决vip响应问题
      • 限制响应级别:`arp_ignore`
      • 限制通告级别:`arp_announce`
    • 实验步骤
      • 1.`client`的`ip`设定
      • 2.`router`上的`ip`设定
      • 3.`router`开启路由转发功能
      • 4.`lvs`主机中的`ip`设定
      • 5.`webserver1`主机中的`ip`设定
      • 6.`webserver2`主机中的`ip`设定
      • 7.`RS`主机禁用`arp`响应功能(让其只有`lvs`进行`响应`)
      • 8.`RS`上配置`web`服务
      • 9.`RS`上启动`web`服务
      • 10.安装`lvs`软件包`ipvsadm`并启动
      • 11.设置`lvs`策略并保存
      • 12.测试

lvs-dr(企业当中最常用)

  • DRDirect Routing直接路由LVS默认模式应用最广泛,通过为请求报文重新封装一个MAC首部进行转发源MACDIP所在的接口的MAC目标MAC是某挑选出RSRIP所在接口的MAC地址
  • 源IP/PORT,以及目标IP/PORT保持不变

dr模式数据逻辑

在这里插入图片描述

  • DR模式中,RS接收到访问请求不需要回传给VS调度器,而是直接回传数据发送给client客户端,所以RSvs上都要有vip

dr模式数据传输过程

在这里插入图片描述

  • 客户端发送数据帧vs调度主机数据帧内容客户端IP+客户端的MAC+VIP+VIP的MAC
  • VS调度主机接收到数据帧后把数据帧中的VIP的MAC改为RS1的MAC,此时数据帧中的数据客户端IP+客户端的MAC+VIP+RS1的MAC
  • RS1收到数据包后做出响应回传数据包响应数据包中的内容VIP+RS1的MAC+客户端IP+客户端IP的MAC

dr模式的特点

  • Director(vs调度器)各RS都配置有VIP
  • 确保前端路由器目标IPVIP请求报文发往Director
  • RSRIP可以使用私网地址,也可以是公网地址RIPDIP同一IP网络(中间不能加路由器)
  • RIP网关不能指向DIP,以确保响应报文不会经由Director。需要指向边界路由内网地址
  • RSDirector要在同一个物理网络
  • 请求报文经由Director,但响应报文经由Director,而由RS直接发往Client
  • 不支持端口映射端口不能修改
  • 由于dr模式源目ip不变,只有二层mac发生变化,所以vsrs端口必须保持一致
  • RS可使用大多数OS系统
  • RS上修改内核参数以限制arp通告应答级别(使其只能接收,不能响应
  • vs是知道rs的主机网卡的mac,所以vsrs需要处于同一vlan中,中间不能加路由器

实验拓扑

在这里插入图片描述

  • 内网仅主机ip负责通信vip负责对外
  • clientrouter之间是互联网。由于实验环境有限,为了让client访问到rs上,我们让client网关指向routernat来模拟外网互通
  • lvsrs网关都指向router的仅主机(边界路由器的内网地址)
  • 为了简单配置,对lo网卡进行设定(也可以对eth0网卡设定),使其成为vip

实验主机准备

  • 准备5台机子,一台client,一台router,一台lvs,两台webserver充当RS
  • client上一个nat网卡
  • router上一个nat网卡,一个仅主机网卡
  • lvs上一个仅主机网卡用于内网通信lo网卡用作vip
  • RS上一个仅主机网卡用于内网通信lo网卡用作vip
  • client网关指向routernat网卡,lvs,RS网关指向router仅主机网卡

主机准备
在这里插入图片描述

client上一个nat网卡
在这里插入图片描述

router上一个nat网卡,一个仅主机网卡
在这里插入图片描述

  • 由于routernat模式仅主机模式网卡处于不同vlan,两个网卡要想通信,就必须打开Linux内核路由转发功能

lvs上一个仅主机网卡用于内网通信lo网卡用作vip
在这里插入图片描述

RS上一个仅主机网卡用于内网通信lo网卡用作vip
在这里插入图片描述
在这里插入图片描述

解决vip响应问题

dr模型各主机上均需要配置vip解决地址冲突的方式有三种

  • 前端网关静态绑定
  • 各RS使用arptables
  • 各RS修改内核参数,来限制arp响应通告级别

限制响应级别:arp_ignore

  • 0默认值,表示可使用本地任意接口上配置的任意地址进行响应
  • 1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

限制通告级别:arp_announce

  • 0默认值,把本机所有接口所有信息向每个接口的网络进行通告
  • 1:尽量避免将接口信息非直接连接网络进行通告
  • 2:必须避免接口信息非本网络进行通告

实验步骤

1.clientip设定

  • nat网卡:172.25.254.10/24
  • 网关:172.25.254.100/24
[root@client ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
uuid=3fe4f788-e5f3-4046-8a3e-6cdfb8098aab
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=172.25.254.10/24,172.25.254.100
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]
[root@client ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.25.254.100  0.0.0.0         UG    100    0        0 eth0
172.25.254.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

2.router上的ip设定

  • nat网卡:172.25.254.100/24
  • 仅主机网卡:192.168.0.10/24
[root@router ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=172.25.254.100/24
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]
[root@router ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1[ethernet][ipv4]
address=192.168.0.10/24
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]

3.router开启路由转发功能

[root@router ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1  #在文件末尾添加
[root@router ~]# sysctl -p   #加载
net.ipv4.ip_forward = 1

4.lvs主机中的ip设定

  • 仅主机网卡:192.168.0.200/24
  • lo网卡设置为vip192.168.0.100/32
  • 网关指向:192.168.0.10/24
[root@lvs ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
uuid=3fe4f788-e5f3-4046-8a3e-6cdfb8098aab
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=192.168.0.200/24,192.168.0.10
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]
[root@lvs ~]# ip addr add 192.168.0.100/32 dev lo
[root@lvs ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet 192.168.0.100/32 scope global lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:35:a8:7c brd ff:ff:ff:ff:ff:ffaltname enp3s0altname ens160inet 192.168.0.200/24 brd 192.168.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::4e21:e4b4:36e:6d14/64 scope link noprefixroutevalid_lft forever preferred_lft forever
[root@lvs ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.10    0.0.0.0         UG    100    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

5.webserver1主机中的ip设定

  • 仅主机网卡:192.168.0.11/24
  • lo网卡设置为vip192.168.0.100/32
  • 网关指向:192.168.0.10/24
[root@webserver1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
uuid=3fe4f788-e5f3-4046-8a3e-6cdfb8098aab
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=192.168.0.11/24,192.168.0.10
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]
[root@webserver1 ~]# ip addr add 192.168.0.100/32 dev lo
[root@webserver1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet 192.168.0.100/32 scope global lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:5f:4a:ff brd ff:ff:ff:ff:ff:ffaltname enp3s0altname ens160inet 192.168.0.11/24 brd 192.168.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::7baa:9520:639b:5e48/64 scope link noprefixroutevalid_lft forever preferred_lft forever
[root@webserver1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.10    0.0.0.0         UG    100    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

6.webserver2主机中的ip设定

  • 仅主机网卡:192.168.0.22/24
  • lo网卡设置为vip192.168.0.100/32
  • 网关指向:192.168.0.10/24
[root@webserver2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
uuid=3fe4f788-e5f3-4046-8a3e-6cdfb8098aab
type=ethernet
interface-name=eth0[ethernet][ipv4]
address=192.168.0.22/24,192.168.0.10
method=manual[ipv6]
addr-gen-mode=default
method=auto[proxy]
[root@webserver2 ~]# ip addr add 192.168.0.100/32 dev lo
[root@webserver2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet 192.168.0.100/32 scope global lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:ef:47:71 brd ff:ff:ff:ff:ff:ffaltname enp3s0altname ens160inet 192.168.0.22/24 brd 192.168.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::5db8:7a0d:b282:fdbf/64 scope link noprefixroutevalid_lft forever preferred_lft forever
[root@webserver2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.10    0.0.0.0         UG    100    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

7.RS主机禁用arp响应功能(让其只有lvs进行响应

  • webserver1
  • 只有先修改all,才能再修改某一网卡
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  • webserver2
  • 只有先修改all,才能再修改某一网卡
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  • 以上配置为临时修改重启无效。若想永久生效,则需要在/etc/sysctl.conf文件中添加

8.RS上配置web服务

  • webserver1
[root@webserver1 ~]# yum install httpd -y
[root@webserver1 ~]# echo webserver1 > /var/www/html/index.html
  • webserver2
[root@webserver2 ~]# yum install httpd -y
[root@webserver2 ~]# echo webserver2 > /var/www/html/index.html

9.RS上启动web服务

  • webserver1
[root@webserver1 ~]# systemctl enable --now httpd
  • webserver2
[root@webserver2 ~]# systemctl enable --now httpd

10.安装lvs软件包ipvsadm并启动

[root@lvs ~]# yum install ipvsadm -y
[root@lvs ~]# touch /etc/sysconfig/ipvsadm  #在启动之前必须要有这个文件,否则启动失败[root@lvs ~]# systemctl restart ipvsadm
[root@lvs ~]# systemctl enable ipvsadm

11.设置lvs策略并保存

  • -g表示dr模式
#当访问vip的80端口时,轮询调度到RS的80端口上
[root@lvs ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.11:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.22:80 -g
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.100:80 rr-> 192.168.0.11:80              Route   1      0          0-> 192.168.0.22:80              Route   1      0          0
[root@lvs ~]# ipvsadm -S > /etc/sysconfig/ipvsadm
[root@lvs ~]# cat /etc/sysconfig/ipvsadm
-A -t lvs:http -s rr
-a -t lvs:http -r 192.168.0.11:http -g -w 1
-a -t lvs:http -r 192.168.0.22:http -g -w 1

12.测试

  • client端访问vip
[root@client ~]# curl 192.168.0.100
webserver2
[root@client ~]# curl 192.168.0.100
webserver1

相关文章:

lvs-dr模式实验详解

华子目录 lvs-dr&#xff08;企业当中最常用&#xff09;dr模式数据逻辑dr模式数据传输过程dr模式的特点实验拓扑实验主机准备解决vip响应问题限制响应级别:arp_ignore限制通告级别:arp_announce 实验步骤1.client的ip设定2.router上的ip设定3.router开启路由转发功能4.lvs主机…...

【RDMA】mlxconfig修改和查询网卡(固件)配置--驱动工具

目录 简介 工具要求 语法 例子和参数 例子 更多参数 其他工具和查询 简介 mlxconfig 工具允许用户在不重新烧录固件的情况下更改某些设备配置。 配置在重启后仍然保留。 默认情况下&#xff0c;mlxconfig 显示将在下次启动时加载的配置。对于第五代设备&#xff0c;还…...

跨站请求伪造(CSRF)漏洞详解

免责申明 本文仅是用于学习检测自己搭建的DVWA靶场环境有关CSRF的原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法…...

Java+Spring Cloud +UniApp 智慧工地源码,用户PC端、移动端数据同步,支持多端展示

数字化给各行各业所带来的改变&#xff0c;在早些年间突出自动这一流程。但随着科技的发展&#xff0c;让人们也愈发了解可视化操作所带来的优势。智慧工地的诞生&#xff0c;相当于为建筑施工带来了一套较为完整的数字化流程&#xff0c;能够完善施工环节中的各部分内容。接下…...

【推广】图书|2024新书《大模型RAG实战:RAG原理、应用与系统构建》汪鹏、谷清水、卞龙鹏等,机械工业出版社

探索RAG系统新高度&#xff1a;《大模型RAG实战&#xff1a;RAG原理、应用与系统构建》 随着大模型技术的爆发&#xff0c;尤其是ChatGPT之后&#xff0c;以ChatPDF为首的知识库问答产品迅速走红&#xff0c;引发了RAG&#xff08;检索增强生成&#xff09;系统的广泛关注与讨论…...

在Unity UI中实现UILineRenderer组件绘制线条

背景介绍 在Unity的UI系统中&#xff0c;绘制线条并不像在3D世界中那样直观(使用Unity自带的LineRender组件在UI中连线并不方便,它在三维中更合适)。没有内置的工具来处理这种需求。如果你希望在UI元素之间绘制连接线&#xff08;例如在UI上连接不同的图标或控件&#xff09;&a…...

C语言中union的用法

在C语言中&#xff0c;union&#xff08;联合体&#xff09;是一种特殊的复合数据类型&#xff0c;它允许多个不同的数据成员共享同一块内存空间。与struct&#xff08;结构体&#xff09;不同的是&#xff0c;union中的所有成员共用同一个内存地址&#xff0c;因此同时只能存储…...

C++速通LeetCode中等第18题-删除链表的倒数第N个结点(最简单含注释)

绝妙&#xff01;快慢指针法,快指针先走n步&#xff08;复杂度O(n),O(1))&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(n…...

鸿蒙 WebView 设置 Header

import { webview } from kit.ArkWebimport { WebHeader } from kit.ArkUI 一共两种方式&#xff1a; 1.把 loadurl的方法写在web组件的生命周期里面 Web({ src:"", controller: this.controller }) .onControllerAttached(()>{ this.controller.loadUrl("…...

电力施工作业安全行为检测图像数据集

电力施工作业安全行为检测图像数据集&#xff0c;图片总共 2300左右&#xff0c;标注为voc(xml)格式&#xff0c;包含高空抛物&#xff0c;未佩戴安全带&#xff0c;高处作业无人监护等。 电力施工作业安全行为检测图像数据集 数据集描述 这是一个专门用于电力施工作业安全行…...

大数据实验2.Hadoop 集群搭建(单机/伪分布式/分布式)

实验二&#xff1a; Hadoop安装和使用 一、实验目的 实现hadoop的环境搭建和安装Hadoop的简单使用&#xff1b; 二、实验平台 操作系统&#xff1a;Linux&#xff08;建议Ubuntu16.04或者18.04&#xff09;&#xff1b;Hadoop版本&#xff1a;3.1.3&#xff1b;JDK版本&…...

【CSS in Depth 2 精译_036】5.6 Grid 网格布局中与对齐相关的属性 + 5.7本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…...

Qt圆角窗口

Qt圆角窗口 问题&#xff1a;自己重写了一个窗口&#xff0c;发现用qss设置圆角了&#xff0c;但是都不生效&#xff0c;不过子窗口圆角都生效了。 无边框移动窗口 bool eventFilter(QObject *watched, QEvent *evt) {static QPoint mousePoint;static bool mousePressed f…...

研究生第一次刷力扣day1

1.给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值target 的那两个整数&#xff0c;并返回它们的数组下标 直接采用暴力求解&#xff0c;其他解答案看不懂 大致思想&#xff1a;先用len函数求出数组的长度n&#xff0c;然后一个个遍…...

flink自定义process,使用状态求历史总和(scala)

es idea maven 依赖 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-elasticsearch7_2.11</artifactId> <version>1.11.1</version> </dependency> import org.apache.flink.api.common.eve…...

股指期货理论价格计算公式是什么?

股指期货&#xff0c;作为金融衍生品的一种&#xff0c;其价格与现货市场的股指价格紧密相关&#xff0c;但又受到多种因素的影响。了解股指期货理论价格的计算公式&#xff0c;对于投资者进行套利交易、风险管理等具有重要意义。本文将详细解读股指期货理论价格的计算公式&…...

解决R包依赖版本不兼容问题

ERROR: dependency ‘Matrix’ is not available for package ‘irlba’ removing ‘/root/anaconda3/envs/myview/lib/R/library/irlba’ ERROR: dependency ‘Matrix’ is not available for package ‘N2R’ removing ‘/root/anaconda3/envs/myview/lib/R/library/N2R’ ER…...

HarmonyOS开发者基础认证考试试题

文章目录 一、判断题二、单选题三、多选题 因考试只有91分&#xff0c;所以下方答案有部分错误&#xff0c;如果有发现错误&#xff0c;欢迎提出 一、判断题 1. HarmonyOS提供了基础的应用加固安全能力&#xff0c;包括混淆、加密和代码签名能力 正确 2. 用户首选项是关系型数…...

如何使用 React、TypeScript、TailwindCSS 和 Vite 创建 Chrome 插件

创建一个 Chrome 插件是一个有趣的项目&#xff0c;特别是当结合使用强大的工具如 React、TypeScript、TailwindCSS 和 Vite 时 在这篇文章中&#xff0c;我们将逐步引导完成整个过程&#xff0c;了解如何在 2024 年构建自己的 Chrome 插件。无论是经验丰富的开发者还是刚刚起…...

机器学习——Stacking

Stacking&#xff1a; 方法&#xff1a;训练多个模型(可以是强模型)&#xff0c;然后将这些模型的预测结果作为新的特征&#xff0c;输入到下一层新的模型&#xff08;可以是多个&#xff09;中进行训练&#xff0c;从而得到最终的预测结果。 代表&#xff1a;Stacking本身并没…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...