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

【虚拟机网络拓扑记录】

虚拟机网络拓扑记录

  • 虚拟机安装
    • windows到ubuntu的网络拓扑
    • ubuntu到ubuntu里面的虚拟机网络拓扑
    • windows到ubuntu里面的虚拟机网络拓扑

虚拟机安装

本实验宿主机为windos, 安装vmware,虚拟机操作系统使用ubuntu,然后再在ubuntu上面创建新的虚拟机。

先解释一下,文中用到的两个概念:

实体机:实物电脑,安装VMware软件的电脑。

虚拟机:在实体机上利用VMware软件,安装的虚拟系统。

1、组网设备简介

网卡:电脑内置的一种硬件,用于上网。

有两种:以太网网卡(有线网卡)、Wi-Fi网卡(无线网卡)。分别对应两种上网方式,以太网网卡用于有线上网,Wi-Fi网卡用于无线上网。

一般台式机只有以太网卡,笔记本会同时有两个网卡,下面是我笔记本电脑上网卡截图。
在这里插入图片描述

交换机:组网的一种设备,用于扩展有线网络端口和划分网络。在本文中可以简单的理解成,用于数据交换的一个媒介。

网关:又叫网间连接器、协议转换器,主要用于连接两个网络,充当转换器。

路由器:用于接入网络的设备,一般有以下几个功能,充当网关,控制下行网络、扩展有线网络端口、WiFi功能,使无线网卡能接入外网。

以上是组网中常用的四种设备,这里只是简单做一下功能介绍,更详细的解释和使用方法,建议大家网上搜索一些相关资料进行学习。

2、虚拟网络

先想一下,如果要完成上面家庭网络的组网,通常我们会准备交换机、路由器、使用网络的设备,然后用网线把(网卡)网口和交换机网口连接起来。

完成硬件的连接后,再进行IP分配(或者自动获取),分配好了如果能ping通,那么网络也就联通了。

VMware虚拟机的网络和在实物环境中搭建一个网络的原理是一模一样的,毫无差别。

只不过虚拟机是无法独立存在,它必须运行在实体机上,但是逻辑上可以看作是和实体机一样的设备。

如果能够将虚拟机和实体机通过交换机连起来,理论上就可以进行通信了。

为了实现上面的理论,VMware软件在我们实体机上,虚拟出了虚拟网卡和虚拟交换机,当然还有虚拟的网线。

在虚拟网络中,网卡、交换机、网线…,这些实物虽然看不到,但都是以虚拟的形式存在的。

windows到ubuntu的网络拓扑

先想一下,如果要完成上面家庭网络的组网,通常我们会准备交换机、路由器、使用网络的设备,然后用网线把(网卡)网口和交换机网口连接起来。

完成硬件的连接后,再进行IP分配(或者自动获取),分配好了如果能ping通,那么网络也就联通了。

VMware虚拟机的网络和在实物环境中搭建一个网络的原理是一模一样的,毫无差别。

只不过虚拟机是无法独立存在,它必须运行在实体机上,但是逻辑上可以看作是和实体机一样的设备。

如果能够将虚拟机和实体机通过交换机连起来,理论上就可以进行通信了。

为了实现上面的理论,VMware软件在我们实体机上,虚拟出了虚拟网卡和虚拟交换机,当然还有虚拟的网线。

在虚拟网络中,网卡、交换机、网线…,这些实物虽然看不到,但都是以虚拟的形式存在的。

1、在实际的windowns中
安装完成VMware虚拟机后,在电脑上一般会虚拟出两个网卡。如下图所示:

在这里插入图片描述
我电脑上有两个实物网卡。在加上这两个虚拟网卡,在我的实体机上共有四个网卡:

有线网卡1:Realtek PCIe GbE Family Controller #2

有线网卡2:Realtek PCIe GbE Family Controller

虚拟网卡1:VMware Virtual Ethernet Adapter for VMnet1

虚拟网卡8:VMware Virtual Ethernet Adapter for VMnet8

ps:如果又安装无线网卡的话还会有一个无线网卡:
在这里插入图片描述
无线网卡1

两张虚拟网卡的作用是,建立虚拟机与实体机之间的连接,打通虚拟机和实体机之间的网络链路。

2、虚拟交换机

在VMware软件上,点击编辑,然选择虚拟网络编辑器,可以打开虚拟交换机编辑界面,如下图所示:
在这里插入图片描述

在这里插入图片描述

在上图红色框中,可以看到有三个虚拟的交换机:VMnet0、VMnet1、VMnet8。

这三个虚拟交换机,是VMware默认安装的,也可以自行添加和删除网络。建议大家尽量不要删掉,如果不小心误操作了,可以点击左下角还原默认设置按钮,进行还原。

想要实现组网,就需要把网卡和交换机连接起来。还记得前面说的网卡吗?在我们实体机上有四张网卡。

在默认设置上,这四个网卡和三个交换机是下面方式进行连接的。

VMnet0–>实体网卡(无线网卡/有线网卡)

VMnet1–>虚拟网卡1

VMnet8–>虚拟网卡8

ps:可增加VMnet2 -> 实体网卡2(无线网卡/有线网卡)

VMnet0这个交换机连接的是有线网卡还是无线网卡,可以通过设置进行更改,如何更改等下再说。

这里说的所有连接,都是虚拟的,可以理解成有根虚拟的网线把虚拟的网卡和虚拟的交换机连接起来。

3、ubuntu上的网卡

接下来,我们再说一下,在虚拟机上的网卡,这个网卡存在虚拟机内,也是VMware软件虚拟出来的。

按下图所示,打开虚拟机设置对话框。

在这里插入图片描述
在硬件配置下面,可以看到网络适配器,选择后在右侧有对应的设置。

在这里插入图片描述

虚拟机上的虚拟网卡,可以添加多个,直接点击添加按钮就可以进行添加。

通过上图可以看到,虚拟机上的网卡,有如下5种设置:

桥接模式

NAT模式

仅主机模式

自定义

LAN区段

这几种模式的用法,下面会详细介绍。

虚拟机想要实现联网,虚拟机上的网卡,同样需要连接到三个虚拟交换机上。在设置虚拟机上的网卡模式时,他们的对应关系如下所示:

VMnet0–>虚拟上的网卡(桥接模式)

VMnet1–>虚拟上的网卡(仅主机模式)

VMnet8–>虚拟上的网卡(NAT模式)

设置不同的网卡模式,会连接到不容的虚拟交换机上。

至此,我们组网需要的设备有:

无线网卡:Intel® Wi-Fi 6E AX211 160MHz

有线网卡:Realtek PCIe GbE Family Controller

虚拟网卡1:VMware Virtual Ethernet Adapter for VMnet1

虚拟网卡8:VMware Virtual Ethernet Adapter for VMnet8

四个网卡,两个虚拟两个实物,都在实体机上。

VMnet0

VMnet1

VMnet8

三个虚拟交换机,在实体机和虚拟机之间。

N个虚拟机内部网卡

在虚拟机内部,有三种模式,可以虚拟出N个。

虚拟机网线

在虚拟机和实体机上,哪里需要哪里就可以虚拟出来。

以上所有,你都看不到,你面前只有一台笔记本电脑。

4、三种连接方式介绍

前面我们说了,通过四张网卡和三个虚拟交换机,以及虚拟机上网卡的三种模式,可以组成了三种网络。

那你有没有疑问,为什么要搞这么复杂?

为了解答这个问题,下面开始本文的重点:连接方式/组网方式。

既然是三种连接模式,那么这三种连接肯定是不一样的,对照前面虚拟交换机编辑图片,我们可以看到这三种连接类型如下:

桥接模式:虚拟机网卡(桥接模式)<–VMnet0(交换机)–>实体网卡

仅主机模式:虚拟机网卡(仅主机模式)<–VMnet1(交换机)–>虚拟网卡1

NAT模式:虚拟机网卡(NAT模式)<–VMnet8(交换机)–>虚拟网卡8

5、桥接模式

也叫Bridged模式,有些资料上这么叫,看到的时候记得就是桥接模式。

5.1、桥接模式介绍:

在这里插入图片描述

①、虚拟机的虚拟网卡通过虚拟交换机VMnet0和实体机的物理网卡(有线/无线)通信。桥接模式可以理解成,虚拟机的网卡(N个)和实体机的网卡,通过虚拟机的网线,都连接在虚拟交换机VMnet0上。

但是实体机的网卡是利用虚拟网桥,和虚拟交换机VMnet0相连。实体机网卡是通过网线,和外部设备(路由器)连接。

②、桥接模式虚拟机和实体机是在一个网段内,可以理解成虚拟机和实体机通过虚拟交换机VMnet0,组成了一个小型的局域网,那么这个网络内的所有设备的IP地址必须设置成同一个网段。

③、这种模式实体机和虚拟机相互独立,可以互相访问。如果你想把虚拟机当做一台完全独立的计算机看待,并且允许它和其他终端一样的进行网络通信,那么桥接模式通常是虚拟机访问网络的最简单途径。

④、通过以上三点,可以看出我们在使用虚拟机对PLC进行调试时,桥接模式是最简单的方式。只需要把实体机上的网卡和PLC相连,就可以实现虚拟机和实体机同时和PLC进行通信。

如果实体机连接PLC机柜内的交换机,还可以访问现场网络上的其他设备(工控机、服务器)。这时,可以理解成把虚拟机加入了工业现场的局域网内。

⑤、如果实体机的网卡使用无线网卡,并且无线网卡连接了路由器,这时通过虚拟网桥虚拟机也就能联网了。(把实体机的有线网卡和路由器通过网线连接,也可以达到相同的效果)如上图所示。

因为桥接模式虚拟机会占用局域网中单独的IP,所以这种模式在IP比较紧张的情况下并不合适。

5.2、桥接模式的配置步骤:

以上,都是桥接模式组网的逻辑介绍,只有理解了网络连接逻辑,我们才能进行相关设备的配置。

①、虚拟交换机设置

打开VMware软件,点击“编辑”下的“虚拟网络编辑器”,设置参数

在这里插入图片描述
上图我们前面已经说过,可以对三个交换机模式进行设置,但不建议大家改变默认模式,默认的三种模式对我们使用已足够。

默认设置是:

VMnet0–>桥接模式

VMnet1–>仅主机模式

VMnet8–>NAT模式

上图中A处选择网卡,B处设置网卡的模式(建议使用默认),C处设置桥接模式的方式,默认为自动。

我们可以改动的只有C处,当然默认的自动也可以满足部分情况的使用。

点击C处下拉框,如下图所示:

在这里插入图片描述

从上图可以看出,可以桥接6种模式,自动和红色框中的两种,是我们可以选择设置的,其他三个基本用不到,这里就不介绍了。

自动:自动模式会根据你对虚拟机的使用,自动切换桥接至那个网卡。

需要注意,如果实体机有多个网卡,这里选择你自动。会出现如下情况:当实体机只有一个网卡是连接状态时,会自动选择这个网卡,如果多个网卡都是连接状态,会选择上次连接那个。

举例:我们现场调试时,有线网卡一般会连到PLC上,无线网卡有时会连到车间的WiFi上。如果打开虚拟前,只有一个是连接状态的,那么虚拟机会连接到这个处于连接状态的网卡上。如果两个网卡都是连接上的,会自动选择上次连接的网卡。

如果虚拟机处在已运行状态,这时有一个网卡的网络断掉,那么会自动切换到另一个网卡。

Intel® Wi-Fi…:无线网卡,选择这个可以通过实体机的无线网卡连接至外部网络,可用于虚拟机连接互联网。

Realtek PCIe…:有线网卡,选择这个可以通过实体机的有线网卡连接至外部网络,可用于PLC调试。在我们调试时,建议直接选择有线网卡,这样就能避免选择自动时,来回切换网卡,导致连接不上PLC的情况。

以上是我笔记本电脑的网卡,如果你的实体机上有多块网卡,这里也会显示出来。

②、虚拟机上的网卡设置

打开虚拟机设置对话框,选择网卡设置,如下图所示:

在这里插入图片描述

虚拟机上网卡的设置,直接参照上图进行。

B处已连接和启动时连接最好都勾选上,这样可以每次运行虚拟机,都会自动连接上。

C处选择桥接模式,复制物理网络的连接状态选项是否勾选,对连接没有影响。勾选后虚拟机的网卡状态,会根据实际机的状态进行显示。

③、网卡IP设置

这里说的网卡包括虚拟机内的网卡和实体机网卡,如果有多个虚拟机,每个虚拟机内的网卡都需要设置。

按照下图所示路径打开IP设置对话框,设置网卡的IP地址。

在这里插入图片描述

实体机上的网卡设置,需要与前面虚拟交换机选择的网卡相对应。

虚拟机上的网卡,也需要设置。

IP的设置有两种方式,自动获得和手动设置。如果网络上有DHCP服务器可以选择自动获得IP,要是没有就手动设置IP。

注意,所有网卡的IP必须在同一个网段内,也就是前三位设置一样。

举例:如果是使用虚拟机进行PLC调试,先把前面虚拟交换机配置的网卡选择有线网卡,然后用网线把实体机上的有线网卡,和配电柜内交换机相连。实体机有线网卡、虚拟机内虚拟机网卡、PLC、其他设备,IP都设置成一个网段内。这种组网,整个网络上的所有计算机(无论是实体还是虚拟的)都可以互相访问。

另一种配置方式:虚拟交换机配置的网卡选择无线网卡,无线网卡通过WIFI进行联网,实体机网卡、虚拟机网卡都设置成自动获得IP。如果实体机能通过无线网卡进行上网,那么,虚拟机也可以上网。

以上两种用法,是使用桥接模式比较典型的应用,建议大家都动手配置一下,看能否组网成功。

总结:桥接模式是比较实用的组网方式,他的缺点是所有计算机都在一个网段内,各自占用单独的IP,如果网络上IP比较紧张,这种方式就不合适。

除了IP占用外,另一个缺点是,虚拟机内的网卡是对外可见的,这对于安全要求较高的使用场景,其实是有风险的,如果你使用虚拟机是为了规避上网风险,那么这种方式也不合适。

当然,我们做项目都是在局域网内进行,车间的局域网也不会连接外网,这种方式组网在工业现场是最简单的。

6、NAT模式

6.1、NAT模式介绍

NAT,是NetworkAddressTranslation的缩写,即网络地址转换。一般使用VMware创建虚拟机的默认网络连接模式就是NAT。

①、NAT模式组网时,VMware软件会在实体机上创建单独的虚拟网络,用以在实体机和虚拟机之间通信,这种组网方式,实体机使用虚拟网卡8:VMware Virtual Ethernet Adapter for VMnet8与虚拟网络连接。

除了上面说的一些虚拟设备,NAT模式为了创建虚拟的网络,又虚拟出了虚拟DHCP服务器、虚拟NAT设备、以及若干虚拟网线。

如下图所示:

在这里插入图片描述

②、虚拟机向外部网络发送的请求数据包,会交由虚拟NAT设备加上“特殊标记”并以实体机的名义转发出去,外部网络返回的响应数据包,也是先由实体机接收,然后交虚拟NAT设备根据”特殊标记”进行识别,并转发给对应的虚拟机。

③、虚拟机在外部网络没有自己的IP地址,从外部网络来看,虚拟机和主机在共享一个IP地址,外部网络也无法访问到虚拟机。相对于桥接模式,NAT模式能节省不少IP地址。

④在实体机上只允许有一个NAT模式的虚拟网络,因此实体机上如果有多个虚拟机,并且都采用NAT模式进行组网,那么多个虚拟机之间也是可以相互访问的。

⑤、NAT模式无法像桥接模式那样,选择使用哪个实体网卡连接外部网络,但是NAT模式会智能的选择连接外网的网卡。

由于NAT模式需要虚拟出NAT设备和虚拟的DHCP服务器,在我们安装WMware软件后,会在实体机系统中安装NAT服务和DHCP服务。

要正常的使用NAT模式这两个服务必须开启,检查是否开启:

打开WIN+R键打开运行对话框,输入services.msc 然后回车确认。

在这里插入图片描述

在这里插入图片描述

正常情况这两个服务是默认开启的,有时候会被杀毒软件给禁掉。

6.2、NAT模式的配置步骤

下面来讲解NAT模式的配置流程,与桥接模式一样,也是分为三步:虚拟交换机设置、虚拟机上网卡设置、网卡IP设置。

①、虚拟机交换机设置

先复习一下三个交换机的默认设置:

VMnet0–>桥接模式

VMnet1–>仅主机模式

VMnet8–>NAT模式

再次提醒,不建议大家改变默认模式,默认的三种模式对我们使用已足够。

打开VMware软件,点击“编辑”下的“虚拟网络编辑器”,设置参数

在这里插入图片描述
上图是NAT模式的默认设置,默认情况下已经可以满足我们使用。

选择A处的虚拟交换机VMnet8后,在下面B处选择NAT模式,默认情况VMnet8就是NAT模式。从这里可以看出,VMnet8的模式可以改成其他。

C处用于对NAT模式进行设置,点击按钮后,如下图所示:

在这里插入图片描述

NAT模式会创建一个单独的虚拟网络,上图中所示,就是对网络属性的设置。比如:子网IP、掩码、网关IP等,这些参数同样不需要我们更改,如果想学习更深的组网知识,可以先去掌握一些组网的知识,然后通过虚拟组网进行测试。

图中D处将主机虚拟适配器连接至此网络:这里设置实体机上的虚拟网卡VMware Virtual Ethernet Adapter for VMnet8,如果取消勾选,实体机上虚拟网卡8会删除,这样实体机就没有办法和虚拟机进行通信了,但是不影响虚拟机通过实体机网卡,访问外部网络。

图中E处使用本地DHCP服务将IP地址分配给虚拟机,勾选后会使用虚拟机的DHCP服务器进行分配IP,图中F/G处用于设置子网IP和子网掩码。

②、虚拟机上的网卡设置

打开虚拟机设置对话框,选择网卡设置,如下图所示:

在这里插入图片描述
虚拟机上的网卡设置比较简单,只需要根据上图,选择NAT模式即可。

③、网卡IP设置

网卡包括虚拟机内的网卡和实体机网卡,实体网卡根据联网需求进行设置,虚拟机内网卡IP设置成自动获取。

再实际项目调试中,有线网卡设置成与PLC系统同一网段,无线网卡可设置成自动获取IP地址。

虚拟网卡最好设置成自动获取,让虚拟的DHCP服务器进行分配。如果手动设置,需要根据DHCP设置进行配置,比较麻烦,不建议大家这样操作。

总结:NAT模式非常简单,只要实体机能联网,虚拟机大概率没什么问题。前面虽然讲了很多设置参数,但是大多数都不需要我们进行修改,默认的就可以满足使用。给大家介绍也是本着,知其然而后知其所以然的精神,让想继续学习的同学,能再往前努力一步。

7、仅主机模式

仅主机模式英文Host-Only,仅主机模式可以理解成NAT模式的一种特殊情况,通过下图的网络结构可以看出,仅主机模式,去除了虚拟的NAT设备。

在这里插入图片描述

7.1、仅主机模式介绍

①、仅主机模式,实体机使用VMware Virtual Ethernet Adapter for VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机进行通信。

②、仅主机模式可以将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只能与实体机相互通讯。所以,这种模式虚拟机无法通过网卡访问实体机以外的网络,但是多个虚拟机之间可以互相访问,也就是多个虚拟机之间可以组网。

③、仅主机模式无妨访问外部网络,所以用起来比较安全,如果你使用虚拟机以安全为主,那么这种模式无疑是比较合适的。

④、这种模式在我们使用虚拟机进行PLC编程时并不适用,因为无法访问外部的网络,就无法连接到PLC上。

7.2、仅主机模式的配置步骤

同样也是分为三步:虚拟交换机设置、虚拟机上网卡设置、网卡IP设置。

①、虚拟机交换机设置

再次复习一下三个交换机的默认设置:

VMnet0–>桥接模式

VMnet1–>仅主机模式

VMnet8–>NAT模式

打开VMware软件,点击“编辑”下的“虚拟网络编辑器”,设置参数

在这里插入图片描述
上图是仅主机模式的默认设置,默认情况下已经可以满足我们使用。

选择A处的虚拟交换机VMnet1后,在下面B处选择仅主机模式,默认情况VMnet1就是仅主机模式。

C处的设置与NAT模式相同,具体含义就不赘述了。

②、虚拟机上的网卡设置

打开虚拟机设置对话框,选择网卡设置,如下图所示:

在这里插入图片描述
虚拟机上的网卡设置,根据上图进行配置即可。

③、网卡IP设置

网卡包括虚拟机内的网卡和实体机上的虚拟机网卡VMware Virtual Ethernet Adapter for VMnet1。

实体机上的实体网卡因为仅主机模式,虚拟机不连接外围设备,所以无论如何配置,都对虚拟机组网没有影响。

仅主机模式下,虚拟机内的网卡和实体机上的虚拟网卡,只能设置成自动获取。让虚拟的让虚拟的DHCP服务器进行分配。

总结:通过以上描述应该能看出,仅主机模式是配置最简单的一种组网方式,这种网络也是最简单的,只能多个虚拟机和实体机进行组网,无法访问外部网络

8、其他

以上三种网络的配置,共使用了以下设备:

无线网卡:Intel® Wi-Fi 6E AX211 160MHz

有线网卡:Realtek PCIe GbE Family Controller

虚拟网卡1:VMware Virtual Ethernet Adapter for VMnet1

虚拟网卡8:VMware Virtual Ethernet Adapter for VMnet8

四个网卡,两个虚拟两个实物,都在实体机上。

VMnet0

VMnet1

VMnet8

三个虚拟交换机,在实体机和虚拟机之间。

N个虚拟机内部网卡

在虚拟机内部,有三种模式,可以虚拟出N个。

虚拟机网线

在虚拟机和实体机上,哪里需要哪里就可以虚拟出来。

虚拟DHCP服务器

虚拟NAT设备

用于NAT模式

前面说了,以上这些都是VMware软件安装完成后,默认的配置。当默认配置不能够满足使用时,也可以主动的去更改和增加。

比如我们可以在默认的三个虚拟交换机的基础上,增加虚拟交换机的数量,如下图所示:

在这里插入图片描述
从上图可以看出VMware最多可以创建20个虚拟网络,并且每个虚拟网络可以连接任意数量的虚拟机网络设备。

同样,在虚拟机上我们可以再虚拟出多个网卡,用以组成不同的网络。

在这里插入图片描述

上图是在虚拟机上添加网卡的方法,添加虚拟网卡的数量是不受限制的。

除了增加虚拟机硬件的方式,以满足我们增加虚拟机网络的需求,VMware软件还可以通过自定义的方式进行设置虚拟网卡的连接方式,如下图所示:

在这里插入图片描述

所以,可以通过增加虚拟设备的方式,我们可以组出比本文中介绍的三种网络,更复杂的网络。这部分就不在本文中介绍了,感兴趣的可以自己去DIY。

ubuntu到ubuntu里面的虚拟机网络拓扑

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

也就是说我们ubuntu里面的虚拟机在创建的时候,通过桥连接到了ubuntu的网卡中
在这里插入图片描述

pnet0 为桥

ubuntu里面的虚拟机虚拟网卡 <-> pnet0 <-> 虚拟机的网卡eth0(如下图)

在这里插入图片描述

windows到ubuntu里面的虚拟机网络拓扑

桥接模式:
ubuntu里面的虚拟机网卡 <-- > 虚拟网桥 <-- > 虚拟机网卡(桥接模式)<–VMnet0(交换机)–>实体网卡

相关文章:

【虚拟机网络拓扑记录】

虚拟机网络拓扑记录 虚拟机安装windows到ubuntu的网络拓扑ubuntu到ubuntu里面的虚拟机网络拓扑windows到ubuntu里面的虚拟机网络拓扑 虚拟机安装 本实验宿主机为windos&#xff0c; 安装vmware&#xff0c;虚拟机操作系统使用ubuntu&#xff0c;然后再在ubuntu上面创建新的虚拟…...

【单片机通讯协议】—— 常用的UART/I2C/SPI等通讯协议的基本原理与时序分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、通信基本知识1.1 MCU的参见外设1.2 通信的分类按基本的类型从传输方向上来分 二、UART&#xff08;串口通讯&#xff09;2.1 简介2.2 时序图分析2.3 UART的…...

Vue3 核心语法

1. OptionsAPI 与 CompositionAPI Vue2 的API设计是 Options&#xff08;配置&#xff09;风格的。Vue3 的API设计是 Composition&#xff08;组合&#xff09;风格的。 1.1 Options API 的弊端 Options类型的 API&#xff0c;数据、方法、计算属性等&#xff0c;是分散在&a…...

LLaMA-Factory GLM4-9B-CHAT LoRA 指令微调实战

&#x1f929;LLaMA-Factory GLM LoRA 微调 安装llama-factory包 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git进入下载好的llama-factory&#xff0c;安装依赖包 cd LLaMA-Factory pip install -e ".[torch,metrics]" #上面这步操作会完成…...

GTM023 W.H.Greub线性代数经典教材:Linear Algebra

这本教材是我高中时期入门线性代数的主要教材&#xff0c;我的很多基础知识都来源于这本书&#xff0c;如今看回这本书可以说满满的回忆。这本书可以说&#xff0c;是我读过的内容最为全面且完备的线性代数教材了。而且它的语言风格非常的代数化&#xff0c;没有什么直观可言&a…...

交换机与路由器的区别

交换机和路由器是网络中的两种关键设备&#xff0c;它们各自承担不同的功能&#xff0c;主要区别体现在以下几个方面&#xff1a; 一、工作层次与功能 交换机&#xff1a; 工作层次&#xff1a;交换机主要工作在OSI模型的第二层&#xff0c;即数据链路层。 功能&#xff1a;交…...

springboot502基于WEB的牙科诊所管理系统(论文+源码)_kaic

牙科诊所管理系统的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定牙科诊所管理系统的…...

soular使用教程

用 soular 配置你的组织&#xff0c;工作更高效&#xff01;以下是快速上手的简单步骤&#xff1a; &#xfeff; 1. 账号管理 可以对账号信息进行多方面管理&#xff0c;包括分配不同的部门、用户组等&#xff0c;从而确保账号权限和职责的清晰分配。 &#xfeff; 1.1 用…...

纯div+css+js弹出窗

目的&#xff1a;实现弹出窗、仅关闭弹窗之后才能操作。自适应宽度与高度、当文本内容太多时、添加滚动条效果。 效果图 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport"…...

一篇文章学会HTML

目录 页面结构 网页基本标签 图像标签 超链接标签 文本链接 图像链接 锚链接 功能链接 列表 有序列表 无序列表 自定义列表 表格 跨列/跨行 表头 媒体元素 视频 音频 网站的嵌套 表单 表单元素 文本框 单选框 多选框 按钮 下拉框 文本域和文件域 表…...

QGIS二次开发(插件开发)

实习二 QGIS插件开发 2.1 任务要求 a&#xff09;用C语言编写qgis插件&#xff0c;实现带有x/y坐标的文本文件的地图显示。 用文件流fstream操作文本文件&#xff0c;读取其中的坐标数据。基于QgsPlugin相关类派生出一个插件&#xff0c;并加到插件工厂中。基于QgsVectorLaye…...

Web防火墙和下一代防火墙的区别

介绍 客户经常询问“当我已经拥有下一代防火墙&#xff08;NGFW&#xff09;时&#xff0c;为什么需要Web应用程序防火墙&#xff08;WAF&#xff09;&#xff1f;”。本博文的目的是解释两种解决方案之间的区别&#xff0c;重点关注Web应用程序防火墙可以提供的附加值。 什么…...

Linux:alias别名永久有效

一、背景 日常使用bash时候&#xff0c;有些常用的命令参数的组合命令太长&#xff0c;很难记&#xff0c;此时可以利用Linux提供的alias命令生成命令的别名&#xff08;命令的隐射&#xff09;&#xff0c;但是我们会发现&#xff0c;当退出了终端后重新登录就失效了&#xff…...

【递归与回溯深度解析:经典题解精讲(中篇)】—— LeetCode

文章目录 组合目标和组合总和字母大小写全排序优美的排列N皇后 组合 思路&#xff1a;回溯算法 问题要求从 1 到 n 中选出 k 个数的所有组合。 使用回溯算法递归构造解。 每次递归时&#xff0c;记录当前的组合路径&#xff0c;当组合长度达到 k 时&#xff0c;将其加入结果集…...

01.HTTPS的实现原理-HTTPS的概念

01.HTTPS的实现原理-HTTPS的概念 简介1. HTTPS的概念和安全性2. HTTPS的实现原理3. HTTPS和HTTP的区别4. OSI七层协议模型5. SSL和TLS的区别 简介 该系列文章主要讲述了HTTPS协议与HTTP协议的区别&#xff0c;以及HTTPS如何实现安全传输。内容分为三部分&#xff1a;HTTPS的实…...

一文详解MacOS+CLion——构建libtorch机器学习开发环境

对于希望在本地环境中进行深度学习开发的开发者来说&#xff0c;配置合适的工具链是至关重要的一步。本文旨在帮助您在 macOS 操作系统上&#xff0c;利用 CLion IDE 和 PyTorch 的 C依赖库——libtorch&#xff0c;快速搭建起一个高效的开发环境。这里我们将一步步地讲解如何下…...

【LeetCode 面试经典150题】详细题解之哈希表篇

【LeetCode 面试经典150题】详细题解之哈希表篇 1 哈希表的基础1.1 基础概念及实现1.2.1 哈希表的工作原理1.2.2 705.设计哈希集合1.2.3 706.设计哈希映射 1.2 HashMap相关1.2.1 基本操作1.2.2 遍历 1.3 Hashtable1.4 LinkedHashMap1.5 HashSet**1.5.1基本特性**1.5.2 基本方法…...

linux socket编程之udp_dict_serve服务端--引入配置文件

注意&#xff1a;本篇博客只是对上一篇博客功能的增加 1.创建配置文件(翻译) Dict.txt apple: 苹果 banana: 香蕉 cat: 猫 dog: 狗 book: 书 pen: 笔 happy: 快乐的 sad: 悲伤的 run: 跑 jump: 跳 teacher: 老师 student: 学生 car: 汽车 bus: 公交车 love: 爱 hate: 恨 hell…...

selenium学习笔记(二)

文章目录 前言设计模式POMPOM概念POM优势POM设计原则POM的实现 selenium的常用操作处理动态元素截图操作勾选复选框多层框架/窗口定位操作下拉框上传文件操作处理弹窗切换窗口拖拽操作 如何处理浏览器驱动更新导致的问题selenium与网站监控监听网页内容变化监控网络请求 seleni…...

宏集eX710物联网工控屏在石油开采机械中的应用与优势

案例概况 客户&#xff1a;天津某石油机械公司 应用产品&#xff1a;宏集eX710物联网工控屏 应用场景&#xff1a;钻井平台设备控制系统 一、应用背景 石油开采和生产过程复杂&#xff0c;涵盖钻井平台、采油设备、压缩机、分离器、管道输送系统等多种机械设备。这些设备通…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...