详解 ➾【FTP服务工作原理及连接模式】

详解 ➾【FTP服务工作原理及连接模式】

    • 🔻 前言
    • 🔻 一、FTP服务简介
      • 🚥 1.1 FTP工作原理
      • 🚥 1.2 匿名用户访问的产生
      • 🚥 1.3 FTP服务的连接模式
      • 🚥 1.4 几种流行的FTP服务器软件
    • 🔻 总结—温故知新

🔻 前言

随着网络技术的发展,以HTTP 协议为基础的 www 服务已不能满足文件传输的需要,因此FTP 服务(File Transfer Protocol,文件传输服务)随之产生。FTP 服务是一种专门用于文件传输的服务,该服务使用的是文件传输协议,使用该服务将极大地方便文件的传输与管理。

🔻 一、FTP服务简介

FTP 最主要的功能是在服务器端与客户端之间进行文件的传输。FTP 是以TCP 封包的模式来进行服务器与客户端之间的连接的,当连接建立后,用户便可以在客户端连接 FTP 服务器来进行文件的上传与下载,同时也可以直接管理用户在 FTP服务器上的文件。

🚥 1.1 FTP工作原理

FTP是基于客户端/服务器模式的,其工作原理(分为4部分)如下:

发出连接请求

首先,客户端向服务器发出连接请求,同时客户端系统动态打开一个大于1024 的端口(比如1031)等候服务器连接。
在这里插入图片描述
建立FTP会话连接

当FTP服务器在端口21侦听到该请求后,会在客户端1031端口和服务器的21端口之间建立起一个FTP会话连接。
在这里插入图片描述

数据传输

当需要传输数据时,FTP客户端再动态打开一个大于1024的端口(比如1032)连接到服务器的20端口,并在这两个端口之间进行数据的传输。
在这里插入图片描述

自动释放动态分配的端口

数据传输完毕后,FTP 客户端将断开与 FTP 服务器的连接,客户端上动态分配的端口将自动释放掉。
在这里插入图片描述

🚥 1.2 匿名用户访问的产生

要使用 FTP 服务来实现文件的传输,首先需要登录到服务器,然后才能实现该操作。但这对于很多公开提供软件下载的服务器来说非常不方便。

为了解决该问题,匿名用户访问随之产生。匿名用户是通过使用公用的用户名 Anonymous,密码不限的管理策略(密码一般是用户的邮箱),让任何用户都可以方便地从这些服务器上下载相关资源。

注意:

匿名文件传输使用户以匿名身份与远程主机建立起连接,并被允许从远程主机上复制文件。匿名 FTP一直是 Intermet 上信息资源获取的最主要方式,人们只要知道特定信息资源的主机地址,就可以用匿名 FTP 登录并获取所需信息资料。

🚥 1.3 FTP服务的连接模式

FTP支持主动模式(ActiveFTP)被动模式(PassiveFTP)两种。

主动模式

首先,FTP客户端随机开启一个大于1024的端口N(1025),并和服务器的21号端口建立连接,然后开放N+1号端口(1026)进行监听,同时向服务器发出PORT1026命令(PORT命令包括客户端用什么端口接收数据)。

服务器端在传送数据的时候,通过自己的 TCP 20端口发送数据,因此FTP 必须和客户端建立一个新的连接用于数据传输。
在这里插入图片描述

被动模式

在被动模式下建立控制通道类似于在主动模式下建立通道的操作:

FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,同时会开启N+1号端口(1026),然后向服务器发送 PASV 命令,通知服务器处于被动模式。

服务器收到命令后,开放一个大于1024的端口P(1521)进行监听,然后用PORTP命通知客户端,自己的数据端口是1521。客户端收到命令后,通过1026号端口连接服务器的端口1521,然后在两个端口之间进行数据传输。

在这里插入图片描述

主动模式&被动模式对比

1、主动模式的 FTP是服务器主动连接客户端的数据端口
2、被动模式的 FTP 是服务器被动地等待客户端连接自己的数据端口
3、多数防火墙都不允许接受外部发起的连接,所以 FTP 的主动模式通过防火墙通常都会受到限制
4、FTP 的被动模式通常用于防火墙后的 FTP 客户访问外界FTP 服务器。因此,如果有防火墙,最好是采用被动模式,但是如果对安全的需求很高,还是建议采用主动模式较好

🚥 1.4 几种流行的FTP服务器软件

常用的FTP服务器软件有 Wu-ftpd、Proftpd、VsFTPd及PureFTPd等。

1、Wu-ftpd

Wu-ftpd 曾经是 Internet 最流行的FTP守护程序,也是最早的FTP 服务器软件之一,拥有强大的功能。

Wu-ftpd的主要特点:

1、支持虚拟FTP主机(VirtualFTPServer)。
2、能够控制不同网域的用户对于FTP服务器的存取权限和访问时段。
3、能够记录文档上传和下载的全过程并且可以限制最高访问人数。
4、使用者在下载文档时,能够自动对其进行压缩和解压工作。
5、能够暂时关闭FTP服务器,以便系统维护。
6、能够支持匿名FTP服务,但需要加载anonftp软件包。

2、Proftpd

Proftpd 具有安全、容易配置、速度快的特点,并且很少出现缓冲溢出的错误现象。

Proftpd的主要特点:

1、可设定多个虚拟FTP服务器,匿名FTP服务的实现十分容易。
2、单配置文档,容易设定配置。
3、基于单个目录的.ftpaccess 配置文档,类似于Apache的htaccess 文档能够配置为从inetd 启动,或是单独FTP服务器两种运行方式。
4、匿名FTP的根目录无需任何特别的目录结构,或系统程式或其他系统文档以非root身份运行且不执行任何外部程式,从而减少了安全隐患。
5、能够根据文档属主情况或UNIX的访问控制风格来隐藏文档或目录。
6、支持Shadow密码,包括支持密码过期机制。
7、强大的Log功能,支持utmp/wtmp及Wu-ftpd 格式的记录标准,并支持扩展功能的日志记录。

3、VSFTPd
vsFTPd 即Very SecureFTPd 的缩写形式,是Red Hat Enterprise Linux 内置的FTP服务器软件,支持很多其他FTP服务器不支持的功能。

VSFTPd的特点:

1、具有非常高的安全特性;
2、同时支持带宽限制IPv6 协议、分配虚拟 IP 地址、创建虚拟用户等功能。
3、其良好的可伸缩性和中等偏上的性能获得了广大用户的广泛欢迎。

4、PureFTPd
PureFTPd是内置在SuSE、Debian 中的FTP服务器软件,但 Red Hat Enterprise Linux中没有包含它的软件包,需手动加载。

5、Serv-U

Serv-U是Windows系统下最常用的的FTP 服务器。用户可以将任何一台 PC机设置成一台FTP服务器。用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC机与 FTP 服务器连接,进行文件或目录的复制、移动、创建和删除等。

Serv-U的特点:

1、支持实时的多用户连接,支持匿名用户的访问:通过限制同一时间允许的最大的用户访问量来确保PC机的正常运转。
2、安全性能出众。在目录和文件层次都可以设置安全防范措施。为不同用户提供不同设置,支持分组管理数量众多的用户,甚至可以基于IP 对用户授予访问权限。
3、能够设置上传和下载的比率、硬盘空间配额、网络使用带宽等,从而有效分配资源还可作为系统服务在后台运行。
4、支持文件上传和下载过程中的断点续传:支持拥有多个IP地址的多宿主站点可设置在用户登录或退出时的显示信息,支持具有UNIX 风格的外部链接。

上面列出的只是 Serv-U众多功能中的一部分,Serv-U 不仅功能强大,也提供了易于使用的操作界面,是Windows下使用最方便的FTP服务器软件。

🔻 总结—温故知新

🟢 该章详细介绍了FTP服务工作原理(发出连接请求、建立FTP会话连接、数据传输、自动释放动态分配的端口)及连接模式(主动模式&被动模式)。

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

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

相关文章

AIGC提示(prompt)工程之开宗明义篇

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

物流难统计、难管理?学会这招,问题迎刃而解

在当今数字化的时代,商家面临着诸多物流挑战。物流数据人工统计成本高、管理难、决策难是很常见的问题。本文将探讨如何通过智能数据分析解决这些问题,帮助商家提升物流效率和管理能力。 物流数据人工统计,难决策 物流数据沉淀全靠人工线下…

uniapp H5预览PDF文件

1&#xff0c;下载资源后hybrid文件存放在static静态文件里 (点击这里去下载文件) 2&#xff0c;pdf预览页面配置 <template><view style"width: 100vh;"><web-view :src"pdfUrl"></web-view></view> </template><…

Git基本操作

.. 1、创建一个空的项目&#xff0c;获取到git地址&#xff1a;https://gitcode.net/ldy889/git-demo-project.git 2、在本地D盘克隆出项目。 3、检查当前的状态。 4、修改代码前先创建任务分支。比如 home 然后我们添加一个文件尝试提交。 提交成功后将home推送到远程 &am…

TIOBE统计数据

TIOBE统计数据&#xff08;2023年7月&#xff09; TIOBE Index编程社区指数是编程语言流行度的一个指标。评级基于全球熟练工程师的数量、课程和第三方供应商的数量。Google、Bing、Yahoo!、维基百科、亚马逊、YouTube 和百度等流行搜索引擎用于计算评级。 七月头条&#xff1…

ES(1)简介和安装

文章目录 简介倒排索引 安装 简介 ES是面向文档型数据库&#xff0c;一条数据在这里就是一个文档。 和关系型数据库大致关系如下: ES7.x中废除掉Type&#xff08;表&#xff09;的概念 倒排索引 要知道什么是倒排索引&#xff0c;就要先知道什么是正排索引 idcontent100…

Stable Diffusion生成图片参数查看与抹除

前几天分享了几张Stable Diffusion生成的艺术二维码&#xff0c;有同学反映不知道怎么查看图片的参数信息&#xff0c;还有的同学问怎么保护自己的图片生成参数不会泄露&#xff0c;这篇文章就来专门分享如何查看和抹除图片的参数。 查看图片的生成参数 1、打开Stable Diffus…

DES加密解密 Feistel算法网络结构 详讲

文章目录 简单知识导入&#xff1a;具体过程&#xff1a;IP置换&#xff08; 64 − > 64 64->64 64−>64&#xff09;轮函数--E扩展置换&#xff08; 32 − > 48 32->48 32−>48&#xff09;轮函数--与子密钥异或&#xff08; 48 − > 48 48->48 48−&…

scss 预处理器自定义ui框架(bem架构)

BEM架构 bem架构 它是一种css架构 oocss 实现的一种 &#xff08;面向对象css&#xff09; &#xff0c;BEM实际上是block、element、modifier的缩写&#xff0c;分别为块层、元素层、修饰符层&#xff0c;element UI 也使用的是这种架构 BEM 命名约定的模式是&#xff1a; …

介绍AI绘画课,让智能工具助力创作 释放无限想象力 助你成为绘画大师

演示地址&#xff1a; www.runruncode.com/portal/article/index/id/19458/cid/81.html 画画是一项有趣的活动&#xff0c;它让人充满无限可能。对许多人来说&#xff0c;画画既是一种放松的方式&#xff0c;也是一种与创意、文化和艺术联系的途径。如果你是一个初学者&#x…

06_HDMI 显示器驱动设计与验证

06_HDMI 显示器驱动设计与验证 1. HDMI 接口及引脚定义1.1 HDMI A Type 接口引脚图1.2 HDMI A Type 接口引脚定义 2. HDMI 原理2.1 HDMI 显示原理2.2 TMDS 传输原理 3. 实验目标4. 程序框图4.1 顶层模块4.2 时钟生成模块4.3 HDMI 驱动控制模块4.3.1 第一个步骤4.3.2 编码模块参…

巩固一下NodeJs

1、初始化(确保当前电脑有node环境) npm init 2、安装express npm i expressnpm i ws文件结构 3、编写相关代码启动node服务(server.js) //导入下列模块&#xff0c;express搭建服务器&#xff0c;fs用来操作文件、ws用来实现webscoket const express require("expr…