一. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。
raid0
工作原理:所有文件都会平均分配存储到各个磁盘中
冗余性:0
性能:n
最少磁盘数:1
raid1
工作原理:每个磁盘都会存储所有文件,彼此之间互为镜像
冗余性:n-1
性能:读性能n,写性能1
最少磁盘数:2
raid5
工作原理:所有文件和校验和都会平均分配到N个磁盘中
冗余性:1
性能:n-1
最少磁盘数:3
raid10
工作原理:磁盘之间先做raid1组成磁盘阵列组,再将阵列组之间做raid0
最少磁盘数:4
raid01
工作原理:磁盘之间先做raid0组成磁盘阵列组,再将阵列组之间做raid1
最少磁盘数:4
二. 完成对LVM磁盘扩容及缩容示例。
扩展逻辑卷示例
1.创建逻辑卷lv-gx1,lv-gx2
2.查看逻辑卷
3.扩展逻辑卷lv-gx1为20G
4.使用resize2fs命令对lv-gx1进行文件系统同步
缩容逻辑卷示例
1.取消逻辑卷挂载
2.使用fsck检测逻辑卷文件系统
3.缩减lv-gx1文件系统大小
4.缩减逻辑卷lv-gx1大小
5.重新挂载
三. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
程序包管理器
redhat:rpm包管理器,包含rpm文件,元数据,数据库(程序包名称版本,依赖关系,功能说明等)
debian:dpkg包管理器,包含deb文件,元数据,数据库
(挂载光盘,获取包文件)
程序包获取途径
系统中的光盘或官方网站
CentOS镜像:
https://www.centos.org/download
http://mirrors.aliyun.com
https://mirrors.huaweicloud.com
https://mirror.tuna.tsinghua.edu.cn
Ubuntu镜像:
http://cdimage.ubuntu.com/releases
http://releases.ubuntu.com
第三方组织提供
Fedora-EPEL
https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel
SCL
https://wiki.centos.org/SpecialInterestGroup/SCLo
Rpmforge
http://repoforge.org
搜索引擎
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
自己编译制作
rpm选项:
-a:查询已安装的所有软件包
-e:卸载软件包
-q:查询软件包
-i:查询软件包的信息
-l:查询软件包的文件列表
-f:查询文件来自哪个软件包
示例:查看软件包的详细信息
示例:查看软件包中的文件
示例:查看文件来自哪个软件包
yum选项:
yum install:安装软件包
yum list:查看软件仓库中的软件包
yum info:查看软件包信息
yum provides:查看文件来自哪个软件包
yum search:关键字搜索软件包
yum clean all:清除缓存
示例:查看软件仓库中以http开头的软件包
示例:查看软件包信息
示例:搜索以sam开头的软件包
apt选项:
apt install:安装软件包
apt purge:卸载软件包及配置文件
apt update:更新软件仓库索引
apt search:搜索软件包
apt show:查看软件包信息
四. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
yum/dnf是基于C/S模式,yum服务器存放rpm包和相关包的元数据库,yum客户端访问yum服务器进行安装或查询等
yum实现过程
先在yum服务器上创建yum仓库,仓库中存储众多rpm包,以及包相关的元数据,当yum客户端使用yum/dnf安装软件包时,会自动下载repodata中元数据,查询元数据对应包的依赖关系,然后下载并安装
搭建私有yum仓库
安装并开启httpd服务
挂载光盘文件
进入/test/BaseOS目录中,复制粘贴文件
修改yum源配置文件
仅下载EPEL源的软件包到指定目录下
yum客户端修改yum源配置文件
五. 总结系统安装之后的常用初始化步骤。rocky/ubuntu
修改主机名
关闭防火墙
关闭SELinux
配置yum源文件
修改网卡名
配置网卡配置文件
修改SSH配置文件
六. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求
1)基于位置变量传递版本号
2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。
3)基于独立函数进行下载包,解压包。
4)基于独立函数进行编译,安装包。
5)基于独立函数完成链接包。
6)启动服务,并输出自定义的语句,安装xxx服务
七. 总结开放系统互联OSI模型,每层作用及对应的协议。
应用层:提供为应用软件而设的接口,与另一应用软件之间的通信,http,dns,ftp,ssh
表示层:把数据转换为能与接收者的系统格式兼容并适合传输的格式,ASCII,Unicode
会话层:负责数据传输中通信连接,NFS,SQL,RPC
传输层:把传输表头加至数据形成数据段,TCP,UDP
网络层:决定数据的转发路径,将网络表头加至数据形成数据包,IP,IPX
数据数据链:负责网络寻址,错误侦测,将数据链路表头加至数据形成数据帧,PPP,HDLC
物理层:负责通信设备和网络媒体之间的互通
八. 调整动态端口范围为20000-60000
修改/proc/sys/net/ipv4/ip_local_port_range文件的值
九. 总结TCP包头结构,TCP三次握手,4次挥手。
至少20字节,最大60字节,源端口和目的端口为16位,范围0-65535
序列号:表示本报文发送数据的第一个字节编号
确认号:表示接收方希望收到发送方下一个报文段的第一个字节编号
数据偏移:表示TCP头部长度,由于TCP头部包含可选部分,所以需要指定TCP报文头部长度
URG:表示TCP报文是否启用紧急指针字段
ACK:表示确认号是否有效
PSH:表示该TCP报文是缓存还是立即提交上层应用
RST:表示连接失败,释放来南京
SYN:表示请求建立连接
FIN:表示通知对端结束连接
窗口:表示允许对方发送的数据量
校验和:提供额外可靠性
紧急指针:标记紧急数据在数据字段中的位置
TCP三次握手
客户端发送SYN置1的TCP连接请求报文,由CLOSED状态变为SYN-SEND状态
服务器收到TCP连接请求报文后,回复SYN和ACK都置1的TCP响应报文,由LISTEN状态变为SYN-RCVD状态
客户端收到TCP响应报文后,发送ACK置1的TCP报文,由SYN-SEND状态变为ESTAB-LISHED状态
服务器收到报文后,由SYN-RCVD状态变为ESTAB-LISHED状态
TCP四次挥手
客户端发送FIN置1的TCP连接断开报文,由ESTAB-LISHED状态变为FIN-WAIT1状态
服务器收到TCP连接断开报文后,发送ACK置1的TCP响应报文,由ESTAB-LISHED状态变为CLOSE-WAIT状态
客户端收到TCP响应报文后,由FIN-WAIT1状态变为FIN-WAIT2状态
服务器向客户端发送完数据后,会发送FIN和ACK置1的TCP连接断开报文,由CLOSE-WAIT状态变为LAST-ACK状态
客户端收到TCP连接断开报文后,回复ACK置1的TCP响应报文,由FIN-WAIT2状态变为TIME-WAIT状态
服务器收到TCP响应报文后,由LAST-ACK状态变为CLOSED状态
服务器等待一定时间,接收到所有数据后,由TIME-WAIT状态变为CLOSED状态
十. 总结主机到主机的包传递过程。
发送方:发送数据经过应用层,表示层,会话层,传输层,网络层,数据链路层的层层封装,然后由物理层转换为光或电信号传输,如果传输层是TCP协议,需要先通过TCP三次握手建立TCP连接,才能发送数据,在网络层封装源目IP地址查找路由表转发,在数据链路层的封装中通过ARP协议解析IP地址对应的MAC地址
接收方:接收数据经过数据链路层,网络层,传输层,会话层,表示层,应用层的层层解封装,根据各层对应的上层协议字段将数据传输给相应的协议或端口
十一. 总结IP地址 A, B, C, D 类,并解析IP地址的组成
A类
范围:0.0.0.0-127.255.255.255
网络位为8位,主机位为24位
掩码:255.0.0.0
私网地址:10.0.0.0-10.255.255.255
B类
范围:128.0.0.0-191.255.255.255
网络位为16位,主机位为16位
掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0
C类
范围:192.0.0.0-223.255.255.255
网络位为24位,主机位为8位
掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
D类
范围:224.0.0.0-239.255.255.255
IP地址由网络位+主机位组成
十二. 201.222.200.111/18计算主机数?子网掩码?说明计算方法。
主机数:16382
子网掩码:18
主机数=2^(32-子网掩码)-2
十三. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
A会将自己的IP地址与子网掩码进行与运算,将B的IP地址与自己的子网掩码进行与运算,比较这两个结果是否一致,一致则在同一网段,否则不在同一网段
A和
十四. 如何将10.0.0.0/8划分32个子网?
求每个子网的掩码,主机数。
网络位向主机位借5位,2^5=32
每个子网的掩码为13,主机数为524286
十五. 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。
修改主机名
hostname(临时修改主机名)
hostnamectl set-hostname(永久修改主机名)
vim /etc/hostname(修改主机名配置文件)
ifconfig
用于查看和配置网卡信息
选项:
-a:查看所有网卡信息
-s:查看网卡摘要信息
ifconfig XX up/down:启用/关闭网卡
示例:查看网卡摘要信息
示例:关闭eth1网卡
route
用于查看,添加,删除路由
route add:添加路由
route del:删除路由
route -n:数字显示
route -v:查看详细信息
示例:添加路由
示例:查看路由
示例:删除路由
ip
ip link set:用于启用/禁用网卡
示例:禁用eth1网卡
ip address:用于查看网卡信息
ip address add:用于新增IP地址
ip address del:用于删除IP地址
ip address flush:用于清空IP地址
ip address change:用于修改IP地址的首选生存时间和失效时间
示例:新增网卡IP地址
示例:删除网卡IP地址
示例:清空网卡IP地址
ip route show:用于查看路由表
ip route add:用于添加路由
ip route del:用于删除路由
ip route flush:用于清空路由
示例:查看路由表
示例:添加路由
示例:删除路由
nmcli
nmcli connection reload:用于重启网络连接
nmcli connection up/down:用于开启/关闭网络连接
nmcli connection show:用于查看网络连接信息
nmcli connection add:用于创建网卡配置文件
nmcli connection del:用于删除网卡配置文件
示例:查看网络连接信息
示例:创建网卡配置文件
示例:删除网卡配置文件
十六. 解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。
DEVICE:设备名
NAME:连接别名
TYPE:接口雷系
BOOTPROTO:获取地址方式,dhcp、static、none
IPADDR:IP地址
PREFIX:网络ID位数
GATEWAY:网关
DNS:域名服务器地址
DOMAIN:主机不完整时,自动搜索的域名后缀
ONBOOT:系统引导时是否激活此设备
十七. 基于配置文件或命令完成bond0配置
配置文件
十八. 通过ifconfig命令结果找到ip地址.
十九. 使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。
1 #!/bin/bash 2 3 read -p "主机IP地址:" IP 4 read -p "子网掩码(1-32):" MASK 5 6 N=$[${MASK}%8] 7 case $N in 8 1) 9 M=128 10 ;; 11 2) 12 M=192 13 ;; 14 3) 15 M=224 16 ;; 17 4) 18 M=240 19 ;; 20 5) 21 M=248 22 ;; 23 6) 24 M=252 25 ;; 26 7) 27 M=254 28 ;; 29 0) 30 M=255 31 ;; 32 *) 33 ;; 34 esac 35 36 if [ $MASK -le 8 ];then 37 A=`echo $IP | awk -F"." '{print $1}'` 38 elif [ $MASK -le 16 ];then 39 A=`echo $IP | awk -F"." '{print $2}'` 40 elif [ $MASK -le 24 ];then 41 A=`echo $IP | awk -F"." '{print $3}'` 42 elif [ $MASK -le 32 ];then 43 A=`echo $IP | awk -F"." '{print $4}'` 44 fi 45 46 let W=A\&M 47 if [ $MASK -lt 8 ];then 48 for x in `seq $W $[255-MASK+W]`;do 49 for y in {0..255};do 50 for z in {0..255};do 51 for l in {0..255};do 52 (ping -c1 -w1 $x.$y.$z.$l &> /dev/null && echo "$x.$y.$z.$l在线" || echo "$x.$y.$z.$l不在线")& 53 done 54 done 55 done 56 done 57 elif [ $MASK -eq 8 ];then 58 for x in {0..255};do 59 for y in {0..255};do 60 for z in {0..255};do 61 pre=`echo $IP | awk -F"." '{print $1}'` 62 (ping -c1 -w1 $pre.$x.$y.$z &> /dev/null && echo "$x.$y.$z.$l在线" || echo "$x.$y.$z.$l不在线")& 63 done 64 done 65 done 66 elif [ $MASK -lt 16 ];then 67 for x in `seq $W $[255-MASK+W]`;do 68 for y in {0..255};do 69 for z in {0..255};do 70 pre=`echo $IP | awk -F"." '{print $1"."$2}'` 71 (ping -c1 -w1 $pre.$x.$y.$z &> /dev/null && echo "$pre.$x.$y.$z在线" || echo "$pre.$x.$y.$z不在线")& 72 done 73 done 74 done 75 elif [ $MASK -eq 16 ];then 76 for x in {0..255};do 77 for y in {0..255};do 78 pre=`echo $IP | awk -F"." '{print $1"."$2}'` 79 (ping -c1 -w1 $pre.$x.$y &> /dev/null && echo "$pre.$x.$y在线" || echo "$pre.$x.$y不在线")& 80 done 81 done 82 elif [ $MASK -lt 24 ];then 83 for x in `seq $W $[255-MASK+W]`;do 84 for y in {0..255};do 85 pre=`echo $IP | awk -F"." '{print $1"."$2}'` 86 (ping -c1 -w1 $pre.$x.$y &> /dev/null && echo "$pre.$x.$y在线" || echo "$pre.$x.$y不在线")& 87 done 88 done 89 elif [ $MASK -eq 24 ];then 90 for x in {0..255};do 91 pre=`echo $IP | awk -F"." '{print $1"."$2"."$3}'` 92 (ping -c1 -w1 $pre.$x &> /dev/null && echo "$pre.$x在线" || echo "$pre.$x不在线")& 93 done 94 elif [ $MASK -lt 32 ];then 95 for x in `seq $W $[255-MASK+W]`;do 96 pre=`echo $IP | awk -F"." '{print $1"."$2"."$3}'` 97 (ping -c1 -w1 $pre.$x &> /dev/null && echo "$pre.$x在线" || echo "$pre.$x不在线")& 98 done 99 elif [ $MASK -eq 32 ];then 100 (ping -c1 -w1 $IP &> /dev/null && echo "$IP在线" || echo "$IP不在线")& 101 fi