FTP文件传输协议

一、存储类型

存储类型分为三种

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

  • 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理)

  • 网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程)

DAS

DAS存储是最常见的一种存储方式,尤其是在中小企业应用中。PC中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。DAS是指存储设备直接连接到服务器总线上,存储设备只与一台独立的主机连接,其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID: Redundant Arrays of Independent Disks)、磁盘簇JBOD:Just a Bunch Of Disks)等。

NAS

NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上。与DAS以及SAN不同,NAS是文件级的存储方法。采用NAS较多的功能是用来进行文件共享。NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上。NAS是文件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。如今更多的亲们采用NAS较多的功能是用来文档共享、图片共享、电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和亲们等个人用户的使用。NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内,同时NAS的应用非常灵活。但NAS有一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI连接转移了网络上。这就是说LAN除了必须处理正常的最终用户传输流外,还必须处理包括备份操作的存储磁盘请求

SAN

存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)

三种存储架构的应用场景

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

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

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

二、FTP

1. FTP工作原理

        FTP(File Transfer Protocol)是一种用于在计算机网络上进行文件传输的协议。它是一种标准的客户端-服务器协议,可以通过TCP/IP网络进行通信。

        FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。20端口用于建立数据连接,并传输文件数据。21端口用于建立控制连接,并传输FTP控制命令。

        根据FTP服务器在建立数据连接过程中的主、被动关系,FTP数据连接分为两种模式:

  • 主动模式(PORT style) :服务器主动发起数据连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接。

  • 被动模式(PASV style):服务器被动等待数据连接。如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

2. FTP用户类型

  • 匿名用户:ftp,anonymous

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

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

3. FTP服务状态码

1XX:信息                            125:数据连接打开
2XX:成功类状态                 200:命令OK     230:登录成功
3XX:补充类                        331:用户名OK
4XX:客户端错误                 425:不能打开数据连接
5XX:服务器错误                 530:不能登录

4. FTP相关软件

        常见的FTP服务器软件包括 Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS。

        vsftpd服务的名称来源于“Very Secure FTP Daemon”,除安全性以外,vsftpd高速,稳定,下载速度是WU-FTP的两倍。根据 ftp.redhat.com 服务器反应的数据,可以支持15000个并发连接。

vsftpd官网: https://security.appspot.com/vsftpd.html

5. vsftpd软件

yum install vsftpd -y
#安装 ftp 服务器
systemctl start vsftpd
#开启服务

用户认证配置文件:/etc/pam.d/vsftpd

用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

三、vsftpd服务常见配置

1. 修改默认命令端口

服务端配置:

客户端:连接时需要指明端口号

2. 主动模式端口

3. 被动模式端口

4. 使用当地时间

5. 匿名用户登录

6. 匿名用户上传

7. 匿名用户下载删除文件

8. 指定匿名用户的上传文件的默认的所有者和权限

9. Linux系统用户

10. 将所有系统用户映射为指定的guest用户

11. 禁锢系统用户

禁锢所有系统用户在家目录中

 禁锢用户开启白名单和黑名单

当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,在文件里的不禁锢
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,在文件里的禁锢

12. 日志

wu-ftp 日志:默认启用 

xferlog_enable=YES #启用记录上传下载日志,此为默认值
xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog #可自动生成, 此为默认值

vsftpd日志:默认不启用

13. 提示信息

14. pam模块实现用户访问

        /etc/vsftpd/ftpusers 默认文件中用户拒绝登录,默认是黑名单,但也可以是白名单

15. 传输速率

        单位:字节/秒

四、建立内网yum仓库

ftp搭建内网yum仓库服务器

服务端:

客户端:

验证: 

http搭建内网yum仓库服务器

服务端:

客户端:

验证: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438588.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【leetcode】232. 用栈实现队列

用栈实现队列 题目链接 typedef int valuetype; typedef struct {valuetype* arr;int top;int capacity; } Stack;void Init(Stack* stack);void Push(Stack* stack, valuetype value); void Pop(Stack* stack);valuetype Top(Stack* stack); int Size(Stack* stack); bool…

C/C++ - 函数进阶(C++)

目录 默认参数 函数重载 内联函数 函数模板 递归函数 回调函数 默认参数 定义 默认参数是在函数声明或定义中指定的具有默认值的函数参数。默认参数允许在调用函数时可以省略对应的参数,使用默认值进行替代。 使用 默认参数可以用于全局函数和成员函数。默认参…

Docker安装RcoketMQ

1、Docker安装RcoketMQ-4.9.4 在同级文件夹创建目录config,并在里面创建文件broker.conf,文件内容如下: brokerClusterNameDefaultCluster brokerNamebroker-a brokerId0 deleteWhen04 fileReservedTime48 brokerRoleASYNC_MASTER flushDis…

子类构造器的特点

子类的全部构造器,都会先调用父类的构造器,再执行自己 class F{public F(){System.out.println("父类的无参数构造器");} }class Z extends F{public Z(){System.out.println("子类的无参数构造器");} }public class Test {public s…

Python第三方扩展库Matplotlib

Python第三方扩展库Matplotlib Matplotlib 是第三方库,不是Python安装程序自带的库,需要额外安装,它是Python的一个综合性的绘图库,提供了大量的绘图函数用于创建静态、动态、交互式的图形和数据可视化,可以帮助用户创…

【深度学习:目标检测】深度学习中目标检测模型、用例和示例

【深度学习:目标检测】深度学习中目标检测模型、用例和示例 什么是物体检测?物体检测与图像分类物体检测与图像分割 计算机视觉中的目标检测物体检测的优点物体检测的缺点深度学习和目标检测人员检测 物体检测如何工作?一阶段与两阶段深度学习…

算法每日一题: 边权重均等查询 | 公共子祖先

大家好,我是星恒,今天给大家带来的是一道图里面有关公共子祖先的题目,理解起来简单,大家 题目:leetcode 2846 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n …

༺༽༾ཊ—Unity之-05-抽象工厂模式—ཏ༿༼༻

首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用 抽象工厂模式 创建 人物与宠物 模型, 首先资源商店下载 人物与宠物…

258. Add Digits(各位相加)

问题描述 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 问题分析 我们至少要将num的每一位相加一次得到一个新的数字,然后判断是否新的数字需要每一位再次相加,如此重复下去,这…

PCB的通孔,盲孔,埋孔

通孔:双层板从顶层到底层的打通,这样电流就能够从顶层到底层 盲孔:因为看不到底,像一口井一样,只能打到中间,里面灌上铜,我们可以从第一层切换到第二层,第三层等等,盲孔…

2024年数学建模美赛 分析与编程

2024年数学建模美赛 分析与编程 1、本专栏将在2024年美赛题目公布后,进行深入分析,建议收藏; 2、本专栏对2023年赛题,其它题目分析详见专题讨论; 2023年数学建模美赛A题(A drought stricken plant communi…

什么是数据库设计?基本步骤有哪些?

数据库设计结构图 实线代表输入,虚线代表输出,每个节点的输出作为下一个节点的输入。 基本步骤 1.需求分析阶段 数据需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能&#xff0…