【Linux】网络接口绑定和组合的操作实例

网络接口绑定和组合的操作实例

  • (一)网卡
    • 1. 增
    • 2. 查
    • 3. 激活——设置网络接口
  • (二)网络接口绑定
    • 1. 概述
    • 2. 实验操作
    • 3. 删除绑定
  • (三)网络接口组合
    • 1. 概述
    • 2. 实验操作

(一)网卡

1. 增

实验操作:增添四张网卡

网卡名IP
ens16010.0.0.99
ens16110.0.0.109
ens22410.0.0.119
ens25610.0.0.219
  1. 1点击设置
    在这里插入图片描述
    1.2 点击添加

在这里插入图片描述
1.3 选择网络适配器

在这里插入图片描述
1.4 重复上面操作添加三个网络适配器2、3、4

在这里插入图片描述

2. 查

# nmcli d  查看到五个网卡设备
输入nmcli d  查看到五个网卡设备,ens160、lo是系统默认网卡,增添的三张网卡是ens161、ens224、ens256,且这三张网卡未启动。

在这里插入图片描述

3. 激活——设置网络接口

3.1 配置网络接口

[root@controller ~]# nmcli conn modify +ipv4.addr "10.0.0.99/24"
[root@controller ~]# nmcli connection add con-name ens161 autoconnect no type ethernet ifname ens161 ip4 10.0.0.109/24 gw4 10.0.0.2
[root@controller ~]# nmcli connection add con-name ens224 autoconnect no type ethernet ifname ens224 ip4 10.0.0.119/24 gw4 10.0.0.2
Connection 'ens224' (c6f98838-8f5f-4144-b2af-3e7e8aef1d0c) successfully added.
[root@controller ~]# nmcli connection add con-name ens256 autoconnect no type ethernet ifname ens256 ip4 10.0.0.219/24 gw4 10.0.0.2
Connection 'ens256' (eed64589-d9d6-4e87-9116-00007635573a) successfully added.

在这里插入图片描述
3.2 配置dns并重启网络配置

[root@controller ~]# nmcli con mod ens161 ipv4.dns "114.114.114.114 8.8.8.8"
[root@controller ~]# nmcli con mod ens224 ipv4.dns "114.114.114.114 8.8.8.8"
[root@controller ~]# nmcli con mod ens256 ipv4.dns "114.114.114.114 8.8.8.8"
[root@controller ~]# systemctl restart NetworkManager

3.3 激活连接并查看状态

[root@controller ~]# nmcli d up ens161
[root@controller ~]# nmcli d up ens256
[root@controller ~]# nmcli d up ens224
[root@controller ~]# nmcli d       //全部启动成功

在这里插入图片描述
四张网卡配置成功!!!
可以尝试ping www.baidu.com 外网并且远程连接

(二)网络接口绑定

1. 概述

网络接口绑定是将多个网络接口逻辑地连接到一起。

目的
1.通过冗余、弹性实现故障移除转移,避免网络接口地单点故障,提高服务器地可用性;
2.提高带宽以提高吞吐率

NetworkManager的绑定实现方法非常简单,先创建一个bond类型的虚拟连接作为主连接,再基于要加入绑定的若干接口创建它的从连接,每个从连接关联各自的网络接口。

从连接1 ens160
主连接 bond_test
从连接2 ens161
从连接3 ens224
从连接4 ens 256
IP:10.0.0.249
  • 绑定模式: 决定网络接口之间的关系
  • active-backup(冗余备份模式)、balance-tlb等模式。

2. 实验操作

  • 实例

绑定四张网卡,采用不依赖于交换机支持的冗余备份模式active-backup(又称主备模式)将一个网卡配置为另一个网卡的备用网卡。

  • 查看系统的可用的网络接口,执行 ip link命令。经过上面的操作步骤网卡有五个ens160、lo、ens161、ens224、ens256
    在这里插入图片描述
  • 添加bond类型的连接
# nmcli con add type bond con-name bond_test ifname bond_test mode active-backup
Connection 'bond_test' (d632d625-cd8d-40db-84fb-f6fee6b0e7b9) successfully added.
//成功添加的连接"bond_test"。

此处的连接名为’bond_test’,关联的设备(网卡)是bond_test,绑定模式是active-backup。由于bond-test设备不存在,系统将同时创建一个名为bond-test的虚拟设备。与其他类型的连接一样,默认会设置连接开机自动启动(激活)。

  • 添加bond-test的从连接
    为bond-test添加四个类型为bond-slave的从连接bond_test-slave-1、bond_test-slave-2、bond_test-slave-3、bond_test-slave-4分别关联网卡ens160、ens161、ens224、ens256。
# nmcli con add type bond-slave con-name bond_test-slave-1 ifname ens160 master bond_test
Connection 'bond_test-slave-1' (a6721529-7ed6-4669-8609-151f935df858) successfully added.
//成功添加连接'bond_test-slave-1'
[root@controller ~]# nmcli con add type bond-slave con-name bond_test-slave-2 ifname ens161 master bond_test
Connection 'bond_test-slave-2' (2cfaa53b-8152-4ad3-a16e-12f44b67f7c7) successfully added.
//成功添加连接'bond_test-slave-2'
[root@controller ~]# nmcli con add type bond-slave con-name bond_test-slave-3 ifname ens224 master bond_test
Connection 'bond_test-slave-3' (198ba05d-dcac-408a-a27a-d0abfecbaa40) successfully added.
//成功添加连接'bond_test-slave-3'
[root@controller ~]# nmcli con add type bond-slave con-name bond_test-slave-4 ifname ens256 master bond_test
Connection 'bond_test-slave-4' (46f15963-e251-4e33-ac50-a058c1dc982e) successfully added.
//成功添加连接'bond_test-slave-4'

在这里插入图片描述

至此bond_test已成为上述四个从连接的主连接。

  • 为bond_test配置IP、网关、DNS。
    这个bond类型的连接可以作为一个常规的网络连接使用。
# nmcli conn modify bond_test ipv4.addresses "10.0.0.249/24"
# nmcli conn modify bond_test ipv4.method manual
# nmcli conn modify bond_test ipv4.gateway 10.0.0.2
# nmcli conn modify bond_test ipv4.dns "114.114.114.114 8.8.8.8"

在这里插入图片描述

  • 激活启动四个从连接一个主连接
# nmcli connection up bond_test-slave-1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
# nmcli connection up bond_test-slave-2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
# nmcli connection up bond_test-slave-3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
# nmcli connection up bond_test-slave-4
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
# nmcli connection up bond_test

在这里插入图片描述

  • 检测
# nmcli c
# nmcli d
# ping www.baidu.com
# ip add show bond_test   //查看IP信息。

在这里插入图片描述

3. 删除绑定

先删除从连接在删除主连接。

# nmcli c delete bond_test-slave-1
Connection 'bond_test-slave-1' (a6721529-7ed6-4669-8609-151f935df858) successfully deleted.
# nmcli c delete bond_test-slave-2
Connection 'bond_test-slave-2' (2cfaa53b-8152-4ad3-a16e-12f44b67f7c7) successfully deleted.
# nmcli c delete bond_test-slave-3
Connection 'bond_test-slave-3' (198ba05d-dcac-408a-a27a-d0abfecbaa40) successfully deleted.
# nmcli c delete bond_test-slave-4
Connection 'bond_test-slave-4' (46f15963-e251-4e33-ac50-a058c1dc982e) successfully deleted.
# nmcli c delete bond_test
Connection 'bond_test' (d632d625-cd8d-40db-84fb-f6fee6b0e7b9) successfully deleted.

在这里插入图片描述

为了进行网络接口组合操作!!!

(三)网络接口组合

1. 概述

NIC组合又称链路聚合,可以将其理解成绑定bond的增强版,将两个或多个网络接口聚合在一起成为一个组。

此次实验形成两个网络接口组合如下图所示:

从连接1 ens160
组合test_team1
从连接2 ens161
从连接3 ens224
组合test_team2
从连接4 ens 256
FIP:10.0.0.210
IP:10.0.0.211

2. 实验操作

为方便实验,采用不依赖于交换机支持的冗众模式active-backup将一个网卡配置为另一个网卡的备用网卡。

  • ip link 查看网卡

  • test_team1:执行如下命令创建一个类型为team的连接:

# nmcli con add type team con-name team_test1 ifname team_test1 config '{"runner":{"name":"activebackup"}}'
Connection 'team_test1' (102554c0-d8c2-4d4d-8867-8ffff41eca6f) successfully added.
//成功添加的连接'team_test1'

此处的连接名为team_test1,关联的网卡是team_test1,组合方法是activebackup。由于team_test1设备不存在,系统将同时创建一个名为team_test1的虚拟设备。与其他连接类型一样,默认会设置开机自启动(激活)。

与bond类型的连接不同,组合类型由JSON格式定义,具体的JSON语法格式如下:‘{“runner”:{“name”:“METHOD”}}’

runner指定所使用的处理器,METHOD就是组合方法,可以是broadcast、activebackup、roundrobin、loadbalance 或者 lacp。

  • 为上述连接tesm_test1添加两个类型的tesm-slave的从连接team_test1-port1和team_test1-port2,分别关联网卡ens160、ens161;将从设备添加到主设备,形成一个网卡聚合。
# nmcli con add type team-slave con-name team_test1-port1 ifname ens160 master team_test1
Connection 'team_test1-port1' (8a161cfc-30a6-49b9-9154-b8351bd30a25) successfully added.
//成功添加的连接team_test1-port1 (8a161cfc-30a6-49b9-9154-b8351bd30a25)
# nmcli con add type team-slave con-name team_test1-port2 ifname ens161 master team_test1
Connection 'team_test1-port2' (336aae50-f447-40e4-af1c-e76653812d87) successfully added.
//成功添加的连接team_test1-port2(336aae50-f447-40e4-af1c-e76653812d87) 

至此team_test已成为上述两个从连接的主连接。
在这里插入图片描述

  • 为主连接team_test配置IP、网关、DNS。
# nmcli conn modify team_test1 ipv4.addr "10.0.0.210/24"
# nmcli conn modify team_test1 ipv4.dns "114.114.114.114 8.8.8.8"
# nmcli conn modify team_test1 ipv4.gateway "10.0.0.2"
# nmcli conn modify team_test1 ipv4.method manual

在这里插入图片描述

  • 激活两个从连接和主连接
# nmcli conn up team_test1-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/45)
# nmcli conn up team_test1-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/46)
# nmcli conn up team_test1
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/47)

启用从连接时系统会关联相应的网卡,并自动断开这些网卡上原有的连接。

在这里插入图片描述

  • test_team2的操作与team_test1一样
# nmcli con add type team con-name team_test2 ifname team_test2 config '{"runner":{"name":"activebackup"}}'
Connection 'team_test2' (7a24d4d7-b05b-46db-b372-b7c70d384966) successfully added.
# nmcli con add type team-slave con-name team_test2-port1 ifname ens224 master team_test1
Connection 'team_test2-port1' (3b9615f8-ffa0-410d-ab19-a204119ca622) successfully added.
# nmcli con add type team-slave con-name team_test2-port2 ifname ens256 master team_test1
Connection 'team_test2-port2' (649c1962-89b6-463c-a07a-8b01a6a83109) successfully added.
# nmcli conn modify team_test2 ipv4.addr "10.0.0.211/24"
# nmcli conn modify team_test2 ipv4.dns "114.114.114.114 8.8.8.8"
# nmcli conn modify team_test2 ipv4.gateway "10.0.0.2"
# nmcli conn modify team_test2 ipv4.method manual
[root@controller ~]# nmcli conn up team_test2-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/53)
[root@controller ~]# nmcli conn up team_test2-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/54)
[root@controller ~]# nmcli conn up team_test2
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/55)
  • 测试:验证网卡组合的IP地址信息
# ip add show team_test1
13: team_test1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 00:0c:29:91:2f:3c brd ff:ff:ff:ff:ff:ffinet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute team_test1valid_lft forever preferred_lft foreverinet 10.0.0.211/24 brd 10.0.0.255 scope global secondary noprefixroute team_test1valid_lft forever preferred_lft foreverinet6 fe80::3cc1:6bd7:7bde:9f40/64 scope link noprefixroute valid_lft forever preferred_lft forever# ip add show team_test2
21: team_test2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 00:0c:29:91:2f:50 brd ff:ff:ff:ff:ff:ffinet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute team_test2valid_lft forever preferred_lft foreverinet6 fe80::9193:4b7c:f9f3:3748/64 scope link noprefixroute valid_lft forever preferred_lft forever# nmcli d
DEVICE      TYPE      STATE      CONNECTION       
team_test1  team      connected  team_test1       
team_test2  team      connected  team_test2       
ens160      ethernet  connected  team_test1-port1 
ens161      ethernet  connected  team_test1-port2 
ens224      ethernet  connected  team_test2-port1 
ens256      ethernet  connected  team_test2-port2 
lo          loopback  unmanaged  --    

在这里插入图片描述

  • 测试网卡组合,使用teamdctl命令检查网卡组合的配置功能:
[root@controller ~]# teamdctl team_test1 state
setup:runner: activebackup         //组合方法
ports:						   //端口列表ens160						//第一个端口(从设备)link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0ens161						//第二个端口(从设备)link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0
runner:active port: ens160
[root@controller ~]# teamdctl team_test2 state
setup:runner: activebackup
ports:ens224link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0ens256link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0
runner:active port: ens224

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

查看组合端口;查询当前活动端口号

# teamnl team_test1 ports3: ens161: up 10000Mbit FD 2: ens160: up 10000Mbit FD 
# teamnl team_test2 ports5: ens256: up 10000Mbit FD 4: ens224: up 10000Mbit FD 
# teamnl team_test1 getoption activeport
2
# teamnl team_test2 getoption activeport
4

在这里插入图片描述

  • 断开活动端口连接测试
# nmcli dev dis ens224      //断开ens224连接
Device 'ens224' successfully disconnected.
# teamnl team_test2 ports       //查询端口,查询不到ens224端口5: ens256: up 10000Mbit FD 
# teamnl team_test2 getoption activeport
5                     //启动的端口号

在这里插入图片描述

# nmcli dev up ens224          //激活ens224连接
Device 'ens224' successfully activated with '0c24de13-a1b2-47a8-9521-0b5a643bb956'.
# teamnl team_test2 ports4: ens224: up 10000Mbit FD 5: ens256: up 10000Mbit FD 
# teamnl team_test2 getoption activeport
5
//再次激活ens224,ens224加入组合中,但当前激活的仍是ens256.

网络接口绑定和组合是指将多个网络接口绑定在一起,以提高网络性能和可用性。通过网络接口绑定,可以将多个网络接口组合为一个虚拟接口,使其具有更高的带宽和更低的延迟。这种技术通常用于服务器、交换机和路由器等网络设备上。

  • 网络接口绑定有多种形式,包括负载均衡和故障容错。 负载均衡可以将网络流量分散到多个网络接口上,以提高带宽利用率和响应时间。而故障容错可以在一个网络接口发生故障时自动切换到另一个正常的接口上,以确保网络的连续性和可靠性。
  • 网络接口组合还可以实现多路径传输,即通过多条物理路径同时传输数据,以提高网络的吞吐量和稳定性。这种技术在大规模数据中心和高性能计算环境中得到广泛应用,可以有效提升网络性能和可靠性。

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

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

相关文章

122. Kafka问题与解决实践

文章目录 前言顺序问题1. 为什么要保证消息的顺序&#xff1f;2.如何保证消息顺序&#xff1f;3.出现意外4.解决过程 消息积压1. 消息体过大2. 路由规则不合理3. 批量操作引起的连锁反应4. 表过大 主键冲突数据库主从延迟重复消费多环境消费问题后记 前言 假如有家公司是做餐饮…

web安全day03

MYSQL注入&#xff1a; SQL 注入的原理、危害及防御措施 SQL 注入的原理&#xff1a;原本的 SQL 语句在与用户可控的参数经过了如拼接、替换等字符串操作后&#xff0c;得到一个新的 SQL 语句并被数据库解析执行&#xff0c;从而达到非预期的效果。 SQL 注入的危害&#xff…

docker安装elasticsearch:7.17.21

docker安装elasticsearch:7.17.21 下载对应版本的docker镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21启动容器 docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -t docker.elastic.…

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周&#xff0c;美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务&#xff0c;即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月&#xff08;27…

如何使用Excel生成柱状图

一、先把数据表格填好 二、选择数据区域&#xff0c;点击插入→选择柱状图 三、选择好图表类型→插入预设图表 四、添加数据标签 单击柱状图→右击选择添加数据标签 五、效果如下

AI大模型探索之路-训练篇17:大语言模型预训练-微调技术之QLoRA

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

HKT x Microsoft 365 Copilot 助力企业提升工作效率

人工智能&#xff08;AI&#xff09;在工作场所的应用和整合日益增多&#xff0c;更成为塑造未来工作模式的革新趋势之一。AI不仅简化和改进了许多任务和流程&#xff0c;还为协作、沟通和创新开辟了新的机遇。不久前&#xff0c;微软新推出AI驱动的生成式生产力工具— Microso…

移除链表元素题目讲解

一&#xff1a;题目 二&#xff1a;思路讲解 方法一&#xff1a; 1&#xff1a;创建两个指针prev和cur&#xff0c;初识位置cur为head&#xff0c;prev为NULL&#xff0c;然后两个指针往后移动开始去寻找与val值吻合的节点&#xff0c;最后找到节点的时候&#xff0c;cur指向…

基于springboot实现体育馆管理系统项目【项目源码+论文说明】

基于springboot实现体育馆管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理…

delphi6直连redis服务(用lua脚本redis模块)

一、创建一个exe程序 创建一个exe程序,引用LuaRedis.pas单元(此单元自己封装的代码,目前主要封装了获取key和设置key/value功能),代码如下: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;type…

Watchdog,一双专为 Python 而生的守护者之眼

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 一个简单的库&#xff0c;也许能够开启我们的智慧之门&#xff0c; 一个普通的方法&#xff0c;也许能在危急时刻挽救我们于水深火热&#xff0c; 一个新颖的思维方式&#xff0c;也许能…

自动驾驶 | 仿真测试-HiL测试全解析

1.HiL 的定义 HiL&#xff08;Hardware-in-the-Loop&#xff09;硬件在环是计算机专业术语&#xff0c;也即是硬件在回路。通过使用 “硬件在环”(HiL) &#xff0c;可以显著降低开发时间和成本。在过去&#xff0c;开发电气机械元件或系统时,使用计算机仿真和实际的实验就已经…

antd vue pro (vue 2.x) 多页签详细操作

antd vue pro 多页签配置操作&#xff0c;具体操作如下。 1.引入 tagviews文件 在 store/modules 中创建 tagviews.js &#xff0c;复制一下代码到文件中保存 const state {visitedViews: [],cachedViews: [] }const mutations {ADD_VISITED_VIEW: (state, view) > {if …

Element-ui-vue3-前端界面开发-配置-编辑main.js-nodejs基础语法-vue3-html模板语法-vue文件编译

前端配置 1.下载nodejs 18 lts2.配置nodejs和安装vue3.vue调试技巧3.1.debugger3.2.vue devtools4.编辑main.js5.nodejs基础语法5.1.import5.1.1.导入单个模块或组件5.1.2.导入整个模块或库5.1.3.导入默认导出5.1.4.导入 css文件5.1.5.导入模块和组件5.2.export5.2.1.命名导出5…

数学建模资料|历年数维杯数学建模竞赛真题及获奖论文汇总

2024年第九届数维杯大学生数学建模挑战赛:2024年5月10日08:00-5月13日09:00举行,为了更好的帮助参赛同学了解竞赛的赛制及赛题特点,数乐君今天给大家整理了历年数维杯国赛真题及优秀论文,方便同学们赛前巩固训练,掌握解题方法,提高获奖率。 2023年数维杯国赛真题(ABC题…

如何在没有备份的情况下恢复 Mac 上丢失的数据

如果您因意外删除、错误格式化硬盘或文件损坏而丢失了重要的、感伤的文件、照片或音乐&#xff0c;那么这可能会令人非常痛苦。幸运的是&#xff0c;您有几个选择。 您的 Mac 位于数字宇宙的中心。您可能会在上面留下照片和视频形式的记忆&#xff0c;以及来自您不再见面的朋友…

前端如何设置div可滚动,且设置滚动条颜色

在前端中&#xff0c;设置 div 为可滚动并通过 CSS 自定义滚动条的颜色并不是所有浏览器都直接支持的功能&#xff0c;因为滚动条的样式在很大程度上取决于操作系统和浏览器的默认样式。然而&#xff0c;你可以使用某些 CSS 属性来尝试自定义滚动条的外观&#xff0c;这些属性在…

C语言 | Leetcode C语言题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; void swap(int *a, int *b) {int t *a;*a *b, *b t; }void sortColors(int *nums, int numsSize) {int p0 0, p2 numsSize - 1;for (int i 0; i < p2; i) {while (i < p2 && nums[i] 2) {swap(&nums[i], &num…

Linux系统 -- 创建systemd服务单元 Python 程序在系统启动时自动启动,并持续运行。

1. 创建一个名为 model_ai.service 的文件&#xff0c;并将其放置在 /etc/systemd/system/ 目录中。 2. 命令创建和编辑文件 sudo vim /etc/systemd/system/model_ai.service 3. 在打开的编辑器中&#xff0c;添加以下内容&#xff1a; [Unit] DescriptionModel AI Python S…

QT实现Home框架的两种方式

在触摸屏开发QT界面一般都是一个Home页面&#xff0c;然后button触发进入子页面显示&#xff0c;下面介绍这个home框架实现的两种方式&#xff1a; 1.方式一&#xff1a;用stackedWidget实现 &#xff08;1&#xff09;StackedWidget控件在Qt框架中是一个用于管理多个子窗口或…