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
相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式