FTP(一)通讯连接原理

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介:

一、FTP服务说明

        ftp(File Transfer Protocol)即文件传输协议,是互联网比较古老的服务之一,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。


二、FTP服务运行模式

        FTP服务一般默认运行在tcp 20(数据传输)和tcp 21(通讯信号建立控制)两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流。

       1、 ftp服务器运行有两种模式,即主动模式与被动模式,如下图所示:

wKioL1lLcTDy9gAbAABLTgy8SIw224.png-wh_50


图左边ftp处于主动模式中,客户端首先和ftp 21端口建立通讯连接,然后和客户端协商出一个接受数据的端口(客户端随机开放一个端口),协商成功后,ftp服务器从20端口主动推送数据到客户端的这个随机端口;完成数据传输。

图右边ftp处理被动械中,客户端同样是先和ftp21端口建立通讯连接,然后告诉客户端自己的数据端口是20(默认,可以自定义),此时客户端得知服务器处理于被动模式,和被动数据开放的端口后,客户端会用自己随机的端口连接服务器端的数据端口20,来获取数据。服务器牌被动放数据状态;

主动模式和被动模式的区别就在于,数据是主动推送到客户端的,还是被动等待客户端来取。

    2、分析说明

         主动模式由于数据是主动推送到客户端随机协商的端口,又因为一般的企业或客户端访问互联网服务器时存在防火墙(防止外面的访问进来),所以一般ftp处在主动模式时,除非本地且本地防火墙允许,否则ftp会被防火墙阻断,导致无法完成数据传输!因而出现了被动模式,一般防火墙防外面进来而不防里面出去,所以被动模式下,客户端可以出去访问21 20端口,即使数据传输端口20改变,也是固定的,客户端防火墙可以固定调整,而不像主动情况下,客户端接收数据是随机的~


三、ftp安全问题

        ftp协议比较古老,一般默认传输采用的是明文传输数据,一个抓包就可以看出ftp的连接账号和密码,相当不安全,所以一般使用ftp最好采用ssl +ftp,提高ftp的安全性。










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1940968,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之dataworks连接FTP服务器失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
9月前
|
Java 数据安全/隐私保护
Java——通过Java代码连接ftp服务器
Java——通过Java代码连接ftp服务器
|
JavaScript
使用nodejs连接ftp上传下载
使用nodejs连接ftp,进行ftp的操作,包括列表、上传、下载以及速率等。
使用nodejs连接ftp上传下载
|
8月前
|
JavaScript 网络安全
|
6月前
|
网络协议 安全 网络安全
windows搭建ftp及原理(小白向)
windows搭建ftp及原理(小白向)
77 0
|
8月前
|
网络协议 安全 网络安全
FTP服务器原理及FTP服务器搭建
FTP服务器原理及FTP服务器搭建
157 0
|
12月前
|
编解码 数据安全/隐私保护 Python
Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
175 0
|
存储 机器学习/深度学习 网络协议
Linux 下 FTP 连接使用方式及常用配置
Linux 下 FTP 连接使用方式及常用配置
700 0
|
存储 程序员 Linux
python 使用ftplib连接ftp服务器获取目录、文件及它们的修改时间
* 获取当前路径或者指定路径下的文件、目录 * 检查指定路径是目录还是文件 * 根据目录、文件的修改时间来判断是否下载ftp的文件。 由于ftplib中的FTP无法满足我这一需求,所以只能重写一个MyFTP类继承FTP,写一个方法来实现,除了这个还实现了一个获取当前目录下的所有目录及文件。
1084 0
python 使用ftplib连接ftp服务器获取目录、文件及它们的修改时间
|
Linux 数据安全/隐私保护 Windows
【远程编辑工具UE】超好用的工具UltraEdit(UE)远程连接Linux的方法,以及FTP Component Failuer连接失败的解决方法
【远程编辑工具UE】超好用的工具UltraEdit(UE)远程连接Linux的方法,以及FTP Component Failuer连接失败的解决方法
260 0
【远程编辑工具UE】超好用的工具UltraEdit(UE)远程连接Linux的方法,以及FTP Component Failuer连接失败的解决方法