第三周作业
一、简要总结yum/dnf工作原理。
yum和dnf都是Linux中常见的包管理器,他们可以方便的安装、升级和删除软件包。
1、创建/更新本地缓存:当执行yum或者dnf命令时,包管理器会首先检查本地的缓存是不是最新的,如果不是他会自动跟更新本地缓存
2、搜索软件包:当执行yum或者dnf命令时,会在本地缓存和所有配置的软件源中搜索软件包。
3、安装软件包:当要下载指定的软件时,yum/dnf会下载相关软件包并解决其相关依赖关系;
4、升级软件包:当用户运行更新命令时,yum/dnf会检查已安装软件包的新版本,并下载并安装新版本软件包。
5、软件包删除:当要删除系统中相关软件时,yum/dnf命令会将该软件直接从系统中删除并解除软件相关依赖关系;
二、搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
在本地可以访问互联网的服务器中配置yum源,存放rpm包和相关包的元数据,将互联网中的资源下载到本服务器,然后在该服务器部署http共享服务,其他yum客户端服务器可直接访问yum服务端下载安装相关软件;
1、安装相关软件包httpd;
sudo yum install -y httpd
2、配置本地yum源,指向阿里云的epl源;
[epel]
name=epel repo
baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch
http://mirrors.cloud.tencent.com/epel/$releaserver/Everything/$basearch
#enable=1
3、下载epl源并指定安装路径;
sudo mkdir -p /var/www/html/epl
dnf reposync --repoid=epel --download-metadata -p /var/www/html/
4、启动Apache服务;
systemctl enable --now httpd
5、查看本地http共享服务文件是否配置成功;

6、在需要下载软件的服务器中创建配置yum仓库;
[epel]
name=EPEL
baseurl=https://10.0.0.114/epel/
gpgcheck=0
enabled=1
7、查看yum源
[root@rocky8 ~]# yum repolist
repo id repo name
AppStream AppStream
BaseOS BaseOS
epel EPEL
[root@rocky8 ~]#
8、即可使用yum进行安装系统软件

三、总结开放系统互联OSI模型,每层作用及对应的协议。
OSI模型是由国际标准化组织定义的网路通信协议参考模型,用于描述计算机网络中不同层次的功能和协议。并将网络通信分解为七个层次每个层次负责特定的功能。
1、物理层:
作用:在物理媒介上传输原始比特流,负责物理连接和电信号传输。
协议:Ethernet、Wi-Fi、Fiber Channel等。
2、数据链路层:
作用:通过Mac地址将原始比特流分割为帧,并处理帧的错误检测和纠正;
协议:IEEE802.3、PPP等
3、网络层:
作用:通过IP地址事项不同网络之间的数据传输,路由选择和分组转发;
协议:IP、ICMP和ARP
4、传输层:
作用:提供端到端的可靠数据传输,确保数据的完整性和顺序,并处理流量控制和拥塞控制;
协议:TCP、UDP、
5、会话层:
作用:建立、管理和终止应用程序之间的回话连接,处理回话控制和同步;
协议:SMB
6、表示层:
作用:处理数据的格式转换、数据加密和压缩,确保不同系统间的数据兼容性;
协议:JPEG、MPEG
7、应用层
作用:提供网络应用程序和用户之间的接口,实现特定应用功能;
协议:HTTP、FTP、SMTP
四、总结TCP包头结构,TCP三次握手,4次挥手。
1、TCP包头结构:TCP包头是TCP协议在数据传输过程中添加的一部分,包含了必要的控制信息;
1)源端口和目标端口:用于标识发送和接收应用程序的端口号;
2)序列号:用于标识发送的数据字节流中的每个字节的序号;
3)确认号:只有在ACK标志位被设置时有效,表示期望收到的下一个字节的序号;
4)数据偏移:标识TCP包头的长度,以32位字长为单位;
5)保留字段
6)标志位:
URG:紧急指针字段是否有效。
ACK:确认号字段是否有效。
PSH:接收方是否应该立即将数据推送给应用层。
RST:重置连接。
SYN:发起一个连接请求。
FIN:释放一个连接。
7)窗口大小:指示发送方可以接收的字节数,用于流量的控制;
8)校验:用于校验TCP头部和数据的完整性;
9)紧急指针:当URG标志位被设置时,表示紧急数据的末尾字节的序号。
10)选项:最大长度可以根据TCP首部长度进行推算,首部长度用4位表示,选项部分最长位:(2^4-1)*4-20=40字节;
11)填充:用于对齐头部,使其长度为32位字长的倍数;
TCP三次握手,四次挥手
三次握手建立在TCP连接时使用的一种协议,确保双方都能正确的收发数据;
1. 第一次握手:(SYN):客户端发送一个带有SYN(同步)标志位的TCP包,指定客户端的初始序号,并选择一个初始的发送窗口大小,
同时客户端进入SYN_SENT状态;
2. 第二次握手:(SYN-ACK):服务器接收到客户端发送的SYN包后,向客户端发送一个带有SYN和ACK(确认)标志位的TCP包。
服务器也选择一个初始的序列号和发送窗口大小。此时,服务器进入SYN_RECV状态。
3. 第三次握手(ACK):客户端接收到服务器发送的SYN-ACK包后,向服务器发送一个带有ACK标志位的TCP包,确认收到了服务器的确认。
此时,客户端和服务器都进入已建立连接的ESTABLISHED状态,可以开始传输数据。
四次挥手:用于关闭TCP连接,确保双方都结束了数据的传输;
1. 第一次挥手(FIN):当客户端决定关闭连接时,发送一个带有结束标志的TCP包给服务器,表示客户端将不在发送数据;
2. 第二次挥手(ACK):服务器接收到客户端发送的FIN包之后,发送一个带有ACK标志的TCP包作为确认,此时服务器仍可以发送数据给客户端。
3. 第三次挥手(FIN):当服务器也决定关闭连接时,发送一个带有FIN标志位的TCP包给客户端,表示服务器不在发送数据,
4. 第四次挥手(ACK):客户端接收到服务器发送的FIN包后,发送一个带有ACK标志位的TCP包作为确认。客户端进入TIME_WAIT状态,
等待一段时间以确保服务器收到确认。服务器收到确认后进入CLOSED状态,连接关闭。
在完成四次挥手之后,双方的TCP连接正式关闭。
五、总结系统安装之后的常用初始化步骤。rocky/ubuntu
1、关闭selinux;
sed -i '/SELINUX=enabled/c SELINUX=disbaled' /etc/selinux/config
2、关闭防火墙
systemctl disable --now firewalld
3、Ubuntu开启远程登录
udo -i
passwd root
#vim /etc/ssh/ssh.d.conf
sed -i '/PermitRootLogin yes/c PermitRootLogin yes' /etc/ssh/ssh.d_config
4、配置yum源;
yum install autofs;systemctl enable --now autofs
systemctl enable --now autofs
mkdir /etc/yum.repos.d/backup
cp /etc/yum.repo.d/ *.repo /etc/yum.repo.d/backup
cp base.repo /etc/yum.repo.d
主要实现的代码如下:
进入root,切换至yum.repos.d目录
cd /etc/yum.repos.d/
创建新文件夹并将源文件备份为repo.bak
mkdir backup && mv *repo backup/
下载国内yum源文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
更新下载yum源地址
sed -i -e"s|mirrors.cloud.aliyuncs.com|mirrors.aliyun.com|g " /etc/yum.repos.d/CentOS-*
sed -i -e "s|releasever|releasever-stream|g" /etc/yum.repos.d/CentOS-*
生成缓存
yum clean all && yum makecache
5、更新系统软件包:
sudo yum update # 对于 Rocky Linux
sudo apt update # 对于 Ubuntu
sudo apt upgrade # 可选,升级已安装的软件包
6、配置网络设置
Rocky系统配置:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Ubuntu系统配置:
sudo vi /etc/netplan/your_network_config.yaml
7、安装常用软件
sudo yum install package_name # 对于 Rocky Linux
sudo apt install package_name # 对于 Ubuntu
六、总结主机到主机的包传递过程
1、 应用层:源主机的应用程序将数据发送给传输层。数据会被封装成一个数据包,包括源和目标端口号。
2、 传输层:传输层协议(如TCP或UDP)接收到数据包后,在数据包中添加传输层首部,包括源和目标端口号、校验和等信息。传输层将数据包传递给网络层。
3、 网络层:网络层协议(如IP)接收到数据包后,在数据包中添加网络层首部,包括源和目标IP地址、TTL(生存时间)等信息。网络层将数据包传递给数据链路层。
4、 数据链路层:数据链路层将网络层的数据包封装成帧,加上源和目标MAC地址等信息,以便在物理网络中传输。
6、物理层:物理层将数据帧转换为比特流,通过物理媒介(如以太网、无线信道等)传输到目标主机。
6、 目标主机接收:目标主机在物理层接收到比特流后,依次经过物理层、数据链路层、网络层和传输层进行解封和处理。
7、 目标主机应用层:最后,目标主机的传输层将数据包交给目标应用程序,应用程序解析数据并进行处理。
文章介绍了Linux系统中yum和dnf包管理器的工作流程,包括创建/更新缓存、搜索和安装软件包、升级和删除等操作。此外,还详细阐述了如何搭建私有yum仓库供其他机器使用。接着,文章讨论了开放系统互联OSI模型的七层结构及其作用,以及TCP包头的关键字段和TCP连接的三次握手、四次挥手过程。最后,提到了系统安装后的初始化步骤,包括关闭SELinux、防火墙,配置网络和安装软件等。

3825

被折叠的 条评论
为什么被折叠?



