新建 Markdown File

第三周作业解答:


1. 程序包管理器总结及命令示例

程序包管理器

  • YUM:用于基于 RPM 的系统(如 CentOS、Fedora)。
  • APT:用于基于 Debian 的系统(如 Ubuntu)。
  • RPM:低级包管理工具,直接操作 .rpm 文件。

包内容

  • RPM:包含软件的二进制文件、配置文件、依赖关系等。
  • DEB:包含软件的二进制文件、配置文件、依赖关系等。

获取命令

  • **YUM:

    # 获取软件包
    yum install <package-name>
    
  • APT

    # 获取软件包
    apt-get install <package-name>
    
  • RPM

    # 安装本地 RPM 文件
    rpm -ivh <package-name>.rpm
    

命令选项示例

  • YUM

    # 安装软件包
    yum install <package-name>
    
    # 更新软件包
    yum update <package-name>
    
    # 卸载软件包
    yum remove <package-name>
    
    # 查找软件包
    yum search <keyword>
    
    
  • APT

    # 安装软件包
    apt-get install <package-name>
    
    # 更新软件包
    apt-get update
    apt-get upgrade
    
    # 卸载软件包
    apt-get remove <package-name>
    
    # 查找软件包
    apt-cache search <keyword>
    
  • RPM

    # 安装 RPM 文件
    rpm -ivh <package-name>.rpm
    
    # 卸载 RPM 文件
    rpm -e <package-name>
    
    # 查询已安装的 RPM 文件
    rpm -qa
    

2. YUM/DNF工作原理及私有仓库搭建

工作原理

  • YUM
    • 从配置的软件源(/etc/yum.repos.d/)获取软件包信息。
    • 使用 yum 命令安装、更新或卸载软件包。
    • 自动解析依赖关系并安装所需的依赖包。

搭建私有 YUM 仓库

  1. 安装 HTTP 服务器
    yum install -y httpd
    systemctl start httpd
    systemctl enable httpd
    
  2. 创建仓库目录
    mkdir -p /var/www/html/repo/base
    mkdir -p /var/www/html/repo/epel
    
  3. 同步软件包到仓库
    • 使用 reposync 同步 Base 和 EPEL 源:
      yum install -y yum-utils
      reposync -g -l -d -m --repoid=base --repoid=epel --download_path=/var/www/html/repo
      
  4. 配置仓库
    • 创建仓库元数据:
      createrepo /var/www/html/repo/base
      createrepo /var/www/html/repo/epel
      
  5. 配置客户端
    • 在另一台虚拟机上,添加私有仓库配置文件 /etc/yum.repos.d/private.repo
      [base]
      name=Private Base Repo
      baseurl=http://10.0.0.100/repo/base
      enabled=1
      gpgcheck=0
      
      [epel]
      name=Private EPEL Repo
      baseurl=http://10.0.0.100/repo/epel
      enabled=1
      gpgcheck=0
      

3. APT工作原理

  • APT
    • 使用 /etc/apt/sources.list/etc/apt/sources.list.d/ 文件配置软件源。
    • 使用 apt-get 命令安装、更新或卸载软件包。
    • 自动解析依赖关系并安装所需的依赖包。
    • 使用 apt-cache 管理软件包缓存。

4. 编译安装 Nginx 的步骤

  1. 安装依赖
    apt-get update
    apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev
    
  2. 下载 Nginx 源码
    wget http://nginx.org/download/nginx-<version>.tar.gz
    tar -zxvf nginx-<version>.tar.gz
    cd nginx-<version>
    
  3. 配置并编译
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module
    make
    make install
    
  4. 启动 Nginx
    /usr/local/nginx/sbin/nginx
    

5. 磁盘存储术语

  • Head:磁头,用于读写磁盘数据。
  • Track:磁道,磁盘上的一圈圈同心圆。
  • Sector:扇区,磁道上的最小存储单元。
  • Cylinder:柱面,同一柱面上的所有磁道。

6. MBR 和 GPT 结构

  • MBR (Master Boot Record)
    • 位于磁盘的第 0 扇区。
    • 包含启动代码和分区表。
    • 最多支持 4 个主分区。
  • GPT (GUID Partition Table)
    • 支持更多分区(最多 128 个)。
    • 使用全局唯一标识符(GUID)标识分区。
    • 支持大于 2TB 的磁盘。

7. 分区、文件系统管理、SWAP 管理命令

  • fdisk
    # 查看分区表
    fdisk -l
    
  • parted
    # 创建分区
    parted /dev/sdX mkpart primary 0 100%
    
  • mkfs
    # 创建文件系统
    mkfs.ext4 /dev/sdX1
    
  • tune2fs
    # 调整文件系统参数
    tune2fs -L "MyVolume" /dev/sdX1
    
  • xfs_info
    # 查看 XFS 文件系统信息
    xfs_info /dev/sdX1
    
  • fsck
    # 检查和修复文件系统
    fsck /dev/sdX1
    
  • mount/umount
    # 挂载文件系统
    mount /dev/sdX1 /mnt
    umount /mnt
    
  • swapon/swapoff
    # 启用/禁用 SWAP
    swapon /dev/sdX1
    swapoff /dev/sdX1
    

8. RAID 工作原理

  • RAID 0
    • 工作原理:数据分条存储在多个磁盘上。
    • 利用率:100%。
    • 冗余性:无。
    • 性能:高。
    • 最少硬盘数:2。
  • RAID 1
    • 工作原理:数据镜像存储在两个磁盘上。
    • 利用率:50%。
    • 冗余性:高。
    • 性能:读取快,写入慢。
    • 最少硬盘数:2。
  • RAID 5
    • 工作原理:数据分条存储,带奇偶校验。
    • 利用率:(N-1)/N。
    • 冗余性:中。
    • 性能:读取快,写入中。
    • 最少硬盘数:3。
  • RAID 10
    • 工作原理:先镜像,再分条。
    • 利用率:50%。
    • 冗余性:高。
    • 性能:高。
    • 最少硬盘数:4。
  • RAID 01
    • 工作原理:先分条,再镜像。
    • 利用率:50%。
    • 冗余性:高。
    • 性能:高。
    • 最少硬盘数:4。

9. LVM 基本原理

  • LVM (Logical Volume Manager)
    • 将物理磁盘抽象为逻辑卷,便于动态调整磁盘容量。
    • 创建 LVM
      # 创建物理卷
      pvcreate /dev/sdX1
      
      # 创建卷组
      vgcreate myvg /dev/sdX1
      
      # 创建逻辑卷
      lvcreate -L 10G -n mylv myvg
      
      # 格式化并挂载
      mkfs.ext4 /dev/myvg/mylv
      mount /dev/myvg/mylv /mnt
      
    • 扩容逻辑卷
      # 添加新磁盘到卷组
      pvcreate /dev/sdY1
      vgextend myvg /dev/sdY1
      
      # 扩容逻辑卷
      lvextend -L +5G /dev/myvg/mylv
      resize2fs /dev/myvg/mylv
      

10. OSI 模型

  • OSI (Open Systems Interconnection)
    • 物理层:传输二进制数据流,定义电气接口。
    • 数据链路层:建立链路连接,传输数据帧。
    • 网络层:负责路由选择,传输 IP 数据包。
    • 传输层:提供端到端的通信,如 TCP/UDP。
    • 会话层:建立、管理和终止会话。
    • 表示层:数据格式转换,加密解密。
    • 应用层:提供用户接口,如 HTTP、FTP。

11. 调整动态端口范围

# 修改 /etc/sysctl.conf 文件
net.ipv4.ip_local_port_range = 20000 60000

# 应用更改
sysctl -p

12. TCP 包头结构

  • 源端口:16 位。
  • 目的端口:16 位。
  • 序列号:32 位。
  • 确认号:32 位。
  • 头部长度:4 位。
  • 标志位:6 位(SYN、ACK、FIN、RST 等)。
  • 窗口大小:16 位。
  • 校验和:16 位。
  • 紧急指针:16 位。

TCP 三次握手

  1. SYN:客户端发送 SYN 包到服务器。
  2. SYN-ACK:服务器回应 SYN-ACK 包。
  3. ACK:客户端发送 ACK 包,连接建立。

TCP 四次挥手

  1. FIN:客户端发送 FIN 包。
  2. ACK:服务器回应 ACK 包。
  3. FIN:服务器发送 FIN 包。
  4. ACK:客户端回应 ACK 包,连接关闭。

13. 主机到主机的包传递过程

  1. 源主机:封装数据包,添加 IP 和 TCP/UDP 头。
  2. 路由器:根据 IP 地址和子网掩码转发数据包。
  3. 目的主机:解封装数据包,处理数据。

14. IP 地址分类

  • A 类0.0.0.0 - 127.255.255.255,子网掩码 /8
  • B 类128.0.0.0 - 191.255.255.255,子网掩码 /16
  • C 类192.0.0.0 - 223.255.255.255,子网掩码 /24
  • D 类224.0.0.0 - 239.255.255.255,多播地址。

IP 地址组成

  • 网络部分:标识网络。
  • 主机部分:标识主机。

15. 201.222.200.111/18 的主机数和子网掩码

  • 子网掩码255.255.192.0/18)。
  • 主机数2^(32-18) - 2 = 16382

计算方法

  • 子网掩码:/18 表示前 18 位为网络位,后 14 位为主机位。
  • 主机数:2^(32-18) - 2(减去网络地址和广播地址)。

16. A(10.0.1.1/16) 与 B(10.0.2.2/24) 的通信

  • 判断是否在同一个网段
    • A 的子网掩码为 /16,网络地址为 10.0.0.0
    • B 的子网掩码为 /24,网络地址为 10.0.2.0
    • A 和 B 不在同一个网段。
  • 能否通信
    • 如果 A 和 B 在同一个网络中(如通过路由器连接),可以通信。
    • 如果不在同一个网络中,无法直接通信。

17. 10.0.0.0/8 划分 32 个子网

  • 子网掩码255.255.224.0/19)。
  • 每个子网的主机数2^(32-19) - 2 = 8190

计算方法

  • 子网掩码:/8 表示前 8 位为网络位,需要再划分 5 位(2^5 = 32)。
  • 子网掩码:255.255.224.0/19)。
  • 每个子网的主机数:2^(32-19) - 2
posted @ 2025-03-09 20:34  你好,运维人  阅读(14)  评论(0)    收藏  举报