目录
2)在服务端切换到/var/ftp目录下,新建一个centos7目录
2)将光驱挂载到/var/www/html目录下,然后启用httpd服务
一、网络文件共享服务
1、存储类型
存储类型分为三种
-
直连式存储:Direct-Attached Storage,简称DAS
-
网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程)
-
存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理)
DAS | NAS | SAN | |
传输类型 | SCSI、FC | IP | IP、FC、SAS |
数据类型 | 数据块 | 文件 | 数据块 |
典型应用 | 任何 | 文件服务器 | 数据库应用 |
优点 | 硬盘与服务器分离, 便于统一管理 | 不占用应用服务器资源 广泛支持操作系统 扩展较容易、 即插即用,安装简单方便 | 高扩展性 高可用性 数据集中,易管理 |
缺点 | 连接距离短 数据分散,共享困难 存储空间利用率不高 扩展性有限 | 不适合存储量大的块级应用 数据备份及恢复占用网络带宽 | 相比NAS成本较高 安装和升级比NAS复杂 |
三种存储架构的应用场景
-
DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
-
NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
-
SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂
2、FTP文件传输协议
基于C/S结构
数据传输格式:二进制(默认)和文本
双通道协议:命令和数据连接 21 命令端口(权限,认证) 20数据端口(真实传数据)
两种模式
从服务器角度
-
主动(PORT style):服务器主动连接客户端
命令(控制):客户端:随机port ---> 服务器:21/tcp
数据:客户端:随机port <---服务器:20/tcp
-
被动(PASV style):服务器被动等待客户端连接
命令(控制):客户端:随机port ---> 服务器:21/tcp
数据:客户端:随机port ---> 服务器:随机port /tcp
FTP服务状态码
1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录
用户认证
-
匿名用户:ftp,anonymous,对应Linux用户ftp
-
系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
-
虚拟用户:特定服务的专用用户,独立的用户/密码文件
FTP服务器端软件
Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS
vsftpd:Very Secure FTP Daemon,CentOS 默认FTP服务器,高速,稳定,下载速度是WU-FTP的两倍,由 vsftpd 包提供。
用户认证配置文件:/etc/pam.d/vsftpd
用户和其共享目录
-
匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp
-
系统用户共享文件位置:用户家目录
-
虚拟用户共享文件位置:为其映射的系统用户的家目录
vsftpd基础操作
1、安装服务端
[root@heitui ~]#yum install -y vsftpd
[root@heitui ~]#yum install -y ftp.x86_64
2、启动服务
[root@heitui ~]#systemctl start vsftpd
3、客户端连接
[root@server1 ~]#ftp 192.168.3.100
vsftpd服务常见配置
1、修改默认命令端口
在/etc/vsftpd/vsftpd.conf添加一行listen_port=2121,就可以将默认端口修改。
如:服务端修改默认命令端口,然后重启
[root@server1 ~]#vim /etc/vsftpd/vsftpd.conf
[root@server1 ~]#systemctl restart vsftpd
服务端访问
2、 主动模式和被动模式端口
主动模式
connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 (默认) 指定主动模式的端口
被动模式pasv_min_port=6000 0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010
3、匿名用户登陆
anonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES 匿名用户略过口令检查 , 默认NO
4、匿名用户上传和创建目录
anon_upload_enable=YES 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 匿名建目录
5、匿名用户下载和删除文件
anon_world_readable_only=NO 只能下载全部读的文件, 默认YES
anon_other_write_enable=YES 可删除和修改上传的文件,默认NO
6、指定匿名用户的上传文件的默认的所有者和权限
匿名用户上传文件默认的所有者是ftp 用户 是可以修改的
chown_uploads=YES #默认NO
chown_username=zhangsan
7、Linux系统用户
local_enable=YES 是否允许linux用户登录
write_enable=YES 允许linux用户上传文件
local_umask=022 指定系统用户上传文件的默认权限对应umask
8、将所有系统用户映射为指定的guest用户
guest_enable=YES 所有系统用户都映射成guest用户
guest_username=ftp 配合上面选项才生效,指定guest用户
local_root=/ftproot 指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir=/etc/vsftpd/conf.d/ 每个用户独立的配置文件目录
将所有用户的都映射成ftp匿名用户
让每个用户拥有独立的配置
[root@server1 ~]#mkdir -p /etc/vsftpd/conf.d #先建立好配置文件夹
#编写子配置文件[root@server1 ~]#vim /etc/vsftpd/conf.d/lisi
local_root=/data/lisi
[root@server1 ~]#vim /etc/vsftpd/conf.d/heitui
local_root=/data/heitui
# 建立两个文件测试
[root@server1 ~]#mkdir -p /da/{lisi,heitui}
[root@server1 ~]#touch /da/lisi/lisi.txt
[root@server1 ~]#touch /da/heitui/heitui.txt
3、NFS
NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol 远程过程调用)实现。
NFS优势:节省本地存储空间,将常用的数据,如:/home目录,存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身存储空间的使用。
NFS工作原理:
1)用户通过本地的rpcbind服务,向网络中的另一台服务器rpcbind服务查找NFS服务的方式;
2)通过rpcbind服务反馈的信息,是本机使用网络中的另一台服务器的NFS服务。
在访问NFS服务时,双方都得打开NFS服务。
实际操作
1、客户端和服务端都需要安装nfs软件
yum install nfs-utils.x86_64 -y
2、服务端创建共享文件
[root@server1 ~]#vim /etc/exports #编辑配置文件
/share 192.168.3.0/24(rw,sync,no_root_squash)共享目录 共享网段 读写,同步,无root权限
[root@server1 ~]#mkdir /share #创建共享目录
3、启动NFS服务,并查看详细的nfs信息
[root@server1 ~]#systemctl start nfs
[root@server1 ~]#exportfs -v
4、客户端打开nfs服务,并测试
[root@heitui ~]#systemctl start nfs
[root@heitui ~]#showmount -e 192.168.3.101
二、YUM仓库
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间
yum安装,必须要有两个文件夹,一个是Packages文件夹(RPM包),一个是repodata文件夹(元数据,软件的目录、依赖关系和软件位置)
1、仓库设置文件
位置:/etc/yum.repos.d/*.repo //yum仓库文件位置
2、日志文件
位置:/var/log/yum.log //查看日志文件
3、主配置文件
位置:/etc/yum.conf //主配置文件
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0 //是否保存缓存 0代表不保存,1代表保存
debuglevel=2 //调试级别了解即可
logfile=/var/log/yum.log // 日志文件位置
exactarch=1 //是否允许不同版本的rpm安装
obsoletes=1 //update 的一个参数是否可以允许旧版本的运行
gpgcheck=1 //验证秘钥
plugins=1 //是否允许插件1代表可以
installonly_limit=5 //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-releaseyum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
4、yum命令详解
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum provides | \ | 精确查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体软件包 |
yum groupinstall | \ | 安装具体软件包组 |
yum update | 所有软件升级 | 具体软件升级 |
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum group update | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum history undo | 加入序号卸载序号里安装的软件 | \ |
yum history redo | 加入序号重新执行序号里的操作 | \ |
yum remove 卸载软件,卸载的只有软件包,并不卸载依赖关系的包
5、搭建本地yum仓库
1)挂载光驱
[root@heitui ~]#mount /dev/sr0 /mnt
2)切换到仓库文件夹中,并将其他源都给移动到新建的文件夹中
[root@heitui ~]#cd /etc/yum.repos.d/ #切换到仓库文件夹中
[root@heitui yum.repos.d]#mkdir bak #创建新文件夹
[root@heitui yum.repos.d]#mv *.repo bak/ #将所有源移动到新文件夹中,减少对本地源的影响
3)手动编辑本地源文件
[root@heitui yum.repos.d]#vim local.repo
[local] #文件名
name=local #源的名字
baseurl=file:///mnt # 安装包的路径
gpgcheck=0 #不使用密钥核实
4)清理yum缓存,并重新获取元数据
[root@heitui yum.repos.d]#yum clean all #清理yum缓存
[root@heitui yum.repos.d]#yum makecache #重新构建元数据
5)安装一个软件测试
[root@heitui yum.repos.d]#yum install -y tree #安装一个tree软件
6、 ftp方式搭建yum仓库
1)客户端ftp软件,服务端下载vsftp软件
客户端:
[root@heitui yum.repos.d]#yum install -y ftp.x86_64
服务端:
[root@server1 ~]#yum install -y vsftpd
2)在服务端切换到/var/ftp目录下,新建一个centos7目录
[root@server1 ~]#cd /var/ftp/
[root@server1 ftp]#mkdir centos7
[root@server1 ftp]#ls
centos7 pub
3)服务端将光驱里的文件包全部拷到centos7里面
此处我已经先将光驱挂载到 了mnt目录下了如有问题参见本地仓库搭建
[root@server1 ftp]#cp -rf /mnt/* centos7/ &
4)建立数据库文件
[root@server1 ftp]#createrepo -g /var/ftp/centos7/repodata/repomd.xml ./
5)服务端开启vsftp服务,关闭防火墙和selinux
[root@server1 ftp]#systemctl stop firewall.service
[root@server1 ftp]#setenforce 0
[root@server1 ftp]#systemctl start vsftpd
6)客户端关闭防护墙和selinux,启动ftp服务
[root@heitui yum.repos.d]#systemctl stop firewall.service
[root@heitui yum.repos.d]#setenforce 0
[root@heitui yum.repos.d]#systemctl start ftp #下载后,就可以使用ftp,可以不启用ftp
7)编写yum仓库
[root@heitui yum.repos.d]#vim ftp.repo
[ftp]
name=ftp
baseurl=ftp://192.168.3.101/centos7
gpgcheck=0
[root@heitui yum.repos.d]#yum clean all
[root@heitui yum.repos.d]#yum makecache
8)安装一个软件测试
[root@heitui yum.repos.d]#yum install -y tree.x86_64
7、http方式搭建
1)服务端安装httpd软件
[root@server1 ~]#yum install -y httpd.x86_64
2)将光驱挂载到/var/www/html目录下,然后启用httpd服务
[root@server1 ~]#mount /dev/sr0 /var/www/html
[root@server1 html]#systemctl start httpd.service
3)客户端编辑http源
[root@heitui yum.repos.d]#vim http.repo
[httpd]
name=http
baseurl=http://192.168.3.101
gpgcheck=0
[root@heitui yum.repos.d]#yum clean all[root@heitui yum.repos.d]#yum makecache
4)安装个软件测试一下
[root@heitui yum.repos.d]#yum install tree -y