目录
一.FTP 文件传输协议
FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准协议。它允许用户在客户端和服务器之间传输文件,例如从本地计算机上传文件到远程服务器,或者从服务器下载文件到本地计算机。以下是FTP的工作原理介绍:
-
客户端和服务器连接:FTP的工作开始于客户端(通常是用户的计算机)与服务器之间建立连接。连接可以使用TCP(传输控制协议)来确保可靠的数据传输。
-
建立控制连接:在客户端和服务器之间,首先建立一个控制连接。该连接用于发送控制命令、验证用户身份以及管理文件传输过程。默认情况下,FTP使用端口21来建立控制连接。
-
用户认证:一旦控制连接建立,客户端需要提供用户名和密码进行身份验证。这些凭据用于确认客户端是否有权限进行文件传输。
-
命令和响应:客户端和服务器之间通过控制连接发送命令和接收响应。客户端可以发送诸如上传、下载、删除、重命名等命令,而服务器将相应响应(如成功、失败、文件不存在等)发送回客户端。
-
数据连接:由于FTP不仅可以传输文件内容,还可以传输文件的目录结构等数据,因此需要建立数据连接。数据连接有两种类型:主动模式和被动模式。
两种模式
-
主动(PORT style):服务器主动连接客户端
命令(控制):客户端:随机port ---> 服务器:21/tcp
数据:客户端:随机port <---服务器:20/tcp
-
被动(PASV style):服务器被动等待客户端连接
命令(控制):客户端:随机port ---> 服务器:21/tcp
数据:客户端:随机port ---> 服务器:随机port /tc
错误码
1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录
用户认证
匿名用户:ftp,anonymous,对应Linux用户ftp
系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
虚拟用户:特定服务的专用用户,独立的用户/密码文件
二.vsftpd基础操作
vsftpd配置文件位置/etc/vsftpd/vsftpd.conf
2.1 安装服务端
yum install vsftpd ftp -y #此步骤需要yum有网络源或本地源中有vsftpd
启动服务
systemctl start vsftpd
2.2 客户端测试连接
2.3 主动模式端口
需要修改配置文件
vim /etc/vsftpd/vsftpd.conf
主动模式
2.4 修改默认端口号
在配置文件内加上listen_port=端口号
重启服务
systemctl restart vsftpd
客户端默认访问22端口显示拒绝连接
2.5 匿名用户登陆
2.6 使用当地时间
2.7 匿名用户下载 删除文件
anon_world_readable_only=NO 只能下载全部读的文件, 默认YES
anon_other_write_enable=YES 可删除和修改上传的文件,默认NO
2.8 将所有系统用户映射为指定的guest用户
guest_enable=YES 所有系统用户都映射成guest用户
guest_username=ftp 配合上面选项才生效,指定guest用户
local_root=/ftproot 指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir=/etc/vsftpd/conf.d/ 每个用户独立的配置文件目录
三. NFS
NFS,全称为Network File System,是一种分布式文件系统协议,旨在允许不同计算机之间共享文件和存储资源。它最初由Sun Microsystems开发并于1984年首次发布,是UNIX和类UNIX操作系统中广泛使用的一种网络文件共享协议。
NFS的工作原理如下:
-
客户端-服务器模型: NFS基于客户端-服务器模型。在这个模型中,存在一个或多个NFS服务器,这些服务器维护着存储资源,例如文件和目录。客户端是需要访问这些资源的计算机。
-
协议栈: NFS协议运行在应用层,使用远程过程调用(RPC)来实现客户端与服务器之间的通信。通信过程涉及序列化和反序列化数据,以便在网络上传输信息。
-
文件访问: 客户端通过向服务器发送RPC请求来请求文件或目录的访问。服务器响应这些请求并提供所请求的内容。NFS支持标准的文件操作,如打开、读取、写入和关闭文件,以及目录操作,如列出目录内容、创建和删除目录等。
-
透明性: NFS旨在提供透明的文件访问。这意味着客户端可以像访问本地文件一样访问远程文件,而无需了解文件的物理位置和存储细节。然而,网络延迟和性能问题可能会影响透明性。
-
缓存: 客户端通常会缓存从服务器获取的文件内容,以减少对服务器的频繁访问。然而,这可能导致缓存不一致的问题,因此NFS提供了一些机制来管理缓存,如读写一致性和缓存刷新。
-
安全性: 初始的NFS版本在安全性方面存在一些问题,因为它们没有提供强大的身份验证和加密机制。后续的NFS版本(如NFSv3和NFSv4)引入了更强大的安全特性,如Kerberos身份验证和数据加密。
-
NFS版本: NFS有多个版本,每个版本都引入了不同的改进和特性。常见的版本包括NFSv2、NFSv3和NFSv4。这些版本之间的差异包括性能、安全性、支持的操作等方面。
-
性能和优化: 尽管NFS在文件共享方面提供了便利,但在高负载环境中可能会面临性能问题。为了优化性能,可以采取一些措施,如适当的缓存设置、网络优化和服务器配置
3.1 安装nfs
yum install nfs-utils.x86_64 -y
3.2 服务端分享文件
vim /etc/exports #编写nfs配置文件
启动服务
systemctl start nfs #启动服务
3.3 客户端远程挂载
mount -o [选项] 远程服务器ip:/分享目录 [挂载点]
fg #(默认)前台挂载
bg #后台挂载
hard #(默认)持续请求
soft #非持续请求
intr #和hard配合,请求可中断
rsize #和wsize 一次读和写数据最大字节数,rsize=32768
_netdev #无网络连接不挂载
vers #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0
客户端启动服务
systemctl start nfs #启动服务
临时挂载
mount 192.168.2.100:/zuoye /test
四. ftp实现远程yum仓库
4.1 前期准备
客户端:ftp
服务端:ftp vsftp
4.2 服务端
在服务端切换到/var/ftp目录下,新建一个centos7目录
将文件光盘挂载到 /var/ftp/centos7中
建立数据库文件
createrepo -g /var/ftp/repodata/repomd.xml ./
开启各种服务 ,关闭防火墙 selinux
4.3 客户端
进入yum配置文件夹
编写配置文件
vim ftp.repo
yum安装 tree