使用 YUM 仓库和 NFS 共享存储的详细指南

使用 YUM 仓库和 NFS 共享存储的详细指南

文章目录

  • [使用 YUM 仓库和 NFS 共享存储的详细指南](#使用 YUM 仓库和 NFS 共享存储的详细指南)
    • [一、YUM 仓库服务](#一、YUM 仓库服务)
      • [1.1 YUM 介绍](#1.1 YUM 介绍)
      • [1.2 YUM 源的提供方式](#1.2 YUM 源的提供方式)
        • [1.2.1 配置本地源仓库](#1.2.1 配置本地源仓库)
        • [1.2.2 配置 FTP 源](#1.2.2 配置 FTP 源)
        • [1.2.3 配置 HTTP 源](#1.2.3 配置 HTTP 源)
      • [1.3 网络源配置](#1.3 网络源配置)
        • [1.3.1 清华源](#1.3.1 清华源)
        • [1.3.2 163 源](#1.3.2 163 源)
        • [1.3.3 阿里云源](#1.3.3 阿里云源)
    • [1.4 YUM 命令](#1.4 YUM 命令)
      • [1.5 拓展](#1.5 拓展)
        • [1.5.1 本地源、FTP源和HTTP源的区别、联系、特点和使用场景](#1.5.1 本地源、FTP源和HTTP源的区别、联系、特点和使用场景)
    • [二、NFS 共享存储](#二、NFS 共享存储)
      • [2.1 NFS 基本概述](#2.1 NFS 基本概述)
      • [2.2 为什么要使用共享存储](#2.2 为什么要使用共享存储)
      • [2.3 NFS 应用场景](#2.3 NFS 应用场景)
      • [2.4 NFS 实现原理](#2.4 NFS 实现原理)
      • [2.5 NFS 文件共享系统实验步骤](#2.5 NFS 文件共享系统实验步骤)
      • [2.6 NFS 相关命令](#2.6 NFS 相关命令)
      • [2.7 拓展](#2.7 拓展)
        • [2.7.1 NFS 集群架构和负载均衡](#2.7.1 NFS 集群架构和负载均衡)
        • [2.7.2 NFS 集群架构](#2.7.2 NFS 集群架构)
    • [三、tcpdump 抓包工具](#三、tcpdump 抓包工具)
      • [3.1 tcpdump 简介](#3.1 tcpdump 简介)
      • [3.2 tcpdump 常见参数](#3.2 tcpdump 常见参数)
      • [3.3 tcpdump 过滤规则](#3.3 tcpdump 过滤规则)
        • [3.3.1 基于 IP 地址/网段过滤](#3.3.1 基于 IP 地址/网段过滤)
        • [3.3.2 基于端口过滤](#3.3.2 基于端口过滤)
        • [3.3.3 基于协议过滤](#3.3.3 基于协议过滤)
      • [3.4 tcpdump 使用示例](#3.4 tcpdump 使用示例)
        • [3.3.2 基于端口过滤](#3.3.2 基于端口过滤)
        • [3.3.3 基于协议过滤](#3.3.3 基于协议过滤)
      • [3.4 tcpdump 使用示例](#3.4 tcpdump 使用示例)

一、YUM 仓库服务

1.1 YUM 介绍

YUM (Yellowdog Updater, Modified) 是一个基于 RPM 包管理器的高层次软件包管理工具。YUM 使得系统管理员能够方便地安装、更新和管理 RPM 软件包,并且自动处理软件包的依赖关系。

  • 自动解决依赖:YUM 可以自动查找并安装所需的依赖包。
  • 简化管理:通过使用 YUM,管理员无需手动下载和安装每个 RPM 包,使得系统管理变得更加轻松。
  • 集中管理:YUM 可以通过配置本地或远程的仓库服务器,使得软件包的管理更加集中和高效。

YUM 的前身是 YUP(Yellowdog Updater)。YUM 是由杜克大学改进和发展而来,目前广泛应用于各种 Linux 发行版中。

1.2 YUM 源的提供方式

YUM 源是存放软件包的地方,可以是本地目录、FTP 服务器、HTTP 服务器或其他远程服务器。

1.2.1 配置本地源仓库

配置本地源仓库的步骤如下:

  1. 挂载光盘到 /mnt 目录

    sh 复制代码
    mount /dev/sr0 /mnt
  2. 创建本地 YUM 源配置文件

    sh 复制代码
    cd /etc/yum.repos.d/
    vim local.repo
  3. 添加以下内容到 local.repo 文件

    ini 复制代码
    [local]
    name=local
    baseurl=file:///mnt
    enabled=1
    gpgcheck=0
  4. 清理 YUM 缓存并更新

    sh 复制代码
    yum clean all && yum makecache
  5. 检查 YUM 源列表

    sh 复制代码
    yum repolist
1.2.2 配置 FTP 源

配置 FTP 源的步骤如下:

  1. 安装 vsftpd

    sh 复制代码
    yum -y install vsftpd
  2. 创建挂载目录并挂载光盘

    sh 复制代码
    mkdir /var/ftp/centos7
    mount /dev/sr0 /mnt
    cp -rf /mnt/* /var/ftp/centos7/
  3. 创建 YUM 源索引文件

    sh 复制代码
    mkdir /var/ftp/other
    cd /var/ftp/other/
    createrepo -g /mnt/repodata/repomd.xml ./
  4. 启动 vsftpd 服务

    systemctl start vsftpd
    systemctl enable vsftpd
    
  5. 在客户端创建远程 YUM 源配置文件

    sh 复制代码
    vim /etc/yum.repos.d/centos7.repo
  6. 添加以下内容到 centos7.repo 文件

    ini 复制代码
    [centos7]
    name=centos7
    baseurl=ftp://<FTP_SERVER_IP>/centos7
    enabled=1
    gpgcheck=1
    gpgkey=ftp://<FTP_SERVER_IP>/centos/RPM-GPG-KEY-CentOS-7
1.2.3 配置 HTTP 源

配置 HTTP 源的步骤如下:

  1. 安装 httpd

    sh 复制代码
    yum -y install httpd
  2. 创建挂载目录并挂载光盘

    sh 复制代码
    mkdir /var/www/html/centos7
    mount /dev/sr0 /mnt
    cp -rf /mnt/* /var/www/html/centos7/
  3. 创建 YUM 源索引文件

    sh 复制代码
    createrepo /var/www/html/centos7
  4. 启动 httpd 服务

    sh 复制代码
    systemctl start httpd
    systemctl enable httpd
  5. 在客户端创建远程 YUM 源配置文件

    sh 复制代码
    vim /etc/yum.repos.d/centos7.repo
  6. 添加以下内容到 centos7.repo 文件

    ini 复制代码
    [centos7]
    name=centos7
    baseurl=http://<HTTP_SERVER_IP>/centos7
    enabled=1
    gpgcheck=1
    gpgkey=http://<HTTP_SERVER_IP>/centos7/RPM-GPG-KEY-CentOS-7

1.3 网络源配置

网络源可以让用户从互联网上的镜像站点下载和更新软件包。

1.3.1 清华源

配置清华源的步骤如下:

  1. 编辑 YUM 源配置文件

    sh 复制代码
    vim /etc/yum.repos.d/CentOS7-Base-tsinghua.repo
  2. 添加以下内容

    ini 复制代码
    [base]
    name=CentOS-$releasever - Base
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [centosplus]
    name=CentOS-$releasever - Plus
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
1.3.2 163 源

配置 163 源的步骤如下:

  1. 下载并编辑 163 YUM 网络源配置文件

    sh 复制代码
    wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    vim CentOS7-Base-163.repo
  2. 添加以下内容

    ini 复制代码
    [base]
    name=CentOS-$releasever - Base - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
    
    [updates]
    name=CentOS-$releasever - Updates - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
    
    [extras]
    name=CentOS-$releasever - Extras - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
    
    [centosplus]
    name=CentOS-$releasever - Plus - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
1.3.3 阿里云源

配置阿里云源的步骤如下:

  1. 下载并编辑阿里云 YUM 网络源配置文件

    sh 复制代码
    wget http://mirrors.aliyun.com/repo/Centos-7.repo
    vim CentOS7-Base-aliyun.repo
  2. 添加以下内容

    ini 复制代码
     [base]
       name=CentOS-$releasever - Base - mirrors.aliyun.com
       baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
       gpgcheck=1
       gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
       [updates]
       name=CentOS-$releasever - Updates - mirrors.aliyun.com
    
    
       baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
       gpgcheck=1
       gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
       [extras]
       name=CentOS-$releasever - Extras - mirrors.aliyun.com
       baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
       gpgcheck=1
       gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
       [centosplus]
       name=CentOS-$releasever - Plus - mirrors.aliyun.com
       baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
       gpgcheck=1
       enabled=0
       gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
       [contrib]
       name=CentOS-$releasever - Contrib - mirrors.aliyun.com
       baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
       gpgcheck=1
       enabled=0
       gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

1.4 YUM 命令

以下是一些常用的 YUM 命令及其用途:

  • 安装软件包

    sh 复制代码
    yum -y install 软件名
  • 例如安装 httpd

sh 复制代码
yum -y install httpd
  • 卸载软件包

    sh 复制代码
    yum -y remove 软件名

    例如卸载 httpd

    sh 复制代码
    yum -y remove httpd
  • 升级软件包

    sh 复制代码
    yum -y update 软件名

    例如升级所有软件包:

    sh 复制代码
    yum -y update
  • 查询软件包列表

    sh 复制代码
    yum list

    例如查询所有已安装的软件包:

    sh 复制代码
    yum list installed
  • 查询可用的软件包

    sh 复制代码
    yum list available
  • 查询可升级版本的软件包

    sh 复制代码
    yum list updates
  • 查询软件包描述信息

    sh 复制代码
    yum info 软件名

    例如查询 httpd 的描述信息:

    sh 复制代码
    yum info httpd
  • 根据关键词查找相关软件包

    sh 复制代码
    yum search 关键词

    例如查找与 httpd 相关的软件包:

    sh 复制代码
    yum search httpd
  • 查询命令属于哪个软件包

    sh 复制代码
    yum whatprovides 命令

    例如查询 netstat 命令属于哪个软件包:

    sh 复制代码
    yum whatprovides netstat
  • 下载软件包但不安装

    sh 复制代码
    yum install 软件名 -y --downloadonly

    例如下载 httpd 但不安装:

    sh 复制代码
    yum install httpd -y --downloadonly
  • 查看历史记录

    sh 复制代码
    yum history

    例如列出最近的历史记录:

    sh 复制代码
    yum history list

    查看某次历史记录的详细信息:

    sh 复制代码
    yum history info ID

    撤销某次更改:

    sh 复制代码
    yum history undo ID

    重新执行某次操作:

    sh 复制代码
    yum history redo ID

1.5 拓展

1.5.1 本地源、FTP源和HTTP源的区别、联系、特点和使用场景
本地源

特点

  1. 存储位置:数据存储在本地计算机或内部网络的文件系统中。
  2. 访问速度:通常最快,因为数据不需要通过网络传输。
  3. 安全性:较高,受限于本地网络和系统的安全措施。
  4. 依赖性:依赖于存储设备和本地网络的稳定性。

使用场景

  1. 小型项目:在开发和测试阶段,特别是涉及敏感数据的项目。
  2. 数据备份:用于快速访问和恢复重要数据。
  3. 局域网内文件共享:在企业内部网络中共享文件。
FTP源

特点

  1. 传输协议:使用文件传输协议(FTP)进行数据传输。
  2. 访问控制:支持用户名和密码的身份验证,某些情况下支持匿名访问。
  3. 传输速度:受限于网络带宽,通常比HTTP慢。
  4. 传输模式:支持二进制和ASCII模式传输。

使用场景

  1. 大文件传输:适合传输大文件和批量文件,因为FTP可以断点续传。
  2. 备份和恢复:用于远程服务器之间的备份和恢复操作。
  3. 公共文件发布:一些公共资源库使用FTP发布大文件,例如开源软件镜像站点。
HTTP源

特点

  1. 传输协议:使用超文本传输协议(HTTP/HTTPS)进行数据传输。
  2. 访问方式:通常通过浏览器或HTTP客户端进行访问。
  3. 传输速度:较快,尤其是使用CDN时,可以优化传输速度和可靠性。
  4. 安全性:支持HTTPS,加密传输,提高安全性。

使用场景

  1. 网页和API:用于提供网页内容和Web API服务。
  2. 文件下载:适合文件下载和小文件传输,易于通过浏览器访问。
  3. 内容分发:使用CDN分发内容,提高全球用户的访问速度。
联系
  1. 文件传输:三者都用于文件和数据的传输,适用于不同场景和需求。
  2. 网络依赖:FTP源和HTTP源都依赖网络进行数据传输,本地源则不需要网络。
  3. 身份验证:本地源依赖操作系统权限,FTP和HTTP则通过各自的协议实现身份验证。
总结
  • 本地源适用于需要快速、可靠访问的本地数据,特别是在网络连接不可靠或不需要时。
  • FTP源适合大文件和批量文件的传输,尤其是需要断点续传的情况。
  • HTTP源适合通过Web提供和访问文件及服务,尤其是在需要全球分发内容时。

二、NFS 共享存储

2.1 NFS 基本概述

NFS (Network File System) 是一种基于 TCP/IP 协议的网络文件系统协议,最初由 Sun 公司开发。NFS 允许不同主机系统之间通过网络共享文件或目录。通过使用 NFS,客户端可以像访问本地文件系统一样访问远程服务器中的共享资源。

2.2 为什么要使用共享存储

共享存储在多台服务器之间共享数据和保持数据一致性方面非常重要。以下是一些具体原因:

  1. 数据共享:多台服务器可以同时访问相同的数据,从而实现数据共享。
  2. 数据一致性:确保不同服务器上的数据始终保持一致,避免数据不同步的问题。
  3. 简化管理:集中管理数据和存储资源,提高管理效率。

2.3 NFS 应用场景

NFS 共享存储常用于以下场景:

  1. 集群架构:在集群环境中,NFS 提供共享存储,避免数据不一致问题。
  2. 负载均衡:在负载均衡环境中,通过 NFS 共享存储,可以确保每台服务器访问相同的数据资源。
  3. 数据备份:通过 NFS 共享存储,可以集中管理和备份数据,简化数据管理。

2.4 NFS 实现原理

NFS 的实现依赖于 RPC(Remote Procedure Call,远程过程调用)机制。在 CentOS 7 中,需要安装 nfs-utilsrpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

NFS 工作流程
  1. 客户端调用函数:客户端调用函数(如 Read、Write、Create、Remove 等)处理数据。
  2. 建立 TCP 连接:NFS 客户端通过 TCP 连接将请求传递给 NFS 服务器。
  3. 端口映射:NFS 服务器接收到请求后,通过 portmap 进行端口映射。
  4. 权限验证:调用 Rpc.nfsd

验证权限,再调用 Rpc.mount 验证文件权限。

  1. 请求处理:NFS 服务器将请求转换为本地命令,由内核驱动硬件处理。
详细解释
  1. 客户端调用函数

    • 客户端调用不同的函数(如 Read()、Write() 等)对数据进行处理。
  2. 建立 TCP 连接

    • NFS 客户端通过 TCP/IP 的方式与 NFS 服务器建立连接。
  3. 端口映射

    • NFS 服务器首先调用 portmap 进程进行端口映射,确定请求应发送到哪个端口。
  4. 权限验证

    • NFS 服务器调用 Rpc.nfsd 进程来验证客户端是否有权限连接到 NFS 服务器。
    • 然后调用 Rpc.mount 进程来验证客户端是否有权限访问指定的文件或目录。
  5. 请求处理

    • NFS 服务器将请求转换为本地能识别的命令,传递到内核进行处理。
    • 内核驱动硬件执行相应操作,并将结果返回给 NFS 服务器,再通过网络返回给客户端。

2.5 NFS 文件共享系统实验步骤

服务器端配置
  1. 安装 nfs-utils 和 rpcbind

    sh 复制代码
    yum install -y nfs-utils rpcbind
  2. 修改 NFS 配置文件 /etc/exports

    sh 复制代码
    vim /etc/exports
  3. 添加以下内容

    plaintext 复制代码
    /opt/web 192.168.10.0/24(rw,sync,no_root_squash)
    • rw:允许读写。
    • sync:同步写入到内存与硬盘。
    • no_root_squash:赋予客户端 root 用户本地 root 权限。
  4. 启动 NFS 和 rpcbind 服务

    sh 复制代码
    systemctl start rpcbind
    systemctl start nfs
    systemctl enable rpcbind
    systemctl enable nfs
  5. 验证 NFS 服务

    sh 复制代码
    exportfs -v

    刷新结果:

    sh 复制代码
    exportfs -r

    查看共享:

    sh 复制代码
    showmount -e localhost
客户端配置
  1. 安装 nfs-utils 和 rpcbind

    sh 复制代码
    yum install -y nfs-utils rpcbind
  2. 验证服务器上的共享目录

    sh 复制代码
    showmount -e <NFS_SERVER_IP>
  3. 挂载共享目录

    sh 复制代码
    mount -t nfs <NFS_SERVER_IP>:/opt/web /mnt
  4. 验证挂载

    sh 复制代码
    df -h
  5. 修改 /etc/fstab 实现自动挂载

    plaintext 复制代码
    <NFS_SERVER_IP>:/opt/web /mnt nfs defaults,_netdev 0 0

2.6 NFS 相关命令

  • 查看 NFS 共享

    sh 复制代码
    showmount -e <NFS_SERVER_IP>
  • 手动挂载 NFS 共享

    sh 复制代码
    mount -t nfs <NFS_SERVER_IP>:/opt/web /mnt
  • 自动挂载配置

    plaintext 复制代码
    <NFS_SERVER_IP>:/opt/web /mnt nfs defaults,_netdev 0 0
  • 强制卸载繁忙的 NFS 共享

    sh 复制代码
    umount -lf /mnt

2.7 拓展

2.7.1 NFS 集群架构和负载均衡

负载均衡是一种分配工作负载或流量的技术,用来提高服务的可靠性和性能。它通过将传入的请求分配到多台服务器上,确保没有单一服务器过载,从而提高系统的整体效率和稳定性。

白话解释

假设你有一个很受欢迎的网站,有很多人同时访问。如果所有访问请求都集中到一台服务器上,这台服务器可能会因为过载而变慢甚至崩溃。为了避免这种情况,你可以使用多台服务器来共同处理这些访问请求。

负载均衡器就是一个"调度员",它站在所有访问者和服务器之间。当有访问请求进来时,负载均衡器会根据一些规则(例如每台服务器当前的负载、响应时间等)把这些请求分配到不同的服务器上。这样,每台服务器只需要处理一部分请求,整体的处理能力和速度就会提升。

负载均衡的主要类型

  1. DNS负载均衡

    • 通过DNS服务器将不同的IP地址返回给不同的用户,从而分配流量。
  2. 硬件负载均衡

    • 使用专用硬件设备进行流量分配,通常用于大规模、高性能的企业级应用。
  3. 软件负载均衡

    • 通过软件来实现负载均衡,例如Nginx、HAProxy等。

常见的负载均衡算法

  1. 轮询 (Round Robin)

    • 按顺序将请求依次分配给每台服务器。
  2. 加权轮询 (Weighted Round Robin)

    • 给每台服务器分配一个权重,根据权重分配请求,权重高的服务器分配到的请求更多。
  3. 最少连接数 (Least Connections)

    • 将请求分配给当前处理连接最少的服务器。
  4. IP哈希 (IP Hash)

    • 根据请求的IP地址进行哈希运算,将请求分配到特定的服务器,这样同一IP地址的请求总是分配到同一台服务器上。

应用场景

  1. Web服务

    • 大型网站、电子商务平台等需要处理大量用户请求的场景。
  2. 数据库

    • 分布式数据库系统,通过负载均衡分配查询请求,提高数据处理能力。
  3. 应用服务

    • 微服务架构中,通过负载均衡器将请求分发到不同的服务实例,提高系统弹性和可靠性。

通过使用负载均衡,系统可以更高效地利用资源,避免单点故障,提高服务的可用性和响应速度。

2.7.2 NFS 集群架构

在NFS(Network File System)应用场景中,集群架构被用来提高文件系统的性能、可靠性和可扩展性。通过使用多台服务器来共享文件系统,集群架构可以确保文件服务的高可用性,并能够处理大量并发请求。

白话解释

假设你有一家图书馆,里面有很多书架,每个书架代表一台服务器。现在很多人同时来借书,如果只有一个书架,他们可能会排队等很久。为了提高效率,你决定用多个书架,每个人可以去不同的书架借书,这样就快多了。如果其中一个书架坏了,其他书架还可以继续提供书籍服务,读者不会受到太大影响。这种方式就是NFS应用场景中的集群架构。

NFS集群架构的主要类型和应用场景

  1. 高可用性集群 (HA, High Availability Cluster)

    • 应用场景:企业内部文件共享、用户家庭目录、配置文件共享等。
    • 解释:当多个文件服务器组成一个集群,如果某个服务器发生故障,其他服务器会自动接管它的工作,确保文件系统仍然可以被访问。
    • 示例:假设你的图书馆有多个人负责管理不同的书架(服务器),其中一个管理员请假了,其他管理员会自动接手他的工作,读者仍然可以借到书。
  2. 负载均衡集群 (Load Balancing Cluster)

    • 应用场景:大型数据处理系统、内容分发网络(CDN)、大规模用户文件存储等。
    • 解释:当大量用户同时访问文件系统时,负载均衡器会将用户请求均匀分配到不同的服务器上,以确保每台服务器都不会过载,提高整体系统的响应速度和稳定性。
    • 示例:你的图书馆有多个书架(服务器),每个书架都有一些同样的热门书籍。读者进来时会被引导到不同的书架,这样大家都能更快地借到书。
  3. 存储集群 (Storage Cluster)

    • 应用场景:云存储服务、大型数据中心、分布式文件系统(如Ceph)等。
    • 解释:将数据分布在多个存储节点上,不仅可以扩展存储容量,还能提高数据的访问速度和安全性。如果

某个节点出现问题,数据可以从其他节点获取。

  • 示例:你的图书馆有很多书籍(数据),这些书籍存放在不同的书架上(存储节点)。如果某个书架坏了,读者可以从其他书架上找到同样的书。

优点

  1. 高可用性

    • 即使某台服务器故障,其他服务器也能接管工作,确保文件系统可用。
  2. 高性能

    • 多台服务器共同分担工作负载,提高系统的整体处理能力和响应速度。
  3. 扩展性

    • 可以根据需要增加或减少服务器,灵活调整系统的处理能力和存储容量。
  4. 容错性

    • 数据在多个节点之间冗余和备份,提高系统的容错能力和数据安全性。

通过在NFS应用场景中使用集群架构,可以确保文件系统的高可用性、高性能和可扩展性,满足大规模并发访问和数据存储的需求。

三、tcpdump 抓包工具

3.1 tcpdump 简介

tcpdump 是一个用于捕获网络数据包的命令行工具,能够分析通过网络传输的数据包内容。它支持多种协议的抓包,并且可以根据多种过滤条件进行抓包。

3.2 tcpdump 常见参数

  • 指定网卡

    sh 复制代码
    tcpdump -i 网卡名
  • 将捕获信息保存到文件

    sh 复制代码
    tcpdump -w 文件名
  • 读取捕获文件

    sh 复制代码
    tcpdump -r 文件名
  • 不把 IP 转换成域名,直接显示 IP

    sh 复制代码
    tcpdump -n
  • 直接显示 IP 和端口号

    sh 复制代码
    tcpdump -nn
  • 指定捕获数据包的数量

    sh 复制代码
    tcpdump -c 数量
  • 过滤数据包的方向

    sh 复制代码
    tcpdump -Q in|out|inout

3.3 tcpdump 过滤规则

3.3.1 基于 IP 地址/网段过滤
  • 过滤特定主机

    sh 复制代码
    tcpdump host IP地址
  • 过滤特定目的地址

    sh 复制代码
    tcpdump dst IP地址
  • 过滤特定源地址

    sh 复制代码
    tcpdump src IP地址
  • 过滤特定网段

    sh 复制代码
    tcpdump net 网段
3.3.2 基于端口过滤
  • 过滤特定端口

    sh 复制代码
    tcpdump port 端口号
  • 过滤端口范围

    sh 复制代码
    tcpdump portrange 端口范围
3.3.3 基于协议过滤
  • 过滤特定协议

    sh 复制代码
    tcpdump proto 协议名

    支持的协议包括:ip、arp、icmp、tcp、udp。

3.4 tcpdump 使用示例

  • 捕获所有流量

    sh 复制代码
    tcpdump -i ens33
  • 捕获特定主机的流量

    sh 复制代码
    tcpdump -i ens33 host 192.168.91.101
  • 捕获特定端口的流量

    sh 复制代码
    tcpdump -i ens33 port 80
  • 捕获特定协议的流量

    sh 复制代码
    tcpdump -i ens33 icmp
  • 将捕获信息保存到文件

    sh 复制代码
    tcpdump -i ens33 -w capture.pcap
  • 读取捕获文件

    sh 复制代码
    tcpdump -r capture.pcap

网段过滤

  • 过滤特定主机

    sh 复制代码
    tcpdump host IP地址
  • 过滤特定目的地址

    sh 复制代码
    tcpdump dst IP地址
  • 过滤特定源地址

    sh 复制代码
    tcpdump src IP地址
  • 过滤特定网段

    sh 复制代码
    tcpdump net 网段
3.3.2 基于端口过滤
  • 过滤特定端口

    sh 复制代码
    tcpdump port 端口号
  • 过滤端口范围

    sh 复制代码
    tcpdump portrange 端口范围
3.3.3 基于协议过滤
  • 过滤特定协议

    sh 复制代码
    tcpdump proto 协议名

    支持的协议包括:ip、arp、icmp、tcp、udp。

3.4 tcpdump 使用示例

  • 捕获所有流量

    sh 复制代码
    tcpdump -i ens33
  • 捕获特定主机的流量

    sh 复制代码
    tcpdump -i ens33 host 192.168.91.101
  • 捕获特定端口的流量

    sh 复制代码
    tcpdump -i ens33 port 80
  • 捕获特定协议的流量

    sh 复制代码
    tcpdump -i ens33 icmp
  • 将捕获信息保存到文件

    sh 复制代码
    tcpdump -i ens33 -w capture.pcap
  • 读取捕获文件

    sh 复制代码
    tcpdump -r capture.pcap

以上内容涵盖了 YUM 仓库配置、NFS 共享存储以及 tcpdump 抓包工具的详细介绍和使用方法。通过这些步骤和命令,您可以有效地管理软件包、实现文件共享以及进行网络数据包的分析。

相关推荐
秦jh_27 分钟前
【Linux】多线程(概念,控制)
linux·运维·前端
yaosheng_VALVE1 小时前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
看山还是山,看水还是。1 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
扣得君2 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go2 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求2 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay9852 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
大熊程序猿2 小时前
ubuntu 安装kafka-eagle
linux·ubuntu·kafka
death bell3 小时前
Docker基础概念
运维·docker·容器
ʚɞ4963 小时前
应用程序部署(IIS的相关使用,sql server的相关使用)
运维·服务器