部署YUM仓库及NFS共享服务

目录

一、YUM仓库服务

1.YUM介绍

1.1功能及特点

2.YUM源的提供方式

2.1配置本地源仓库

2.2配置ftp源

2.3配置http服务源

3.YUM命令 

二、NFS共享存储服务 

1.NFS概述

1.1NFS功能与特点 

1.2NAS存储 

2.NFS原理 

三、NFS文件共享系统实验

四、tcpdump

1.概述

2.过滤规则 

2.1基于IP地址/网段过滤

2.2基于端口过滤 

2.3基于协议 

3.常见参数


一、YUM仓库服务

1.YUM介绍

Yum,全称为 Yellowdog Updater, Modified,是一个在Linux发行版中用于管理软件包的命令行工具。它最初是为了简化 Fedora Core(现在的 Fedora)中软件包管理的工具而开发的,并且现在已经被多个基于RPM包管理系统的发行版所采用和支持,比如 CentOS 和 Red Hat Enterprise Linux(RHEL)

1.1功能及特点

1.依赖性解决:

Yum 可以自动解决软件包之间的依赖关系。这意味着当你安装一个软件包时,Yum 会自动査找并安装该软件包所依赖的其他软件包,从而简化了软件安装过程
2.在线更新:

Yum 可以从指定的软件源(repository)中获取最新的软件包信息,并能够自动更新系统中已安装的软件包到最新版本。这使得系统管理员可以轻松地保持系统软件的最新状态
3.插件系统:

Yum 支持插件机制,可以通过插件来扩展其功能,比如增加额外的命令或者改善性能
4.多软件源管理:

Yum 允许管理员配置和管理多个软件源,这些源可以是官方的发行版源、第三方提供的源,甚至是本地创建的源。这样可以更灵活地管理软件包的获取和更新
5.命令行操作:

Yum 是一个命令行工具,通过简单的命令和参数可以完成软件包的安装、更新、删除等操作。这种方式非常适合在服务器环境中进行远程管理

2.YUM源的提供方式

2.1配置本地源仓库

cd /etc/yum.repos.d/
vim local.repo
[local]                                    # 仓库类别
name=local                           # 仓库名称
baseurl=file:///mnt                 # 指定 URL 访问路径为光盘挂载目录
enabled=1                            # 开启此 yum 源,此为默认项,可省略
gpgcheck=0                          # 不验证软件包的签名
mount /dev/sr0 /mnt             # 把光盘挂载到 /mnt 目录下(前提虚拟机是光盘挂载)
清理 yum 缓存并更新
yum clean all && yum makecache
检查
yum repolist

2.2配置ftp源

主要是思路
服务器配置:
(1 )安装 vsftpd 服务端软件
(2 )创建并制作 yum 远程 ftp 站点的源
(3 )启动 ftp 服务
rpm -qa|grep vsftpd
yum -y install vsftpd
mkdir /var/ftp/centos7        # 创建挂盘挂载目录
mount /dev/sr0 /mnt           # 镜像挂载
cp -rf /mnt/* /var/ftp/centos7/ &
mkdir /var/ftp/other             # 创建目录 repodata 数据文件
cd /var/ftp/other/
createrepo -g /mnt/repodata/repomd.xml ./    # 工具建立仓库数据文件
systemctl start vsftpd

客户端配置:
(1 )创建远程 yum 源的配置文件
(2 yum 安装软件验证结果
客户端配置:
vim /etc/yum.repos.d/centos7.repo
[root@client yum.repos.d]# cat centos7.repo
[centos7]                # 仓库类别
name=centos7       # 仓库名称 ( 说明 )
baseurl=ftp://172.16.58.10/centos7   #URL 访问路径
enabled=1             # 启用此软件仓库
gpgcheck=1          # 验证软件包的签名
gpgkey=ftp://172.16.58.10/centos/RPM-GPG-KEY-CentOS-7   #GPG 公钥文件的位置
[other]
name=centos7
baseurl=ftp://172.16.58.10/other
enabled=1      # 启用此软件仓库
gpgcheck=0   # 验证软件包的签名

2.3配置http服务源

我们需要安装 http 服务,所以我们需要先搭建一个本地源
# 首先创建一个文件用来挂载镜像
yum -y install httpd
mkdir /var/www/html/centos7    # 创建镜像目录
mount /dev/sr0 /mnt                  # 镜像挂载
cp -rf /mnt/* /var/www/htmlcentos7/ &    # 拷贝镜像文件
mkdir /var/www/html/other        # 创建目录 repodata 数据文件
生成 YUM 源索引:进入软件包所在目录,使用 createrepo 命令生成 YUM 源所需的索引文件:
createrepo /var/www/html/centos7
这将在 /var/www/html/centos7 目录下生成一个名为 repodata 的子目录,里面包含有关软件包的索引信息
[root@client yum.repos.d]# cat centos7.repo
[centos7]
name=centos7       # 我们 yum 源命名
baseurl=http://172.16.58.10/centos7
# 是服务器设置中最重要的部分,只有设置正确,才能 从上面获取软件
enabled=1      # 启用 yum 源, 0 为不启用, 1 为启用
gpgcheck=1    # 检查 GPG-KEY 0 为不检查, 1 为检查
gpgkey=http://192.168.10.22/centos7/RPM-GPG-KEY-CentOS-7
[other]
name=other
baseurl=http://172.16.58.10/other
enabled=1
gpgcheck=0
下面 3 个命令按顺序执行一遍
yum clean all        # 清除 yum 缓存
yum makecache   # 缓存本地 yum 源中的软件包信息
yum repolist          # 查看源软件包
正常情况就是执行 yum repolist 以后有我们定义的 http 源名称,且有相应的数量,如果数量为 0 ,则哪个步骤出问题了

这里是接着上面ftp做的,所以只要移动文件就行

3.YUM命令 

yum 常用的操作命令:
yum -y install 软件名        # 安装、升级软件包, “-y” 选项表示自动确认
yum -y remove 软件名     # 卸载软件包,可自动解决其依赖关系
yum -y update 软件名      # 升级软件包
yum list                 # 查询软件包列表
yum list installed   # 查询系统中已安装的软件包
yum list available  # 查询仓库中尚未安装的软件包
yum list updates   # 查询可以升级版本的软件包
案列搜索 RPM 包(两种方法)
yum search vim
yum list|grep "vim"
yum info 软件名     # 查询软件包的描述信息
yum search [all] 关键词    # 根据某个关键词来查找相关的软件包
yum search all httpd
yum whatprovides 命令     # 查询命令属于哪个软件包
yum whatprovides netstat
下载 RPM 包而不安装
# yum install 包名 -y --downloadonly
# yum reinstall -y bash --downloadonly                                 # 下载已安装过的 rpm
# yum install 包名 -y --downloadonly --downloaddir=/tmp/    # 下载 RPM 包到指定目录
yum history 查看历史记录来找到它所依赖的包,然后删除,如:
yum history list         # 列出最近的历史
yum history info id    # 列出某次的详细信息,
yum history undo id  # 撤销某次更改
yum history help       # 查看帮助
yum history redo       # 加入序号重新执行序号里的操作 

二、NFS共享存储服务 

1.NFS概述

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

1.1NFS功能与特点 

1.分布式文件系统:

NFS允许将远程服务器上的文件系统挂载(mount)到本地系统,使得远程文件就像本地文件一样可以访问和操作。这种方式使得多个计算机可以共享文件,而无需将文件复制到每台计算机上
2.透明性:

用户和应用程序可以通过标准的文件操作(如读取、写入、创建和删除文件)来访问远程文件系统,而无需了解文件存储的物理位置或网络细节。这种透明性使得对用户来说,远程文件操作和本地文件操作几乎没有区别
3.性能优化:

NFS提供了多种方式来优化文件访问性能,包括客户端缓存、预读取(read-ahead)和写延迟
(write-behind)等技术,以尽可能地减少网络开销和提高响应速度
4.安全性:

NFS可以通过设置访问控制列表(ACLs)和基于主机名/IP地址的权限来确保文件系统的安全访问。此外,NFS V4还引入了更强的安全机制,如Kerberos认证和数据加密
5.可扩展性:

NFS支持多种网络环境和拓扑结构,可以在局域网(LAN)、广域网(WAN)甚至互联网上运行。它能够适应不同规模和复杂度的网络架构

1.2NAS存储 

NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。 NFS 也是 NAS 存储设备必然支持的一种协议
NAS 存储:
NFS 服务的实现依赖于 RPC Remote Process Call ,远端过程调用)机制,以完成远程到本地的映射过程。在CentOS 7 系统中,需要安装 nfs-utils rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS共享发布和访问,后者用于RPC 支持
手动加载 NFS 共享服务时,应该 先启动rpcbind,再启动nfs
NFS端口号:2049
RPC端口号:111

2.NFS原理 

1 、假如访问的是 NFS 客户端,先调用不同的函数(例如 Read() 函数,读功能、 Write() 函数,写功能、 Create()函数,创建功能、 Remove() 函数、删除功能、 Rename() 函数,重命名功能)对数据进行处理
2 、调用完函数后,首先 NFS 客户端会建立 TCP 连接,通过 TCP/IP 的方式传递给 NFS 服务端,连上远端的服务器
3 、接着 NFS 服务端接收到请求后, NFS 服务器会做 3 步系列操作(环环相扣,先映射端口,然后验证是否能登录服务器,最后验证文件使用权限)如下:
首先,调用portmap 进程进行端口映射
接着,调用 Rpc.nfsd 进程来验证 NFS 客户端是否拥有对应的权限连接 NFS 服务端
最后,调用 Rpc.mount 进程来验证客户端是否拥有对应的文件使用权限
4 Portmap 进程实现用户映射和压缩
5 、最后 NFS 服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件

通俗的来理解:

1.挂载文件系统:
#想象你有一台计算机A,它要访问另一台计算机B上的文件。在NFS中,你可以通过挂载(mount)的方式将计算机B的某个文件夹或整个文件系统,连接到计算机A上
#挂载后,计算机 A 就能像访问自己硬盘上的文件一样,访问计算机B上挂载的文件或文件夹
2.透明的文件访问:
#一旦挂载完成,计算机A上的用户和应用程序可以直接访问挂载的文件系统中的文件。他们不需要知道文件实际存储在哪里,也不需要关心网络传输的具体细节
#例如,如果你在计算机A上使用文本编辑器打开了一个文件,而这个文件实际上是存储在计算机B上的,你可以像编辑本地文件一样修改并保存这个文件
3.通信协议:
#NFS使用了一套协议来管理计算机A和B之间的通信。这些协议负责传输文件数据,管理文件的读取和写入操作,以及处理可能发生的网络错误或中断
4.性能和安全性:
#NFS设计用于高效的文件访问,通常可以优化数据传输速度和响应时间。同时,它也支持一些安全机制,如访问控制列表(ACLs)和加密,以保护数据不被未经授权的人访问或篡改

总之,NFS让远程文件访问变得简单和透明,使得用户和应用程序可以轻松地利用网络访问和管理分布在不同计算机上的文件

客户端发起查看file信息的指令(ls file)给内核,内核通过NFS模块得知此文件并不是本地文件系统中的文件,而是在远程NFS主机上的一个文件

客户端主机的内核通过RPC协议把查看file信息的指令(系统调用)封装成rpc请求通过TCP111端口发送给NFS服务端主机的portmapper

NFS 服务端主机的 portmapper RPC 服务进程)告诉客户端说 NFS 服务端的 mountd 服务在某某端口上,你去找它验证。因为mountd 在提供服务时必须要向 portmapper 注册一个端口号,所以 portmapper 是知道其工作于哪个端口的
客户端得知服务端的 mountd 进程端口号后,通过已知的服务端 mountd 端口号请求验证
mountd 收到验证请求后验证发起请求的客户端是否在允许访问此 NFS 文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd ),否则拒绝访问
验证通过后客户端持 mountd 发放的令牌去找服务端的 nfsd 进程,请求查看某文件
服务端的 nfsd 进程发起本地系统调用,向内核请求查看客户端要查看的文件的信息
服务端的内核执行 nfsd 请求的系统调用,并将结果返回给 nfsd 服务

三、NFS文件共享系统实验

配置思路:
1 、安装 nfs rpcbind 软件
2 、修改配置文件设置共享
3 、创建共享目录
4 、开启服务
5 、客户端验证共享目录可访问

rpm -q rpcbind nfs-utils

yum install -y nfs-utils rpcbind
vim /etc/exports    #NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)
/opt/web 192.168.10.0/24  (rw,sync,no_root_squash)
常用选项:
rw: 表示允许读写
ro: 表示为只读
sync:表示同步写入到内存与硬盘中
no_root_squash:
表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以 nfsnobody 的权限
root_squash:
表示客户机用 root 用户访问该共享目录时,将 root 用户映射成匿名用户
其它常用选项:
all_squash: 所有访问用户都映射为匿名用户或用户组
async: 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
subtree_check (默认):若输出目录是一个子目录,则 nfs 服务器将检查其父目录的权限
no_subtree_check: 即使输出目录是一个子目录, nfs 服务器也不检查其父目录的权限,这样可以提高效率

systemctl start rpcbind //需要先启动rpc服务,因为nfs要向rpc注册端口

systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
[root@server~]# netstat -anpu | grep rpc
udp 0 0 0.0.0.0:111 0.0.0.0:*
24525/rpcbind
[root@server~]# rpcinfo -p localhost   # 查看 nfs rpc 注册的端口信息
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 55627 status
……
[root@server~]# exportfs -v    # 验证结果
/web
172.16.58.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squ
ash,no_all_squash)
exportfs -r    # 刷新结果
[root@server~]# showmount -e localhost    # 验证共享
Export list for localhost:
/web 172.16.58.0/24

切换到客户端:
[root@client ~]# rpm -qa nfs-utils rpcbind
[root@client ~]# yum install -y nfs-utils rpcbind
[root@client ~]# showmount -e 172.16.58.10   # 客户端验证共享
Export list for 172.16.58.10:
/opt/web 172.16.58.0/24

[root@client ~]# yum -y install httpd
[root@client ~]# mount -t nfs 172.16.58.10:/opt/web /var/www/html
#将共享目录挂载到网页目录
[root@client ~]# systemctl start httpd    #启动 web

[root@client ~]# echo "wm shi da shuai ge" > /var/www/html/index.html
#客户端修改主页文件
[root@server~]# cat index.html
#服务器端会同步
wm shi da shuai ge
同理可得,服务端写入或修改内容,客户端也会同步

修改/etc/fstab 实现自动挂载:
172.16.58.10:/opt/web /var/www/html nfs defaults,_netdev 0 0
defaults,_netdev 说明这是一个网络设备
注意: NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上 -lf 才能卸载,-l 表示解除正在繁忙的文件系统, -f 表示强制
[root@client~]# systemctl stop nfs //服务器端模拟nfs挂掉
[root@client ~]# umount /var/www/html //客户端卸载时会卡住
^C
[root@client ~]# umount -lf /var/www/html //加 lf 参数成功卸载
其他 nfs 文件:
/var/lib/nfs/etab 记录 NFS 分享出来的目录的完整权限设定值
/var/lib/nfs/xtab 记录曾经登录过的客户端信

四、tcpdump

1.概述

Tcpdump是一个非常强大的命令行网络抓包工具,它可以在Unix/Linux系统上捕获网络数据包,并将其以文本形式输出到标准输出或文件中。它提供了对网络流量进行详细分析的能力,对于网络管理员、安全专家和开发人员来说是一种非常有用的工具

tcpdump   option    proto                dir                   type

option:选项
proto:协议
dir:数据的方向   
【src  172.16.58.10只抓取源地址是58.10】
【dst  172.16.58.20只抓取目标地址是58.20】
type:抓取的数据类型 

2.过滤规则 

2.1基于IP地址/网段过滤

#host选项     #dst 选项 目的地址     #src 选项 源地址     #net 选项

2.2基于端口过滤 

port 端口号
tcpdump port 80
tcpdump -i ens33 port 80 or port 22
tcpdump -i ens33 src port 80 or port 22
tcpdump -i ens33 dst port 80 or port 22
tcpdump -i ens33 portrange 80-8080
tcpdump -i ens33 src portrange 80-8080
tcpdump -i ens33 dst portrange 80-8080

2.3基于协议 

protocal
协议种类: ip arp icmp tcp udp
应用层协议不可以直接抓取

3.常见参数

选项功能
-i
指定监听网络监听端口
-w
将捕获信息保存到文件中,且不分析核打印在屏幕上
-r
读取上面存储的文件
-n
不把 ip 转换成域名,直接显示 ip
-nn
直接显示 ip 和端口号
-t
在每行的输出中,不显示时间
-tt
输出一个时间戳
时间戳 (timestamp), 通常是一个字符序列 , 唯一地标识某一刻的时间
-ttt
每行之间的时间间隔
-tttt
详细日期
-v
产生详细的输出
-c
指定收取数据包的数量
-C
需要与 w 配合使用指定单个文件的大小 百万字节
-Q
过滤数据包的方向 in out inout
-q
简洁的输出
-D
显示所有可用的列表
-s
指定数据包的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值