网络文件共享服务
存储类型
直连式存储:Direct-Attached Storage,简称DAS
网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程)
存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理)
DAS
DAS存储是最常见的一种存储方式,尤其是在中小企业应用中。PC中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID: Redundant Arrays of Independent Disks)、磁盘簇JBOD:Just a Bunch Of Disks)等。
NAS
NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上。与DAS以及SAN不同,NAS是文件级的存储方法。采用NAS较多的功能是用来进行文件共享。NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上。NAS是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。
SAN
存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。
FTP
FTP工作原理
FTP(文件传输协议)的工作原理基于客户端-服务器架构。具体来说:
1.连接建立:
FTP客户端与服务器之间建立两条连接:控制连接和数据连接。控制连接用于传输控制信息(如命令和响应),而数据连接用于文件数据的传输。
2.认证过程:
客户端发起连接请求时,服务器会要求输入用户名和密码进行认证。如果是公开的FTP服务,通常会使用”anonymous”作为用户名,用户的电子邮件地址作为密码。
3.文件传输:
认证成功后,客户端可以发送文件上传或下载的请求。服务器响应这些请求,并开始文件的传输。
4.数据传输:
在数据传输阶段,客户端告诉服务器准备接收文件的大小和开始接收的指令。服务器根据这些指令发送文件数据。客户端接收并存储这些数据,直到传输完成。
5.连接关闭:
数据传输完成后,客户端和服务器都会关闭各自的连接。
6.可靠性:
FTP使用TCP协议进行数据传输,确保了数据传输的可靠性。TCP通过三次握手建立连接,并通过确认和重传机制保证数据的完整性。
7.文件类型:
FTP支持传输多种类型的文件,包括文本、二进制、图像、声音、数据压缩文件等。
8.匿名服务:
匿名FTP服务允许用户无需登录即可访问公开资源。这种服务通常使用”anonymous”作为用户名,用户的电子邮件地址作为密码。
FTP工作模式
主动模式
控制连接:客户端通过TCP端口21与服务器建立控制连接,用于传输FTP协议的控制信令。
数据连接:服务器主动打开TCP端口20,并与客户端的随机端口建立数据传输通道。数据连接建立后,通常也由服务器主动关闭。
被动模式
控制连接:与主动模式相同,客户端通过TCP端口21与服务器建立控制连接。
数据连接:服务器选择一个临时端口,并告知客户端。客户端随后与该临时端口建立数据传输通道。在整个过程中,服务器总是被动接收客户端的数据连接。
常见 FTP 相关软件
FTP服务器端软件:
vsftpd:Very Secure FTP Daemon,CentOS 默认FTP服务器
高速,稳定,下载速度是WU-FTP的两倍
ftp.redhat.com数据:单机最多可支持15000个并发
vsftpd软件介绍
vsftpd 是 “very secure FTP daemon” 的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX 等系统上面,是一个完全免费的、开发源代码的 ftp 服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持 IPv6、速率高等。
vsftpd服务常见配置
安装服务端
[root@localhost ~]# yum install vsftpd -y
#安装 ftp 服务器
[root@localhost ~]# systemctl start vsftpd
#开启服务
客户端连接服务端
[root@localhost ~]#ftp 192.168.10.10
# ftp 客户端 工具 服务端地址
onnected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): anonymous #此处填写用户名 默认使用 ftp 或者匿名用户
#默认没有密码
530 Permission denied.
Login failed.
ftp>
ftp> help
#可以使用help 查看帮助
ftp> ls
#可以使用 ls 查看文件列表
ftp> get bigfile
#下载大文件, 后可以 使用 ss -nt 看到又打开一个通道
服务端:修改 默认命令端口号
[root@node2 pub]#vim /etc/vsftpd/vsftpd.conf
#随便一行插入
listen_port=2121
[root@node2 pub]#systemctl restart vsftpd
#重启服务
[root@node2 pub]#ss -ntl
#查看端口
匿名用户登录
anonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES 匿名用户略过口令检查 , 默认NO
Linux系统用户
local_enable=YES 是否允许linux用户登录
write_enable=YES 允许linux用户上传文件
local_umask=022 指定系统用户上传文件的默认权限对应umask
禁锢系统用户
禁锢所有系统用户在家目录中
chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢
禁锢用户开启白名单和黑名单
chroot_list_enable=YES #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list #默认值
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单
NFS
NFS工作原理
NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol 远程过程调用)实现。
RPC采用C/S模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
NFS共享配置文件格式
/dir 主机1(opt1,opt2) 主机2(opt1,opt2)...
NFS工具
1.exportfs
exportfs:可用于管理NFS导出的文件系统
常见选项:
-v #查看本机所有NFS共享
-r #重读配置文件,并共享目录
-a #输出本机所有共享
-au #停止本机所有共享
2.showmount
常见用法:
showmount -e hostname
[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *
3.mount.nfs
客户端NFS挂载
NFS相关的挂载选项:man 5 nfs
fg #(默认)前台挂载
bg #后台挂载
hard #(默认)持续请求
soft #非持续请求
intr #和hard配合,请求可中断
rsize #和wsize 一次读和写数据最大字节数,rsize=32768
_netdev #无网络连接不挂载
vers #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0
操作
yum install nfs-utils.x86_64 -y
#客户端服务端两边都需要安装 nfs软件
vim /etc/exports
/share *
/share *(rw)
/share *(rw,no_root_squash)
#不压榨root
/share *(rw,no_root_squash,all_squash
#都压榨
/nfs1 *(rw,no_root_squash,all_squash,anonuid=1003,anongid=1003)
#指定压榨成统一用户
#文件系统需要权限
chmod 777 /share
[root@node2 mnt]#touch 456
touch: 无法创建"456": 只读文件系统
[root@localhost nfs1]#ll
总用量 4
-rw-r--r--. 1 root root 0 10月 17 01:34 123
-rw-r--r--. 1 nfsnobody nfsnobody 0 10月 17 01:39 456
-rw-r--r--. 1 root root 2259 10月 17 01:34 passwd
[root@localhost nfs1]#exportfs -v
/nfs1 <world>(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
注意在客户端核服务端uid一样的用户,名字不同,后果如何?