【配置网络和使用ssh服务】

news2024/11/16 2:55:15

文章目录

  • 一、配置文件
  • 二、配置网络
    • 1.使用系统菜单配置网络
    • 2.通过网卡配置文件配置网络
    • 3.使用图形界面配置网络
    • 4.使用nmcli命令配置网络
  • 三、配置远程控制服务
    • 1.配置sshd服务
    • 2.安全密钥验证
    • 3.远程传输命令


一、配置文件

跟网络有关的主要配置文件如下:

/etc/host.conf 配置域名服务客户端的控制文件
/etc/hosts 完成主机名映射为IP地址的功能
/etc/resolv.conf 域名服务客户端的配置文件,用于指定域名服务器位置
/etc/sysconfig/network 包含了主机最基本的网络信息,用于系统启动
/etc/sysconfig/network-script/ 系统启动时初始化网络的一些信息
/etc/networks 完成域名与网络地址的映射
/etc/protocols 设定了主机使用的协议以及各个协议的协议号
/etc/services 设定主机的不同端口的网络服务

在/etc/sysconfig/network-scripts/目录下有很多跟网络相关的脚本文件,其中:

  • ifcfg-是网络配置文件
  • ifup-是开启网络接口的脚本文件
  • ifdown-是关闭网络接口的脚本文件

在这里插入图片描述
打开ifcfg-ens33,里面有跟网络相关的配置信息。
在这里插入图片描述

二、配置网络

1.使用系统菜单配置网络

在图形化界面的系统中,通过鼠标点击,输入相关网络信息配置。
(1)单击有线连接设置
在这里插入图片描述
(2)单击齿轮进行配置
在这里插入图片描述
(3)配置网络信息,IP地址,掩码,网关,DNS等信息,最后单击“Apply”。
在这里插入图片描述
(4)关闭重启,配置才能生效。
在这里插入图片描述

2.通过网卡配置文件配置网络

在/etc/sysconfig/network-scripts/目录中存放着网卡配置文件,以ifcfg开头的文件(ifcfg-网络接口名称)。通过vim打开并编辑,然后wq保存退出。

步骤:
(1)切换到/etc/sysconfig/network-scripts/目录;
(2)vim ifcfg-ens33,逐项写入配置并保存退出。
主要参数如下:

设备类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static
连接配置名称:NAME=ens33
设备名称:DEVICE=ens33
是否启动:ONBOOT=yes
IP地址:IPADDR=192.168.10.1
子网掩码:NETMASK=255.255.255.0
网关地址:GATEWAY=192.168.10.1
DNS地址:DNS1=192.168.10.1

在这里插入图片描述

(3)重启网络服务

systemctl restart network

(4)ping命令测试,或使用ifconfig命令查看信息

[root@RHEL7-1 network-scripts]# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.095 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.048 ms
……

3.使用图形界面配置网络

(1)使用nmuti配置网络

[root@RHEL7-1 network-scripts]# nmtui

(2)选择“Edit a connection”
在这里插入图片描述
(3)选择要编辑的网卡名称,然后选择“Edit”按钮
在这里插入图片描述
(4)把IP的配置方式改为manual(手动),然后输入信息,然后单击“OK”按钮。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)按“<back>”按钮回到nmtui图形界面初始状态,选中“Activate a connection”选项,激活刚才的连接“ens33”。前面有“*”号表示激活。
在这里插入图片描述
在这里插入图片描述

4.使用nmcli命令配置网络

常用命令

nmcli connection show:显示所有连接。
nmcli connection show --active:显示所有活动的连接状态。
nmcli connection show “ens33”:显示网络连接配置。
nmcli connection add help:查看帮助。
nmcli connection add :添加连接。
nmcli connection modify:修改连接。
nmcli connection delete:删除连接。
nmcli connection reload:重新加载配置。
nmcli connection down test2:禁用test2的配置,注意一个网卡可以有多个配置。
nmcli connection up test2:启用test2的配置。
nmcli device status:显示设备状态。
nmcli device show ens33:显示网络接口属性,类型、IP、网关…
nmcli device disconnect ens33:禁用ens33网卡,物理网卡。
nmcli device connect ens33:启用ens33网卡。

(1)创建新连接default,IP通过DHCP自动获取。

[root@RHEL7-1 ~]# nmcli connection show
NAME    UUID                                                                     TYPE         DEVICE 
ens33   9d5c53ac-93b5-41bb-af37-4908cce6dc31  806-3-ethernet  ens33  

[root@RHEL7-1 ~]# nmcli connection add con-name default type Ethernet ifname ens33
Connection 'default' (ffe127b6-ece7-40ed-b649-7082e86c0775) successfully added.

(2)删除连接

[root@RHEL7-1 ~]# nmcli connection delete default
Connection 'default' (ffe127b6-ece7-40ed-b649-7082e86c0775) successfully deleted.

(3)创建新的连接配置test2,指定静态IP,不自动连接。

[root@RHEL7-1 ~]# nmcli connection add con-name test2 ipv4.method manual ifname ens33 autoconnect no type Ethernet ipv4.addresses 192.168.10.100/24 gw4 192.168.10.1
Connection 'test2' (7b0ae806-1bb7-41a3-92ad-5a1587eb367f) successfully added.

参数说明:

con-name:指定连接名字,没有特殊要求。
ipv4.method:指定获取IP地址的方式(manual 静态ip,auto自动获取)。
ifname:指定网卡设备名,也就是次配置所生效的网卡。
type:类型(以太网等)
autoconnect:指定是否自动启动。
ipv4.addresses:指定IPv4地址。
gw4:指定网关。
ipv4.dns:指定DNS

(4)查看/etc/sysconfig/network-scripts/目录,多出一个文件/etc/sysconfig/network-scripts/ifcfg-test2,说明添加生效了。

[root@RHEL7-1 ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33  
/etc/sysconfig/network-scripts/ifcfg-test2

(5)启用test2连接配置

[root@RHEL7-1 ~]# nmcli connection up test2
Connection successfully activated (D-Bus active path: /org/freedesktop/ NetworkManager/ActiveConnection/6)
[root@RHEL7-1 ~]# nmcli  connection show
NAME    UUID                                  TYPE            DEVICE 
test2   7b0ae806-1bb7-41a3-92ad-5a1587eb367f  806-3-ethernet  ens33  
ens33   9d5c53ac-93b5-41bb-af37-4908cce6dc31  806-3-ethernet  --  

至此,添加连接并启动成功,并且可以看到/etc/sysconfig/network-scripts/ifcfg-test2信息。

其它常见连接设置:
(1)修改test2自动启动

[root@RHEL7-1 ~]#  nmcli connection modify test2 connection.autoconnect yes

(2)修改DNS为192.168.10.1

[root@RHEL7-1 ~]# nmcli connection modify test2 ipv4.dns 192.168.10.1

(3)添加DNS为114.114.114.114

[root@RHEL7-1 ~]# nmcli connection modify test2 +ipv4.dns 114.114.114.114

(4)删除DNS

[root@RHEL7-1 ~]# nmcli connection modify test2 -ipv4.dns 114.114.114.114

(5)修改IP地址和默认网关

[root@RHEL7-1 ~]# nmcli connection modify test2 ipv4.addresses 192.168.10.200/24 gw4 192.168.10.254 

(6)添加多个IP

[root@RHEL7-1 ~]# nmcli connection modify test2 +ipv4.addresses 192.168.10.250/24
[root@RHEL7-1 ~]# nmcli  connection  show  "test2"

三、配置远程控制服务

1.配置sshd服务

SSH(Secure shell)是一种能够以安全的方式提供远程登录的协议。

想要使用SSH协议来远程管理Linux系统,则需要部署配置sshd服务程序。sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供了以下两种安全验证的方法。

  • 基于口令的验证—用账户和密码来验证登录。
  • 基于密钥的验证—在本地生成密钥对,把密钥对中的公钥上传至服务器。

接下来进行配置:
(1)环境搭建
计算机名为RHEL 7-1,角色为RHEL 7服务器,IP为192.168.10.1/24。
计算机名为RHEL 7-2,角色为RHEL 7客户机,IP为192.168.10.20/24。

(2)使用ssh命令在RHEL 7-2上远程连接RHEL 7-1。

格式:ssh [参数] 主机IP地址

[root@RHEL7-2 ~]# ssh 192.168.10.1
The authenticity of host '192.168.10.1 (192.168.10.1)' can't be established.
ECDSA key fingerprint is SHA256:f7b2rHzLTyuvW4WHLjl3SRMIwkiUN+cN9y1yDb9wUbM.
ECDSA key fingerprint is MD5:d1:69:a4:4f:a3:68:7c:f1:bd:4c:a8:b3:84:5c:50:19.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.1' (ECDSA) to the list of known hosts.
root@192.168.10.1's password: 此处输入远程主机root管理员的密码
Last login: Wed May 30 05:36:53 2018 from 192.168.10.
[root@RHEL7-1 ~]# 
[root@RHEL7-1 ~]# exit
logout
Connection to 192.168.10.1 closed.

禁止以root管理员的身份远程登录到服务器,大大降低被黑客暴力破解密码的概率,进行如下配置。
(1)使用vim文本编辑器打开sshd服务的主配置文件,然后把第38行#PermitRootLogin yes参数前的井号(#)去掉,并把参数值yes改成no,这样就不再允许root管理员远程登录了,最后保存文件并退出。

[root@RHEL7-1 ~]# vim /etc/ssh/sshd_config 
 ……
 36 
 37 #LoginGraceTime 2m
 38 PermitRootLogin no
 39 #StrictModes yes
 
 ……

(2)重启sshd服务

[root@RHEL7-1 ~]# systemctl restart sshd
# 也可以将服务程序加入到开机启动项中
[root@RHEL7-1 ~]# systemctl enable sshd

(3)当root管理员再来尝试访问sshd服务程序时,系统会提示不可访问的错误信息。

[root@RHEL7-2 ~]# ssh 192.168.10.1
root@192.168.10.10's password:此处输入远程主机root管理员的密码
Permission denied, please try again.

2.安全密钥验证

加密是对信息进行编码和解码的技术,在传输数据时,如果担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样,只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。

下面使用密钥验证方式,以用户student身份登录SSH服务器,具体配置如下。
计算机名为RHEL 7-1,角色为RHEL 7服务器,IP为192.168.10.1/24。
计算机名为RHEL 7-2,角色为RHEL 7客户机,IP为192.168.10.20/24。

(1)创建用户

[root@RHEL7-1 ~]# useradd student
[root@RHEL7-1 ~]# passwd student

(2)在客户端主机RHEL 7-2中使用ssh-kengen命令生成“密钥对”。查看公钥id_rsa.pub和私钥id_rsa。

[root@RHEL7-2 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //按回车键或设置密钥的存储路径
Enter passphrase (empty for no passphrase): //直接按回车键或设置密钥的密码
Enter same passphrase again: //再次按回车键或设置密钥的密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jSb1Z223Gp2j9HlDNMvXKwptRXR5A8vMnjCtCYPCTHs root@RHEL7-1
The key's randomart image is:
+---[RSA 2048]----+
|     .       o...|
|    + . .   * oo.|
|     = E.o o B  o|
|      o. +o B..o |
|      . S ooo+= =|
|       o  .o...==|
|         . o o.=o|
|          o ..=o+|
|           ..o.oo|
+----[SHA256]-----+ 
[root@RHEL7-2 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCurhcVb9GHKP4taKQMuJRdLLKTAVnC4f9Y9 H2Or4rLx3YCqsBVYUUn4gSzi8LAcKPcPdBZ817Y4a2OuOVmNW+hpTR9vfwwuGOiU1Fu4Sf5/14qgkd5EreUjE/KIPlZVNX904blbIJ90yu6J3CVz6opAdzdrxckstWrMSlp68SIhi517OVqQxzA+2G7uCkplh3pbtLCKlz6ck6x0zXd7MBgR9S7nwm1DjHl5NWQ+542Z++MA8QJ9CpXyHDA54oEVrQoLitdWEYItcJIEqowIHM99L86vSCtKzhfD4VWvfLnMiO1UtostQfpLazjXoU/XVp1fkfYtc7FFl+uSAxIO1nJ root@RHEL7-2
[root@RHEL7-2 ~]# cat /root/.ssh/id_rsa

(3)使用ssh-copy-id命令把客户端主机RHEL 7-2中生成的公钥文件传送至远程主机。

[root@RHEL7-2 ~]# ssh-copy-id student@192.168.10.1
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
student@192.168.10.1's password: //此处输入远程服务器密码
 
Number of key(s) added: 1
 
Now try logging into the machine, with:   "ssh 'student@192.168.10.1'"
and check to make sure that only the key(s) you wanted were added.

(4)对服务器RHEL 7-1进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。将“PasswordAuthentication yes”改为“PasswordAuthentication no”。在修改配置文件后保存并重启sshd服务程序。

[root@RHEL7-1 ~]# vim /etc/ssh/sshd_config 
 ……
 74 
 62 # To disable tunneled clear text passwords, change to no here!
 63 #PasswordAuthentication yes
 64 #PermitEmptyPasswords no
 65 PasswordAuthentication no
 66 
 ……
[root@RHEL7-1 ~]# systemctl restart sshd

(5)在客户端RHEL 7-2上尝试使用student用户远程登录到服务器,此时无须输入密码也可成功登录。同时利用ifconfig命令可查看到ens33的IP地址是192.168.10.1,也即RHEL 7-1的网卡和IP地址,说明已成功登录到了远程服务器RHEL 7-1上。

[root@RHEL7-2 ~]# ssh student@192.168.10.1
Last failed login: Sat Jul 14 20:14:22 CST 2018 from 192.168.10.20 on ssh:notty
There were 6 failed login attempts since the last successful login.

[student@RHEL7-1 ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.1  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::4552:1294:af20:24c6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:2b:88:d8  txqueuelen 1000  (Ethernet)
		……

(6)在RHEL 7-1上查看RHEL 7-2客户机的公钥是否传送成功。这里可以看到成功传送。

[root@RHEL7-1 ~]# cat /home/student/.ssh/authorized_keys 

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCurhcVb9GHKP4taKQMuJRdLLKTAVnC4f9Y9 H2Or4rLx3YCqsBVYUUn4gSzi8LAcKPcPdBZ817Y4a2OuOVmNW+hpTR9vfwwuGOiU1Fu4Sf5/14qgkd5EreUjE/KIPlZVNX904blbIJ90yu6J3CVz6opAdzdrxckstWrMSlp68SIhi517OVqQxzA+2G7uCkplh3pbtLCKlz6ck6x0zXd7MBgR9S7nwm1DjHl5NWQ+542Z++MA8QJ9CpXyHDA54oEVrQoLitdWEYItcJIEqowIHM99L86vSCtKzhfD4VWvfLnMiO1UtostQfpLazjXoU/XVp1fkfYtc7FFl+uSAxIO1nJ root@RHEL7-2

3.远程传输命令

scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令。
格式:

scp [参数] 本地文件 远程帐户@远程IP地址:远程目录

例题:把本地文件/root/myout.txt传送到地址为192.168.10.20的远程主机的/home目录下。

scp /root/myout.txt root@192.168.10.20:/home

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

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

相关文章

RS232、RS485、RS422、RS423、RS449的联系与区别

这些标准&#xff08;RS232、RS485、RS422、RS423、RS449&#xff09;都涉及将并行数据转换为串行数据进行传输&#xff1a; 数据转换过程&#xff1a; 在发送端&#xff0c;并行数据&#xff08;通常是字节或字&#xff09;被转换成串行比特流。 在接收端&#xff0c;串行比特…

CH552G使用的pwm出现的问题,及设置

输出pwm的频率周期很不准确 可能是因为没有外部晶振的稳定晶振周期有关。 使用的示波器出现操作失误 在使用小型示波器的过程中发现集成了信号发生器和示波器的连接端口是不同的。刚开始把示波器测试口错插入了信号发生器的接口&#xff0c;困扰好一会儿&#xff0c;幸好用一…

Zabbix 配置WEB监控

Zabbix WEB监控介绍 在Zabbix中配置Web监控&#xff0c;可以监控网站的可用性和响应时间。Zabbix提供了内置的Web监控功能&#xff0c;通过配置Web场景&#xff08;Web Scenario&#xff09;&#xff0c;可以监控HTTP/HTTPS协议下的Web服务。 通过Zabbix的WEB监控可以监控网站…

超声波气象站的工作原理

TH-CQX5超声波气象站中的超声波技术是其核心工作原理之一&#xff0c;以下是关于超声波气象站中超声波的详细解释&#xff1a;超声波是一种频率高于人耳能听到的声音频率范围的声波&#xff0c;通常指频率在20kHz以上的声波。超声波具有较短的波长和强的穿透能力&#xff0c;能…

vue安装+测试

1.下载node.js 在浏览器中打开nodejs官网https://nodejs.org/zh-cn/ &#xff0c;选择需要的版本 2.检查nodejs是否安装成功 打开cmd&#xff0c;输入命令 node -v PS C:\Users\neuer> node -v v20.15.03.安装cnpm 遇到npm ERR! code CERT_HAS_EXPIRED问题 清除npm缓存 n…

【TS】交叉类型 和 联合类型

文章目录 1. 交叉类型&#xff08;Intersection Types&#xff09;2. 联合类型&#xff08;Union Types&#xff09; 1. 交叉类型&#xff08;Intersection Types&#xff09; 交叉类型将多个类型合并为一个类型&#xff0c;这个新类型具有所有类型的特性。使用 & 符号来定…

妙手ERP接入Miravia,支持高效上货、批量订单处理

欧洲电子商务市场目前已经成为了中国跨境电商出口的“新蓝海”。放眼欧洲&#xff0c;西班牙电商市场规模并不算大&#xff0c;但却是增长率最高的市场之一&#xff0c;并且正在追赶其他电商市场。  据Statista的调查数据显示&#xff0c;2024年初西班牙的电商收入将达到355亿…

python自动化办公-往ppt插入图片

目录 思路 代码 代码效果 思路 1、导包 2、打开ppt 3、新增1张幻灯片&#xff0c;选择自己需要的版式 4、输入标题 5、设置好图片的位置和大小&#xff0c;插入准备好的图片 6、保存文件 代码 from pptx import Presentation from pptx.util import Inches # 打开pp…

【C语言入门】初识C语言:掌握编程的基石

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言入门 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀C语言入门 &#x1f4d2;1. 选择…

c->c++(二):class

本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个)&#xff1a;对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数&#xff08;一个&#xff09;&#xff1a;对对象消亡时调用回收分配动态内存 C提供默认构造和析构,…

使用pdf.js在Vue、React中预览Pdf文件,支持PC端、移动端

&#x1f4dd; 使用背景 在前端开发中&#xff0c;有时候我们需要进行pdf文件的预览操作&#xff0c;通过在网上查询&#xff0c;基本都是一下几种常见的预览pdf文件的方法&#xff1a; 实现方案效果HTML 标签iframe 标签iOS&#xff1a;只能展示第一页&#xff0c;多页不能展…

Windows安全认证机制——Windows常见协议

一.LLMNR协议 1.LLMNR简介 链路本地多播名称解析&#xff08;LLMNR&#xff09;是一个基于域名系统&#xff08;DNS&#xff09;数据包格式的协议&#xff0c;使用此协议可以解析局域网中本地链路上的主机名称。它可以很好地支持IPv4和IPv6&#xff0c;是仅次于DNS解析的名称…

63、基于深度学习网络的数字分类(matlab)

1、基于深度学习网络的数字分类的原理及流程 基于深度学习网络的数字分类是一种常见的机器学习任务&#xff0c;通常使用的是卷积神经网络&#xff08;CNN&#xff09;来实现。下面是其原理及流程的简要说明&#xff1a; 数据收集&#xff1a;首先&#xff0c;需要收集包含数字…

Mybatis一级缓存

缓存 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。 Mybatis和Hibernate一样&#xff0c;也有一级和二级缓存&#xff0c;同样默认开启的只有一级缓存&#xff0c;二级缓…

【笔记】解决 CSS:backface-visibility:hidden; 容器翻转 引起的容器内 input不可用

起因 今天&#xff0c;做了一个卡片翻转的案例。原本参考的案例是一个非常简单的两个div翻面效果&#xff0c;使用的 backface-visibility:hidden; 实现两个容器互为背面。基础div就是纯色&#xff0c;什么都没有&#xff0c;很容易就实现了翻转。 出现问题 我要做的案例&am…

【Python机器学习】算法链与管道——在网格搜索中使用管道

在网格搜索中使用管道的工作原理与使用任何其他估计器都相同。 我们定义一个需要搜索的参数网络&#xff0c;并利用管道和参数网格构建一个GridSearchCV。不过在指定参数网格时存在一处细微的变化。我们需要为每个参数指定它在管道中所属的步骤。我们要调节的两个参数C和gamma…

NGINX+KEEPALIVED | 一文搞懂NG+KL负载均衡高可用架构的实操教程(详细)

文章目录 NGINXKEEPALIVED负载均衡高可用架构为什么需要多节点应用为什么需要Nginx服务为什么需要Keepalived服务NGKL简述前期准备Linux服务器公共环境配置Server1 NGKL服务器配置Server2 NGKL服务器配置Server3 HTTP服务器配置Server4 HTTP服务器配置运行测试用例 NGINXKEEPAL…

Android选择题界面的设计——线性布局实操

目录 任务目标任务分析任务实施 任务目标 使用TextView、Button、CheckBox等实现一个选择题界面&#xff0c;界面如图1所示。 图1 选择题界面效果图 任务分析 上述界面可以分解为上下两部分&#xff0c;上面部分可以使用横向的线性布局来完成&#xff0c;下面部分可以使用…

WPF真入门教程34--爆肝了【仓库管理系统】

1、项目介绍 本项目是一个基于C#WPF实现的仓库管理系统&#xff0c;系统规模较小&#xff0c;适合入门级的项目练练手&#xff0c;但项目还是具有较高的学习价值&#xff0c;它采用mvvmlight框架&#xff0c;EF框架&#xff0c;WPF前端等技术构成。对于学习来说&#xff0c;可…

2024科技文化节程序设计竞赛

补题链接 https://www.luogu.com.cn/contest/178895#problems A. 签到题 忽略掉大小为1的环&#xff0c;答案是剩下环的大小和减环的数量 #include<bits/stdc.h> #include<iostream> #include<cstdio> #include<vector> #include<map> #incl…