Linux网络服务 NFS、FTP文件共享服务

25 阅读6分钟

存储类型及应用场景

存储类型分为三种

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

硬盘在本地主机上,存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备,存储设备硬件、文件系统都由个人管理。

  • 网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程,类似于百度网盘。无法决定大小和文件系统。)

NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上,NAS是文件级的存储方法,通常也被叫做附加存储。

  • 存储区域网络:Storage Area Network,简称SAN(可以使用空间,也可以决定文件系统,但无法接触到硬件)

存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络,无法接触硬件但是文件系统可以管理。也因为使用需要依靠网络读写效率会随着网络来变化。

应用场景:

  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
  • NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
  • SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂

一、FTP文件传输协议

1.FTP的工作原理

文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于C/S结构

  • 数据传输格式:二进制(默认)和文本
  • 双通道协议:命令和数据连接 21 命令端口(权限,认证等一些基本信息) 20 数据端口(真实数据传输)

2.两种模式(从服务器角度出发)

  1. 主动(PORT style):

服务器主动连接客户端 命令(控制):客户端:随机port —> 服务器:21/tcp

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

客户机会随机产生一个端口号主动去连接服务器的tcp21端口,如果服务器是主动模式,服务器会主动开启20端口和客户端连接,然后向客户端传输数据。

image.png

  1. 被动(PASV style):

服务器被动等待客户端连接 命令(控制):客户端:随机port —> 服务器:21/tcp

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

客户机会随机产生一个端口号主动去连接服务器的tcp21端口,如果服务器是被动模式,那么服务器会产生一个随机的端口号,被动等待客户机来连接后再发送数据,客户机通过21端口号来获取服务端的随机端口号。

image.png

1.3登录用户的类型

  • 匿名用户:ftp,anonymous,对应Linux用户ftp
  • 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
  • 虚拟用户:特定服务的专用用户,独立的用户/密码文件

3 常见的FTP协议相关软件

FTP服务器端软件

Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS等

vsftpd:Very Secure FTP Daemon

CentOS 默认的FTP服务器

高速,稳定,下载速度是WU-FTP的两倍

ftp.redhat.com数据:单机最多可支持15000个并发

4.vsftpd软件介绍

1.安装服务端

安装FTP服务器:yum install vsftpd(不是最小化安装将默认装好.) image.png

开启vsftpd服务:systemctl start vsftpd image.png

2.客户端连接服务端

客户端安装ftp服务器:yum install ftp image.png

 二、NFS 文件共享服务

NFS(Network File System 网络文件服务),是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议,以完成远程到本地的映射过程。

在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

2.1 NFS工作原理

image.png

  • 客户端请求:NFS 的客户端向 NFS 服务器发送文件访问请求。这可以是读取文件、写入文件或执行其他文件操作。

  • 访问协议:客户端使用 RPC(Remote Procedure Call)协议与服务器通信。客户端会发送特定的 RPC 调用来请求文件操作,如打开文件、读取文件或关闭文件。

  • NFS 服务端:NFS 服务器收到来自客户端的请求,并解析这些请求。服务器根据客户端请求的内容,在本地文件系统上执行相应的操作。

  • 文件传输:当服务器执行文件操作时,它会读取或写入相应的文件或目录。数据通过网络传输,从服务器发送到客户端或从客户端发送到服务器。

  • 返回结果:服务器完成请求后,会将执行结果返回给客户端。这可能包括成功的确认、文件内容、错误信息等。

2.2 NFS的优缺点:

优点:

节省本地存储空间,将常用的数据,如:/home目录,存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身存储空间的使用

缺点:

安全性较低

2.3 NFS的软件介绍

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

相关软件包:rpcbind(必须先装) ,tcp_wrappers image.png

Kernel支持:nfs.ko(内核功能 文件系统)

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

NFS服务主要进程:

  • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
  • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
  • rpc.lockd 非必要,管理文件锁,避免同时写出错
  • rpc.statd 非必要,检查文件一致性,可修复文件