科普!一文详解 FTP、FTPS 与 SFTP 的原理

做者:又拍云
连接: https://my.oschina.net/upyun/...

FTP、FTPS 与 SFTP 简介

FTP

FTP 即 文件传输协议(英语:File Transfer Protocol 的缩写)是一个用于计算机网络上在客户端和服务器之间进行文件传输的应用层协议。完整的 FTP 是由 FTP 服务器 和 FTP 客户端组成的,客户端能够将本地的文件经过 FTP 协议上传到服务器,也能够将服务器的文件下载到本地。它是当今使用的最古老的文件传输协议之一,是一种很是便捷的移动文件的方式。安全

FTP 的工做原理

FTP 链接须要 FTP 服务器和客户端两方在网络上创建通讯。创建 FTP 链接时会有两个不一样的通讯通道。一个被称为命令通道,它的做用是发出和响应指令。另外一个为数据通道,用于客户端和服务器端进行数据交互。服务器

使用 FTP 传输文件时,用户须要经过向 FTP 服务器提供凭据来得到文件传输许可。固然某些公共 FTP 服务器可能不须要凭据便可访问其文件,可是没法保证数据传输的安全性,任何未加密公共网络上的数据发送都是很是危险的,因此为了保护传输数据的安全,由 FTP 衍生而出的就是下面的两种协议:FTPS 与 SFTP。网络

FTPS

接下来二狗子查询了一下,发现 FPTS 有 FTPS 隐式 SSL 和 FTPS 显示 SSL 两种模式,二者都是用 SSL 加密。那么二者有什么区别呢?并发

  • FTPS 隐式 SSL:该模式一般在端口 990 上运行。在这个模式下所有数据的交换都须要在客户端和服务器之间创建 SSL 会话,而且服务器会拒绝任何不使用 SSL 进行的链接尝试。
  • FTPS 显式 SSL:显示 SSL 下服务器能够同时支持 FTP 和 FTPS 会话。开始会话前客户端须要先创建与 FTP 服务器的未加密链接,并在发送用户凭证前先发送 AUTH TLS 或 AUTH SSL 命令来请求服务器将命令通道切换到 SSL 加密通道,成功创建通道后再将用户凭证发送到 FTP 服务器,从而保证在会话期间的任何命令均可以经过 SSL 通道自动加密。

给你们简单快速的总结一下。当启用隐式模式时,FTP 的默认端口就被改成 TCP/990,服务器自动创建安全链接,而且要求客户端也必须支持安全链接模式也就是使用 SSL 进行链接。当启用显式模式时,与 FTP 链接方式和默认端口同样,可是须要以命令 AUTH SSL/TLS 类型的命令进行激活安全链接后才能正常传输数据。app

SFTP

最后你们来一块儿看看 SFTP,SFTP 是 Secure File Transfer Protocol 的缩写,也叫做安全文件传送协议。工具

若是说 FTPS 是在 FTP 协议上增长了一层 SSL ,那么 SFTP 就是是基于网络协议SSH(安全外壳)的协议与前面所说的 FTP 彻底不一样。SFTP 不使用单独的命令通道和数据通道,而是数据和命令都会经过单个链接以特殊格式的数据包进行传输。加密

SFTP 提供了两种验证链接的方法。spa

  • 与 FTP 同样,链接时只须要验证用户 ID 和密码就能够了。可是,与FTP不一样的是,这些凭据是加密的,这是 SFTP 最主要的安全优点。
  • 除密码外,还能够经过 SSH 密钥来验证并经过 SFTP 协议链接。

了解了这几个协议以后,二狗子使用 FTP 客户端工具就更加顺手了,他能够根据本身的需求更改协议以及加密方式,而不用为不懂某个设置而烦恼。.net

可是,新的疑问又出现了,二狗子看到这里的传输设置中的传输模式,有主动和被动之分,这又是什么意思呢。不懂就问的他又打开了 Google…计算机网络

FTP 软件的主动模式和被动模式的区别

主动模式

通常 FTP 的默认模式就是主动模式,也称为 port 模式。

它是经过两个步骤来进行工做的:

  • 首先客户端上的随机端口与服务器上的 FTP 端口 21 创建命令通道,客户端发送 PORT 命令,指定服务器与客户端其中一个端口链接,并创建数据通道。
  • 而后服务器从端口 20 链接到为数据通道指定的客户端端口。创建链接后,便可经过这些客户端和服务器端口进行文件传输。

被动模式

在传输方式栏,你还能够手动调整为被动传输模式,在该模式下用户端进行文件传输时,会先经过随机端口 A 链接到服务器上的端口 21,并发出 PASV 命令创建命令通道,告诉服务端此次是被动模式链接。以后服务器会打开一个随机端口用于数据传输,而客户端经过与发出命令的端口不一样的随机端口 B 创建数据通道,从而进行文件传输。

被动模式与主动模式不一样的地方就是客户端启动数据链接。在主动模式下,客户端在命令通道上创建链接后,服务器将启动与客户端的数据链接。而在被动模式下,创建命令通道后,由客户端启动与服务器的数据链接。

由于这个区别,能够得出二者的优点和缺陷。好比主动模式有利于管理 FTP 服务端,由于只须要打开 21 端口的“准入”、20 端口的“准出” 便可,可是因为服务器链接到客户端的端口随机,因此客户端有可能会触发防火墙,甚至直接被防火墙拦截掉。反之被动模式则有利于管理客户端。

没想到一个看似简单的存储工具竟然还有着这么多的分类和区别,不一样的模式不一样的方式均可以对应不一样的需求,看来之后在使用工具的时候仍是能够多少了解一点相关知识,能让工具用起来更顺手更舒心~

相关文章
相关标签/搜索