2024年第三周

1. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。

RAID 0:

工作原理: 数据被分成块,然后分布到多个硬盘上,以提高读写性能。
利用率: 高,因为数据被分散存储在多个硬盘上。
冗余性: 低,没有冗余,一个硬盘故障会导致所有数据丢失。
性能: 高,由于数据并行读写,提供了较高的吞吐量。
硬盘数量: 至少2个。

RAID 1:

工作原理: 数据被完全复制到多个硬盘上,实现冗余备份。
利用率: 中,由于数据被完全复制,总容量为单个硬盘容量的一半。
冗余性: 高,一个硬盘故障不会导致数据丢失。
性能: 读性能较好,写性能略低。
硬盘数量: 至少2个。

RAID 5:

工作原理: 将数据分块存储在多个硬盘上,同时使用奇偶校验位进行数据冗余。
利用率: 高,总容量为(硬盘数量 - 1)乘以单个硬盘容量。
冗余性: 中,一个硬盘故障不会导致数据丢失。
性能: 读性能良好,写性能较好。
硬盘数量: 至少3个。

RAID 10:

工作原理: 将数据同时使用镜像和分条带的方式存储在多个硬盘上,结合了RAID 1和RAID 0的特点。
利用率: 中,总容量为硬盘数量的一半。
冗余性: 高,可以容忍一个硬盘故障。
性能: 读性能和写性能都较好。
硬盘数量: 至少4个。

RAID 01:

工作原理: 将RAID 0的条带集合镜像,结合了RAID 0和RAID 1的特点。
利用率: 低,总容量为硬盘数量的一半。
冗余性: 低,一个硬盘故障可能导致数据丢失。
性能: 读性能和写性能都较好。
硬盘数量: 至少4个。


2. 完成对LVM磁盘扩容及缩容示例。

扩容

1、创建逻辑卷

lvcreat -L 20G  -n mylv testvg

2、扩展逻辑卷

lvextend -L 20G /dev/textvg/mylv

3、进行文件系统同步

resize2fs /dev/testvg/mylv

缩容

1、取消逻辑卷挂载

umount /dev/testvg/mylv

2、磁盘检查

e2fsck -f /dev/testvg/mylv

3、收缩文件系统

resize2fs /dev/testvg/mylv 20G

4、缩减逻辑卷大小

lvreduce -L -6G /dev/testvg/mylv

5、重新挂载

mount /dev/testvg/mylv   /lvtest


3. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。

redhat:rpm文件、rpm包管理器。

debian: deb文件,dpkg包管理器。

1、包文件组成 ( 每个包独有 )
包内的文件
元数据,如:包的名称,版本,依赖性,描述等
可能会有包安装或卸载时运行的脚本
2、 数据库 ( 公共 ) /var/lib/rpm
程序包名称及版本
依赖关系
功能说明
包安装后生成的各文件路径及校验码信息
CentOS 镜像:
https://www.centos.org/download/
http: //mirrors.aliyun.com
https: //mirrors.huaweicloud.com/
https: //mirror.tuna.tsinghua.edu.cn/
http: //mirrors.sohu.com
http: //mirrors.163.com
Ubuntu 镜像:
http://cdimage.ubuntu.com/releases/
http: //releases.ubuntu.com
rpm
安装: rpm {-i|--install} [install-options] PACKAGE_FILE…
选项:
-v : verbose
-vv :
-h : # 显示程序包管理执行进度
rpm 包安装 [install-options]
--test : 测试安装,但不真正执行安装,即 dry run 模式
--nodeps :忽略依赖关系
--replacepkgs | replacefiles
--nosignature : 不检查来源合法性
--nodigest :不检查包完整性
--noscripts :不执行程序包脚本
%pre: 安装前脚本 --nopre
%post: 安装后脚本 --nopost
%preun: 卸载前脚本 --nopreun
%postun: 卸载后脚本 --nopostun
包查询: rpm {-q|--query} [select-options] [query-options]
包卸载: rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test]
PACKAGE_NAME ...
yum
yum [options] [command] [package ...]
命令行选项
-y # 自动回答为 "yes"
-q # 静默模式
--nogpgcheck # 禁止进行 gpg check
--enablerepo = repoidglob     # 临时启用此处指定的 repo ,支持通配符,如: "*"
--disablerepo = repoidglob # 临时禁用此处指定的 repo, 和上面语句同时使用,放在后面的生效


4. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。

        yum/dnf 是基于 C/S 模式 ,yum 服务器存放 rpm 包和相关包的元数据库 ,yum 客户端访问 yum 服务器进行安装或查询等。

1、安装createrepo包:

yum install -y createrepo

2、创建YUM仓库目录并下载base源和epel源:

mkdir -p /var/www/html/repo
cd /var/www/html/repo
reposync -n --repoid=base --newest-only
reposync -n --repoid=epel --newest-only

3、创建仓库元数据:

createrepo /var/www/html/repo

4、配置HTTP服务(如Apache或Nginx)来提供YUM仓库服务。

yum install -y httpd
echo "/var/www/html 755" >> /etc/apache2/sit-available/yum.conf
systemctl restart apache2
systemctl enable apache2

5、在客户端虚拟机上编辑YUM仓库配置文件 /etc/yum.repos.d/your-repo.repo,并添加以下内容:

[local-base]
name=Local Base Repo
baseurl=http://<YOUR_REPO_MACHINE_IP>/repo/base
enabled=1
gpgcheck=0
 
[local-epel]
name=Local EPEL Repo
baseurl=http://<YOUR_REPO_MACHINE_IP>/repo/epel
enabled=1
gpgcheck=0

6、清除YUM缓存并使用新的仓库:

yum clean all
yum makecache

7、测试新的YUM仓库是否工作:

yum repolist
yum update -y


5. 总结系统安装之后的常用初始化步骤。rocky/ubuntu

1、更新系统
  • Rocky Linux
    sudo dnf update

  • Ubuntu
    sudo apt update

2. 设置主机名:

编辑文件:vim /etc/hostname

重启系统:reboot

3. 配置时区
  • Rocky Linux
     timedatectl set-timezone Asia/Shanghai

  • Ubuntu
    dpkg-reconfigure tzdata

4. 配置网络

  • Rocky Linux
    vim /etc/sysconfig/network-scripts/ifcfg-

  • Ubuntu
    vim  /etc/netplan/01-netcfg.yaml

5. 配置SSH
  • Rocky Linux
    dnf install openssh-server
    systemctl enable --now sshd

  • Ubuntu
    apt install openssh-server
    systemctl enable --now ssh

6. 配置防火墙

  • Rocky Linux
    dnf install firewalld
     systemctl enable --now firewalld
     firewall-cmd --zone=public --add-service=ssh --permanent
    firewall-cmd --reload

  • Ubuntu
     apt install ufw
    ufw allow ssh
    ufw enable


6. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求
1)基于位置变量传递版本号
2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。
3)基于独立函数进行下载包,解压包。
4)基于独立函数进行编译,安装包。
5)基于独立函数完成链接包。
6)启动服务,并输出自定义的语句,安装xxx服务

CPUS=`grep -c processor /proc/cpuinfo`
HTTPD_VERSION=2.4.52
HTTPD_FILE=httpd-${HTTPD_VERSION}.tar.gz
INSTALL_DIR=/apps/httpd
COLOR="echo -e \E[32;1m"
END="\E[0m"
. /etc/os-release
if [[ $ID =~ rhel|rocky|centos ]];then
   systemctl disable --now firewalld
   yum -y install gcc make apr-devel apr-util-devel openssl-devel pcre-devel 
redhat-rpm-config bzip2 wget
elif [ $ID = 'ubuntu' ];then
   apt update
   apt -y install gcc make libapr1-dev libaprutil1-dev libpcre3-dev libssl-dev
else
   $COLOR"不支持此系统,退出!"$END
   exit
fi
if [ ! -f ${HTTPD_FILE} ];then
    wget https://dlcdn.apache.org//httpd/${HTTPD_FILE} || { $COLOR "下载失败,退
出" $END;exit; }
fi
tar xf ${HTTPD_FILE} -C /usr/local/src
cd /usr/local/src/httpd-${HTTPD_VERSION}
./configure --prefix=${INSTALL_DIR} --enable-ssl  --disable-status
make -j $CPUS && make install
ln -s /apps/httpd/bin/apachectl /usr/local/bin/
apachectl start && $COLOR"安装成功!"$END
$COLOR"请访问:http://`hostname -I`"$END


7. 总结开放系统互联OSI模型,每层作用及对应的协议。

7 层 
应用层( Application Layer )提供为应用软件而设的接口,以设置与另一应用软件之间的通信。
协议:HTTP、 HTTPS FTP TELNET SSH SMTP POP3 MySQL
6 层 表示层
主条目:表示层( Presentation Layer )把数据转换为能与接收者的系统格式兼容并适合传输的格式
协议: JPEG、ASCII、SSL/TLS。
5 层 会话层
会话层( Session Layer )负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
协议: NetBIOS、RPC。
4 层 传输层
传输层( Transport Layer )把传输表头( TH )加至数据以形成数据包。传输表头包含了所使用的协议 等发送信息。
协议: TCP、UDP、SCTP。
3 层 网络层
网络层( Network Layer )决定数据的路径选择和转寄,将网络表头( NH )加至数据包,以形成报文。 网络表头包含了网络数据。
协议: IP、ICMP、OSPF、BGP。
2 层 数据链接层
数据链路层( Data Link Layer )负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形 成信息框(Data Frame )。数据链表头( DLH )是包含了物理地址和错误侦测及改错的方法。数据链表 尾(DLT )是一串指示数据包末端的字符串。
协议: PPP、HDLC、Ethernet、Wi-Fi。
1 层 物理层
物理层( Physical Layer )在局部局域网上传送数据帧( Data Frame ),它负责管理电脑通信设备和网 络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、主机接口卡等
协议: IEEE 802.3(Ethernet)、IEEE 802.11(Wi-Fi)、USB、RJ45(Ethernet接口)。

8. 调整动态端口范围为20000-60000

echo 20000 60000 > /proc/sys/net/ipv4/ip_port_range


9. 总结TCP包头结构,TCP三次握手,4次挥手。

TCP 包头
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口
某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通
信。源端口、目标端口是用 16 位表示的,可推算计算机的端口个数为 2^16 , 65536
序列号:表示本报文段所发送数据的第一个字节的编号。在 TCP 连接中所传送的字节流的每一个字
节都会按顺序编号。由于序列号由 32 位表示,所以每 2^32 个字节,就会出现序列号回绕,再次从 0
开始
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:
我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号
数据偏移:表示 TCP 报文段的首部长度,共 4 位,由于 TCP 首部包含一个长度可变的选项部分,需要
指定这个 TCP 报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多
远。该字段的单位是 32 ( 4 个字节为计算单位), 4 位二进制最大表示 15 ,所以数据偏移也就是
TCP 首部最大 60 字节
URG :表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段( urgent pointer )只
有当 URG=1 时才有效
ACK :表示是否前面确认号字段是否有效。只有当 ACK=1 时,前面的确认号字段才有效。 TCP
定,连接建立后, ACK 必须为 1, ACK 标志的 TCP 报文段称为确认报文段
PSH :提示接收端应用程序应该立即从 TCP 接收缓冲区中读走数据,为接收后续数据腾出空间。如
果为 1 ,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到
的数据读走,就会一直停留在 TCP 接收缓冲区中
RST :如果收到一个 RST=1 的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放
连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带 RST 标志
TCP 报文段称为复位报文段
SYN :在建立连接时使用,用来同步序号。当 SYN=1 ACK=0 时,表示这是一个请求建立连接的报
文段;当 SYN=1 ACK=1 时,表示对方同意建立连接。 SYN=1 ,说明这是一个请求建立连接或同意
建立连接的报文。只有在前两次握手中 SYN 才置为 1 ,带 SYN 标志的 TCP 报文段称为同步报文段
FIN :表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果 FIN=1 ,即告诉对方: 我的
数据已经发送完毕,你可以释放连接了 ,带 FIN 标志的 TCP 报文段称为结束报文段
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方
发送的数据量,达到此值,需要 ACK 确认后才能再继续传送后面数据,由 Window size value *
Window size scaling factor (此值在三次握手阶段 TCP 选项 Window scale 协商得到)得出此值
校验和:提供额外的可靠性 紧急指针:标记紧急数据在数据字段中的位置
选项部分:其最大长度可根据 TCP 首部长度进行推算。 TCP 首部长度用 4 位表示,选项部分最长为:
(2^4-1)*4-20=40 字节
TCP 三次握手
TCP 四次挥手


10. 总结主机到主机的包传递过程。

主机传输之前先要封包  往前面加包头 每一层都得加包头 传输到对方主机后 进行解包 一层解对应层的包 直到剩详细信息


11. 总结IP地址 A, B, C, D 类,并解析IP地址的组成

A 类:
0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z
网络 ID 位是最高 8 , 主机 ID 24 位低位
网络数: 126=2^7( 可变是的网络 ID 位数 )-2
每个网络中的主机数: 2^24-2=16777214
默认子网掩码: 255.0.0.0
私网地址: 10.0.0.0
范例 :114.114.114.114,8.8.8.8,1.1.1.1,123.56.174.200,119.29.29.29
B 类:
10 000000 - 10 111111.X.Y.Z 128-191.X.Y.Z
网络 ID 位是最高 16 , 主机 ID 16 位低位
网络数: 2^14=16384
每个网络中的主机数: 2^16-2=65534
默认子网掩码: 255.255.0.0 私网地址: 172.16.0.0-172.31.0.0
范例 :180.76.76.76 172.16.0.1
C 类:
110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z
网络 ID 位是最高 24 , 主机 ID 8 位低位
网络数: 2^21=2097152
每个网络中的主机数: 2^8-2=254
默认子网掩码: 255.255.255.0
私网地址: 192.168.0.0-192.168.255.0
范例 : 223.6.6.6,223.5.5.5
D 类:组(多)播, 1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z
IP 地址由两部分组成
网络 ID :标识网络,每个网段分配一个网络 ID ,处于高位
主机 ID :标识单个主机,由组织分配给各设备,处于低位


12. 201.222.200.111/18计算主机数?子网掩码?说明计算方法。

主机数:16382
子网掩码:255.255.192.0
主机数=2^(32-子网掩码)-2

13. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?

10.0.1.1的二进制是:00001010.00000000.00000001.00000001    网段是:10.0.0.0/16
10.0.2.2的二进制是:00001010.00000000.00000010.00000010    网段是:10.0.2.0/24

当A给B发送消息时:
A用自己的子网掩码去对B的IP求网段,得到:10.0.0.0/16;在同一个网段,可以通信
当B给A发送消息时:
B用自己的掩码去对A的ip求网段,得到   :10.0.1.0/24;不在一个网段,不能通信


14. 如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。

10.0.0.0转为二进制是:00001010.00000000.00000000.00000000子网掩码是8,表示前8位是网络位,后面24位是主机位,由于要划分位32个子网,网络位向主机位借5位,2^5=32,网络位达到13位,主机位是19位,所以子网范围:
(00001010.00000)(000.00000000) -> (00001010.11111)(000.00000000)
10.0.0.0/13 -> 10.248.0.0/13
每个子网的掩码为13:255.248.0.0
各个子网的主机数是:524286
因为每个子网的主机位都是19位:0000000000000000000-1111111111111111111 即0-524287
所以除去不可用的2个主机,一共524285个主机数


15. 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。

设置主机名

hostnamectl set-hostname centos7.magedu.com
hostname
hostnamectl status
ifconfig 命令
清除eth0上面的IP地址 :ifconfig eth0 0.0.0.0
启用和禁用网卡:ifconfig eth0 down   ifconfig eth0 up
route 命令
查看路由表: route -n
添加路由: route add
删除路由: route del
netstat 命令
常见选项
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID
统计网络信息: netstat -s
IP命令
#禁用网卡
ip link set eth1 down
#网卡改名
ip link set eth1 name wangnet  
#启用网卡
ip link set wangnet up
#网卡别名
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0
#清除网络地址
ip addr flush dev eth0
nmcli命令

nmcli connection reload:用于重启网络连接
nmcli connection up/down:用于开启/关闭网络连接
nmcli connection show:用于查看网络连接信息
nmcli connection add:用于创建网卡配置文件
nmcli connection del:用于删除网卡配置文件


16. 解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。

TYPE=Ethernet                      # 类型,以太网
NAME=eth0                          # connection名称
DEVICE=eth0                        # 网卡名称
BOOTPROTO=static/dhcp              # IP获取方式,设置为静态或DHCP
IPADDR=192.168.1.100               # IP地址
NETMASK=255.255.255.0              # 子网掩码
GATEWAY=192.168.1.1                # 网关地址
DNS1=8.8.8.8                        # DNS服务器1
DNS2=8.8.4.4                        # DNS服务器2
ONBOOT=yes                         # 开机自启动
USERCTL=yes                        # 用户控制


17. 基于配置文件或命令完成bond0配置

/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一
条线路不通就转入另一条线路
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes


18. 通过ifconfig命令结果找到ip地址.

ifconfig |sed -nr "s/inet ([0-9.]+) .*/\1/p"


19.  使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值