【云网络】软件定义网络SDN的概念与应用(以PVE8用户隔离,TLS证书介绍,自签证书等为例)

news2024/9/21 0:52:31

【云网络】软件定义网络SDN的概念与应用(以PVE8用户隔离,TLS证书介绍,自签证书等为例)

文章目录

    • 1、软件定义网络SDN
    • 2、PVE8用户隔离(SDN工具)
    • 3、TLS证书介绍(SDN应用)
      • 3.1 证书的用途,类别,格式
      • 3.2 什么是自签证书,有什么用
      • 3.3 如何自签证书(补充)

1、软件定义网络SDN

软件定义网络(SDN)

  • 一种将网络资源抽象到虚拟化系统中的 IT 基础架构方法。这被称为网络虚拟化。
  • SDN 将网络转发功能与网络控制功能分离开来,目的是创建可集中管理且可编程的网络,这也就是说将控制平面与数据平面分离。
  • SDN 允许 IT 运维团队通过集中面板来控制复杂网络拓扑中的网络流量,而无需手动处理每个网络设备。
  • 引用:1 2,3

软件定义网络(SDN)与网络功能虚拟化(NFV)

  • 对于电信公司来说,还有一种网络抽象,称为网络功能虚拟化(NFV)。与软件定义网络类似,NFV 将网络功能从硬件中抽象出来。NFV 通过提供可运行 SDN 软件的基础架构来支持软件定义网络。
  • NFV 使提供商可以灵活地在不同服务器上运行相应的功能,或在需求发生变化时根据需要移动这些功能。有了这种灵活性,电信服务提供商可以更快地交付服务和应用。
  • 例如,如果客户请求一项新的网络功能,他们可以启动新的虚拟机(VM)来处理该请求。当不再需要该功能时,可停用此虚拟机。这是一种低风险测试潜在新服务价值的方法。
    vf - 虚拟网卡

基本概念与架构组成:

  • 控制平面与数据平面分离:
    控制平面:负责网络设备的决策和管理,例如路由选择和流量工程。
    数据平面:负责数据包的实际转发和处理。通过将这两个平面分离,SDN 使得网络管理更集中化和灵活。
  • 集中化控制:SDN 采用一个或多个集中式控制器来管理网络设备(如交换机和路由器),提供统一的管理界面。
  • SDN 控制器: SDN 的核心组件,处理网络流量的控制逻辑,使用开放协议(如 OpenFlow)与网络设备通信。
  • 数据平面设备:包括交换机和路由器,这些设备根据控制器的指令来转发流量。
  • 应用层:运行在 SDN 控制器上的应用程序,提供网络服务、策略管理和网络监控等功能。

自己实现一个SDN网络:

  • 硬件选型:
    物理设备:选择支持 OpenFlow 协议的交换机和路由器,或者使用虚拟交换机如 Open vSwitch (OVS)。
    服务器:用于运行 SDN 控制器和其他网络应用。
  • 软件选型
    操作系统:Linux 是推荐的操作系统,因为许多 SDN 工具和控制器在 Linux 环境下表现最佳。
    编程语言:Python、Java 和 Go 是实现 SDN 应用和控制器的常用语言。
  • 开源 SDN 控制器:
    Open daylight:一个功能强大的开源 SDN 控制器,支持多种协议。
    Floodlight:一个轻量级的 Java 控制器,易于使用和扩展。
    Ryu:基于 Python 的控制器,适合开发快速原型。
  • 搭建基础网络环境
    规划网络拓扑,设计网络结构(如星型、环形等),考虑网络中的设备之间的连接方式。
    安装 Open vSwitch,创建虚拟交换机并配置端口
  • 配置SDN控制器
    安装控制器:根据选择的控制器,参照官方文档安装并配置。
    连接交换机:配置交换机与控制器的连接,确保 OpenFlow 协议正确配置。
  • 开发SDN应用
    使用控制器的 API 开发自定义应用,监控流量、调整流表、实现负载均衡等功能。
    (网络管理与SDN:私有子网,虚拟IP,访问控制,安全组, 带宽管理,网络拓扑管理, 网络故障检测和恢复, 虚拟网络功能)
    (相关应用但不属于SDN的:负载均衡,证书管理,DNS域名管理,安全防火墙,网络监控,边缘计算

PVE集成的SDN的使用

  • 引用1, 2
  • Proxmox VE SDN 允许使用灵活的软件控制配置对虚拟访客网络进行分离和细粒度控制。
    分离是通过区域进行管理的,其中区域是其自己的虚拟分离网络区域。VNet是一种连接到区域的虚拟网络。根据区域使用的类型或插件,它的行为可能有所不同,并提供不同的功能、优点和缺点。通常,VNet 显示为带有 VLAN 或VXLAN标记的常见 Linux 网桥,但是,有些也可以使用第 3 层路由进行控制。从集群范围的数据中心 SDN 管理界面进行配置后,VNet会本地部署在每个节点上。
  • 在 Web 界面上,SDN 具有 3 个主要部分:
    SDN:SDN 状态概述
    区域:创建和管理虚拟分离的网络区域
    VNet:创建虚拟网桥并管理子网
  • 除此之外,还提供以下选项:
    控制器:用于控制复杂设置中的第 3 层路由
    子网:用于在 VNet 上定义的 IP 网络
    IPAM:允许使用外部工具进行 IP 地址管理(来宾 IP)
    DNS:定义 DNS 服务器 API,用于注册虚拟访客的主机名和 IP 地址

2、PVE8用户隔离(SDN工具)

参考资料:1

什么是用户隔离

  • PVE8在Web管理后台集成了易于操作的SDN(软件定义网络)功能插件,其实质是对不同的PVE用户指定不同的网络,进行逻辑隔离,避免不同的用户设置相同的网络地址而产生冲突。
  • 例如用户A,给他指定地址段172.16.10.0/24,另外一个用户的地址段是172.16.20.0/24,如果这个用户A,误操作把它所管理的虚拟机设置成B用户所在网段的地址,是不会有效的,也不会对其他用户产生影响。

功能实现

# 安装包
apt update
apt install libpve-network-perl
apt install dnsmasq
apt install frr-pythontools

# 修改宿主机的网络配置。
Debian命令行下,进入目录“/etc/network”
将文本行“source /etc/network/interfaces.d/*”追加到网络配置文件“interfaces”
注意别丢掉那个星号通配符。

测试验证

  • 在单节点上两个资源池、创建两个组及用户,两个虚拟网络并将分别授权给已经创建好的用户组,接着创建两个虚拟机,使虚拟机属于不同的网络及资源组。
  • PVE数据中心级别,权限-群组=创建,创建了两个群组。
  • PVE数据中心级别,分别创建两个用户,隶属于两个不同的群组。
  • 创建SDN区域:即虚拟网络隔离标识,PVE支持五种类型的隔离方式,它们是:Simple、VLAN、QinQ、VxLAN、EVPN。以Simple区域为例。
  • PVE数据中心级别,SDN-区域-创建,2个区域,选择对应物理节点。
  • 数据中心级别,SDN-Vnets-创建,选择对应区域。
  • 选定已经创建好的虚拟网络(Vnet),创建子网(虚拟网段),输入网络地址及默认网关,并勾选“SNAT”(源地网络地址转换)。应用SDN后生效。
  • 创建两个虚拟机,使其属于两个不同的资源组,并为其指定不同的桥接网卡(虚拟网卡)。

3、TLS证书介绍(SDN应用)

3.1 证书的用途,类别,格式

数字证书通常是用于加密和认证的,主要应用于 HTTPS,但并不局限于此。以下是一些常见的用途:

  1. HTTPS: 证书确保与服务器之间的通信是加密的,保护数据传输的安全性。
  2. 邮件安全: 如 S/MIME 证书,用于加密和签名电子邮件。
  3. 代码签名:软件开发者使用证书对应用程序和软件进行签名,确保代码在传输过程中未被修改,并表明发布者的身份。
  4. VPN:用于建立和验证虚拟专用网络的安全连接。
  5. 身份验证:硬件安全模块(HSM)和其他设备使用证书进行身份验证。
  6. 其他协议:如 FTPS、SMTPS,也会使用证书进行安全通信。

介绍一下HTTPS的应用

  • HTTPS 其实是有两部分组成:HTTP + SSL/TLS
  • 也就是在 HTTP 的基础上又加了一层处理加密信息的模块。
  • 服务端和客户端的信息传递都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。
  • TLS和SSL的区别:
    TLS 是 SSL 的继任者,提供了更好的安全性和性能。在现代网络通信中,通常使用 TLS,因为 SSL 已被认为不再安全。大多数应用和系统现在都支持 TLS,而不再使用 SSL。因此,建议使用最新版本的 TLS(目前为 TLS 1.3)来确保最高的安全级别。
    SSL:使用较老的加密算法,某些算法在现代安全标准下被认为是不安全的。
    TLS:支持更多现代的加密算法,并允许使用更强的加密方法。
    TLS:通常可以与较旧版本的 SSL 进行兼容,但不建议使用 SSL。

证书的类别

  • SSL/TLS 证书
    域名验证 (DV):确认域名所有权,适合小型网站。
    企业验证 (OV):验证域名及组织身份,适合商业网站。
    扩展验证 (EV):进行严格验证,提供最高信任级别,适合大型或交易型网站。
  • 代码签名证书
    用于对软件应用进行签名,以确保代码的完整性和发布者的身份。
  • S/MIME 证书
    用于加密和签名电子邮件,确保邮件的私密性和完整性。
  • 客户端证书
    用于验证用户身份,常用于 VPN 访问和安全区域。
  • 根证书和中间证书
    根证书:信任链的顶层,用于签名中间证书。
    中间证书:由根证书签发,用于签发终端证书,提供证书链。

证书的格式(PEM, DER, CRT, CER, KEY等各类证书与密钥文件后缀解析)

  • .crt和.key分别代表证书和私钥文件,扩展名是按照文件用途来分的。而.pem是一种文件格式, pem文件是文本格式的,其他证书格式还有DER。引用, 2
  • 所以证书.crt和.key文件可以是PEM格式文件, 也可以是其他证书格式比如DER(二进制格式)
  • nginx证书文件可以重命名,如果你喜欢用文件格式命名。 mv signed.crt cert.pem 。mv signed.key key.pem。

3.2 什么是自签证书,有什么用

参考资料:1, 2-自签, 3-介绍, 5-github

自签证书介绍

  • 定义:自签证书是指由证书所有者自我签署的证书,而不是由受信任的证书颁发机构(CA)签署。
  • 受信任性:自签证书不会被默认信任。用户需要手动安装证书的信任链。
  • 用途:可以用于内部开发、测试环境、私人网络等,适合不需要公信力的场合。
  • 成本:创建和管理自签证书成本低,无需支付给第三方 CA。
  • 证书自签背后的逻辑:密钥对:每个证书都有一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据
  • 签名过程:自签证书用私钥对证书的哈希值进行签名,生成签名部分。其他方用公钥验证这个签名。
  • 信任模型:在正式环境中,信任模型依赖于 CA 链,但 在自签证书中,信任完全依赖于使用者手动验证
  • 自签证书在不同场合(如 HTTPS 网站、客户端验证、代码签名等)的使用需求和签名方式基本上是相同的,但关键的区别在于证书的具体内容和使用的扩展字段
  • HTTPS 证书:
    必须包含用于身份验证的域名(CN 或 Subject Alternative Name)。
    常用的扩展字段包括 Key Usage 和 Extended Key Usage,通常指定为 TLS Web Server Authentication。
  • 客户端证书:
    用于用户或设备身份验证,通常在扩展字段中指明 Client Authentication。
    也需要包含用户或设备的特定信息。
  • 代码签名证书:
    针对软件的签名验证,适合将 Code Signing 设置为扩展用途。
    证书内容可能包括开发者的身份或组织信息。

以ssh服务的pem证书为例

# 生成证书
ssh-keygen -t rsa -b 2048 -m PEM -f notice-server.pem
ssh-copy-id -i notice-server.pem.pub root@xxx

# 使用
chmod 400 notice-server.pem
ssh -i notice-server.pem root@xxx
scp -i notice-server.pem /xxx root@xxx:/xxx

以nginx部署https需要的服务为例

# 1、创建证书, 密钥文件(key)
[root@Nginx ~]# openssl genrsa -des3 -out server.key 1024
...
Enter pass phrase for server.key:                       # 输入密码
Verifying - Enter pass phrase for server.key:                 # 确认密码

# 2、创建证书,申请文件(csr)
[root@Nginx ~]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:                       # 输入前面创建的密码
...
Country Name (2 letter code) [XX]:CN                      # 国家代号. 中国输入 CN
State or Province Name (full name) []:Shanghai                 # 省的全名. 拼音
Locality Name (eg, city) [Default City]:Shanghai                 # 市的全名. 拼音
Organization Name (eg, company) [Default Company Ltd]:xxx            # 公司英文名
Organizational Unit Name (eg, section) []:                    # 可以不输入
Common eg your name or your server s hostname []:www.xxx.com     # 域名
Email Address []:xxx@163.com                     # 电子邮箱. 可随意填
A challenge password []:                            # 可以不输入
An optional company name []:                          # 可以不输入

# 3、备份一份服务器密钥文件 & 去除文件口令
(注意这里不去除口令的话后面证书用不了)
[root@Nginx ~]# cp server.key server.key.org
[root@Nginx ~]# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:                     # 输入密码

# 4、创建证书,证书本体(crt, 或者说pem)
[root@Nginx ~]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=Coco/CN=www.Coco.com/emailAddress=ChenZhuang1217@163.com
Getting Private key

其他,如安装软件时,手动信任证书等等。

3.3 如何自签证书(补充)

以软件为例

在macOS上生成自签名证书并导入到系统信任的证书中:

#!/bin/bash

# 设置主机名和有效期
HOSTNAME="localhost"
DAYS_VALID=365
CERT_NAME="rewinged"

# 提取本地IP地址
IP_LIST=$(ifconfig en0 | grep 'inet ' | awk '{print $2}' | awk '{for (i=0;i<NF;i++)printf("IP:%s,",$i);} END {print "";}'| sed 's/,$//')

# 生成subjectAltName部分
SAN="DNS:$HOSTNAME"
if [ -n "$IP_LIST" ]; then
    SAN+=",${IP_LIST}"
fi

# 创建OpenSSL配置文件
OPENSSL_CONF="openssl.cnf"
cat > $OPENSSL_CONF << EOF
[req]
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_ca
prompt = no

[req_distinguished_name]
commonName = $HOSTNAME

[req_ext]
subjectAltName = $SAN

[v3_ca]
subjectAltName = $SAN
EOF

# 生成私钥和证书
openssl req -x509 -newkey rsa:2048 -keyout private.key -out cert.pem -days $DAYS_VALID -nodes -config $OPENSSL_CONF

# 添加私钥和证书到系统钥匙串
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" cert.pem

# 删除OpenSSL配置文件
rm $OPENSSL_CONF

powershell自签
windows添加证书

# Because we are adding a certificate to the local machine store, this has to be run in an elevated PowerShell session

$IPs = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() |
    Foreach-Object GetIPProperties |
    Foreach-Object UnicastAddresses |
    Foreach-Object Address |
    Foreach-Object {
        "&IPAddress=$( [System.Net.IPAddress]::new($_.GetAddressBytes() ))"
    }

[string]$SanIPs = -join $IPs

$SelfSignedCertificateParameters = @{
    'Subject'         = 'localhost'
    'TextExtension'   = @("2.5.29.17={text}DNS=localhost${SanIPs}")
    'NotAfter'        = (Get-Date).AddYears(1)
    'FriendlyName'    = 'rewinged HTTPS'
    'KeyAlgorithm'    = 'RSA'
    'KeyExportPolicy' = 'Exportable'
}
$cert = New-SelfSignedCertificate @SelfSignedCertificateParameters

$RSAPrivateKey    = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$PrivateKeyBytes  = $RSAPrivateKey.Key.Export([System.Security.Cryptography.CngKeyBlobFormat]::Pkcs8PrivateBlob)
$PrivateKeyBase64 = [System.Convert]::ToBase64String($PrivateKeyBytes, [System.Base64FormattingOptions]::InsertLineBreaks)

$CertificateBase64 = [System.Convert]::ToBase64String($cert.Export('Cert'), [System.Base64FormattingOptions]::InsertLineBreaks)

Set-Content -Path private.key -Encoding Ascii -Value @"
-----BEGIN RSA PRIVATE KEY-----`r`n${PrivateKeyBase64}`r`n-----END RSA PRIVATE KEY-----
"@

Set-Content -Path cert.pem -Encoding Ascii -Value @"
-----BEGIN CERTIFICATE-----`r`n${CertificateBase64}`r`n-----END CERTIFICATE-----
"@

$store = [System.Security.Cryptography.X509Certificates.X509Store]::new('Root', 'LocalMachine')
$store.Open('ReadWrite')
$store.Add($cert)
$store.Close()

Remove-Item $cert.PSPath

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

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

相关文章

Python 从入门到实战23(属性property)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了类的定义、使用方法的相关知识。今天我们将学…

【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))

Host 表示服务器主机的地址和端口号 URL 里面不是已经有 Host 了吗&#xff0c;为什么还要写一次&#xff1f; 这里的 Host 和 URL 中的 IP 地址、端口什么的&#xff0c;绝大部分情况下是一样的&#xff0c;少数情况下可能不同当前我们经过某个代理进行转发。过程中&#xf…

【JAVA开源】基于Vue和SpringBoot的蜗牛兼职平台

本文项目编号 T 034 &#xff0c;文末自助获取源码 \color{red}{T034&#xff0c;文末自助获取源码} T034&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 平台架构1.2 管理后台1.3 用户网页端1.4 技术特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景…

LinuxC高级作业2

1.整理思维导图 2.做一套笔试题 一&#xff1a; 1.cd .. mkdir dir1 cd dir1 touch file1 2.cp ~/mnt/dir1/ -r * ~/home/dir2/ 3.pwd 4.ls -l 5.ifconfig 6.top 10.find /usr -type f -name "*name*" 11.:wq 13.df -h 14.tar -xzvf tmp.tar.gz 15.sudo c…

我的数据库旅程:从迷茫到觉醒

我的数据库旅程&#xff1a;从迷茫到觉醒 《中国数据库前世今生》纪录片的上线&#xff0c;使我回顾了中国数据库技术的演进历程&#xff0c;也联想到了自己在这一领域的工作经历。数据库技术从80年代在中国的初步应用到如今蓬勃发展&#xff0c;贯穿了整个信息化进程。作为一名…

【Qt之·文件操作·类QTextStream、QDataStream】

系列文章目录 文章目录 前言一、概述1.1 QTextStream类1.2 QTextStream类的作用和用途 二、基本用法2.1 QTextStream成员函数2.2 QTextStream格式描述符、描述符方法2.3 QDataStream成员函数2.4 创建QTextStream对象并关联输入/输出设备&#xff08;如文件、标准输入/输出流等&…

EPSILON环境配置和本地测试

文章目录 一、环境配置1.1 拉取镜像构建容器1.2 在容器中安装常用的包1.3 安装依赖1.4 安装OOQP1.4.1 安装blas1.4.2 安装ma271.4.3 安装OOQP 1.5 安装Protobuf 二、本地编译测试2.1 拉取源码并编译2.2 X11转发docker图形化界面2.3 测试一个小例子 三、镜像 一、环境配置 宿主…

Vue3:$attrs实现组件通信

目录 一.性质 1.响应式 2.包含所有非prop属性 3.动态属性 二.作用 1.访问非prop属性 2.灵活性 3.组件重用 三.使用 1.爷爷组件 2.父亲组件 3.儿子组件 四.代码 1.爷爷组件代码 2.父亲组件代码 3.孙子组件代码 五.效果图 在Vue 3中&#xff0c;$attrs 是一个响…

string类的模拟实现以及oj题

前言 上篇博客实现了string类的begin()、end()、构造函数、析构函数、c_str、size()、clear()、capacity()、[ ]、reserve()、push_back、append()、insert()、。这篇博客实现剩下的一些重要功能。 string类的模拟实现 string.h #include<iostream> #include<stri…

稳了,搭建Docker国内源图文教程

大家好&#xff0c;之前分享了我的开源作品 Cloudflare Workers Proxy&#xff0c;它的作用是代理被屏蔽的地址&#xff0c;理论上支持代理任何被屏蔽的域名&#xff0c;使用方式也很简单&#xff0c;只需要设置环境变量 PROXY_HOSTNAME 为被屏蔽的域名&#xff0c;最后通过你的…

强化信息安全:密码机密钥管理的策略与实践

强化信息安全&#xff1a;密码机密钥管理的策略与实践 随着信息技术的飞速发展&#xff0c;信息安全已成为企业和社会关注的焦点。密码机作为加密通信和数据保护的关键设备&#xff0c;其密钥管理直接关系到整个信息系统的安全性。本文旨在探讨密码机密钥管理的策略与实践&…

如何根据协议请求去捕捉在个文件中发出去的

场景&#xff1a;随着业务越来越复杂&#xff0c;一个“触发”可能发出去N个协议&#xff0c;此时有某一个协议发生了报错&#xff0c;需要去找这个协议&#xff0c;去文件中走读逻辑&#xff0c;去找该协议&#xff0c;效率很慢&#xff0c;业务极其复杂的情况下&#xff0c;很…

渐变色代码主题你受得了吗

分享一个vscode编辑器的渐变色主题 效果图如下 vscode扩展搜索 gradient theme安装即可。

毕业设计选题:基于springboot+vue+uniapp的驾校报名小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

二级C语言2023-9易错题

1 二叉树结点数计算&#xff1a; 一棵二叉树有10个度为1的结点&#xff0c;7个度为2的结点&#xff0c;则该二叉树共有____个结点。 解&#xff1a; 2 指针&#xff1a; 有以下程序 #inctude<stdio.h> #include<stdlib.h> main() { int *a&#xff0c;*b&…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核&#xff08;LiteOS-M&#xff09; 轻量系统内核&#…

CSS01-语法规范、基础选择器

一、CSS语法规范 示例&#xff1a; 二、CSS的基础选择器 选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用。 简单来说&#xff0c;就是选择标签用的。 选择器的分类&#xff1a; 1、标签选择器 2、类选择器&#xff08;开发最常用&#xff09; 长字符命名…

本地搭建我的世界服务器(JAVA)简单记录

网上参考教程挺多的&#xff0c;踩了不少坑&#xff0c;简单记录一下&#xff0c;我做的是一个私人服务器&#xff0c;就是和朋友3、4个人玩。 笨蛋 MC 开服教程 先放一个比较系统和完整的教程&#xff0c;萌新可用&#xff0c;这个教程很详细&#xff0c;我只是记录一下自己的…

相亲交友系统源码 连接你我,不再孤单

在这个数字时代&#xff0c;人们的生活方式已经发生了巨大的变化。随着工作压力增大和社会竞争激烈化&#xff0c;很多人发现自己很难有时间和机会去结识新的朋友&#xff0c;更不用说找到适合自己的伴侣了。相亲交友系统正是在这种背景下应运而生&#xff0c;它不仅简化了交友…

操作系统 | 学习笔记 | | 王道 | 5.2 设备独立软件

5.2 设备独立性软件 IO核心子系统 磁盘IO也属于IO调度问题 5.2.1 与设备无关的软件 与设备无关的软件是I/O系统的最高层软件&#xff0c;它的下层是设备驱动程序。 设备保护&#xff1a; 操作系统需要实现文件保护功能&#xff0c;不同的用户对各个文件有不同的访问权限&am…