Linux网络服务的存储,FTP服务和NFS共享

目录

一.存储

1.存储类型

2.应用场景

二.FTP服务

1.FTP工作原理介绍

2.FTP协议的两种模式

3.用户类型

4.匿名用户案例

三.NFS

1.NFS简介

2.NFS服务主要进程

3.NFS特点

4.NFS共享配置文件格式

5.NFS工具

[5.1 exportfs](#5.1 exportfs)

[5.2 showmount](#5.2 showmount)

[5.3 mount.nfs](#5.3 mount.nfs)

6.创建文件夹实验


一.存储

1.存储类型

存储类型分为三种

  • 直连式存储:Direct-Attached Storage,简称DAS

  • 网络附加存储:Network-Attached Storage,简称NAS

  • 存储区域网络:Storage Area Network,简称SAN

DAS:存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上

SAN:有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘

NAS:存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS FTP 等都是NAS

2.应用场景
  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

  • NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

  • SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂二.

二.FTP服务

1.FTP工作原理介绍

FTP(File TransferProtocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。tcp协议:20,21端口。

20端口:传输真实数据 21端口:传输命令端口

2.FTP协议的两种模式

(1)主动模式(PORT style):服务器开启20端口主动连接客户端,传递数据

命令(控制):客户端:随机port ----> 服务器:21/tcp

数据:客户端:随机port <----服务器:20/tcp

过程:客户端随机生成一个端口号,主动去连接服务器的tcp21端口,服务器为主动模式那么服务器会主动开启20端口和客户端相连,然后传输数据

(2)被动模式(PASV style):服务器开启随即端口,被动等待客户端连接,然后传递数据

命令(控制):客户端:随机port ----> 服务器:21/tcp

数据:客户端:随机port ----> 服务器:随机port /tcp

过程:客户端随机生成一个端口号,主动去连接服务器的tcp21端口,服务器是被动模式,服务器会产生一个随机的端口号,被动等待客户机来连接后在发送数据

3.用户类型
  • 匿名用户:ftp,anonymous,对应Linux用户ftp

  • 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow

  • 虚拟用户:特定服务的专用用户,独立的用户/密码文件

4.匿名用户案例

设置匿名用户访问的ftp服务(最大权限)

进入配置文件/etc/vsftpd/vsftpd.conf 修改配置文件

[root@zxy12 ~]# vim /etc/vsftpd/vsftpd.conf
 
anonymous_enable=YES           #开启匿名用户访问,默认开启
write_enable=YES               #开放服务器的写权限,默认已开启
local_umask=022                #设置匿名用户所上传数据的权限掩码(反掩码)
local_enable=YES               #是否允许linux用户登录
anon_upload_enable=YES         #允许匿名用户上传文件,默认已注释,这里需取消注释
anon_mkdir_write_enable=YES    #允许匿名用户创建目录,默认已注释,这里需取消注释
anon_other_write_enbale=YES    #允许删除、重命名、覆盖等操作。这里需要添加
guest_enable=YES 						#所有系统用户都映射成guest用户
guest_username=ftp   					#配合上面选项才生效,指定guest用户
local_root=/ftproot 					#指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir=/etc/vsftpd/conf.d/ 	#每个用户独立的配置文件目录
chroot_local_user=YES                   #禁锢系统用户,默认NO,即不禁锢
#wu-ftp 日志:默认启用
xferlog_enable=YES                      #启用记录上传下载日志,此为默认值
xferlog_std_format=YES                  #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog           #可自动生成, 此为默认值
#vsftpd日志:默认不启用
dual_log_enable=YES                     #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log     #可自动生成, 此为默认值

修改/var/ftp/pub 文件权限为777

匿名访问测试

三.NFS

1.NFS简介

NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议

软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)

相关软件包:rpcbind(必须),tcp_wrappers

Kernel支持:nfs.ko

端口:2049(nfsd), 其它端口由portmap(111)分配

2.NFS服务主要进程
  • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录

  • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理

  • rpc.lockd 非必要,管理文件锁,避免同时写出错

  • rpc.statd 非必要,检查文件一致性,可修复文件

说明:CentOS 6 开始portmap进程由rpcbind代替

日志:/var/lib/nfs/

NFS配置文件:

/etc/exports

/etc/exports.d/*.exports

3.NFS特点

(1)采用TCP/IP传输网络文件

(2)安全性低

(3)简单易操作

(4)适合局域网环境

4.NFS共享配置文件格式

/dir 主机1(opt1,opt2) 主机2(opt1,opt2)

格式:共享目录  客户机地址 (权限)
默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
5.NFS工具
5.1 exportfs

exportfs:可用于管理NFS导出的文件系统

常见选项:

exportfs -v #查看本机所有NFS共享

exportfs -r #重读配置文件,并共享目录

exportfs -a #输出本机所有共享

exportfs -au #停止本机所有共享

示例:

进入/etc/exports 配置文件,编辑配置文件

exportfs -v #查看本机所有NFS共享

exportfs -r #重读配置文件,并共享目录

exportfs -au #停止本机所有共享

5.2 showmount

远端客户查看有哪些共享文件夹

常见用法:

showmount -e hostname  

[root@centos7 ~]#showmount -e 192.168.240.11
Export list for 192.168.240.11:
/share *
5.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

示例:

将一些文件复制到/share下

临时挂载

主机11 ip地址 :文件夹 主机12的挂载目录

永久挂载

[root@zxy12 ~]# vim   /etc/fstab

192.168.240.11:/share   /mnt    nfs    defaults,_netdev    0   0

netdev:如果前面不通就不进行挂载

6.创建文件夹实验

在主机12上/mnt下创建文件夹

编辑主机11配置文件/etc/exprots,增加权限

no_all_squash :不压榨普通用户

root_squash :压榨其他主机管理员

主机12在/mnt下创建文件夹

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
相关推荐
2202_7544215411 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
努力的悟空38 分钟前
国土变更调查拓扑错误自动化修复工具的研究
运维·自动化
运维&陈同学1 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
旦沐已成舟1 小时前
DevOps-Jenkins-新手入门级
服务器
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
软件技术员2 小时前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
哎呦喂-ll2 小时前
Linux进阶:环境变量
linux
耗同学一米八3 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
Rverdoser3 小时前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb