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
相关推荐
C++忠实粉丝23 分钟前
Linux环境基础开发工具使用(2)
linux·运维·服务器
康熙38bdc1 小时前
Linux 环境变量
linux·运维·服务器
存储服务专家StorageExpert1 小时前
DELL SC compellent存储的四种访问方式
运维·服务器·存储维护·emc存储
hakesashou2 小时前
python如何比较字符串
linux·开发语言·python
Ljubim.te2 小时前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream20092 小时前
Linux性能调优技巧
linux
大G哥2 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
长天一色2 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
醉颜凉2 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
QMCY_jason3 小时前
Ubuntu 安装RUST
linux·ubuntu·rust