Ftp和sftp是实际项目开发中最常用的文件传输方式,但它们各有什么特点呢?本文将讨论SFTP和FTP之间的区别。
一、FTP协议
FTP是TCP/IP协议组中的协议之一,TP协议由两部分组成:
FTP服务器(用于存储文件)
FTP客户端(用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源)。
默认情况下,FTP协议使用20和21个TCP端口。端口21用于传输控制信息,是否使用端口20进行数据传输与FTP使用的传输方式有关。如果采用被动模式,服务器和客户端应该协商使用哪个端口。FTP传输模式分为以下两种:
活动模式(端口)
被动模式(被动模式)
1.有源方式
FTP客户端首先与FTP服务器的TCP21端口建立连接,并通过该通道发送命令。当客户端需要接收数据时,它在这个通道上发送端口命令。PORT命令包含客户端用来接收数据的端口。传输数据时,服务器通过自己的TCP 20端口连接到客户端的指定端口发送数据。
2.被动方式
建立控制通道时,类似于主动模式,但建立连接后,是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024),通知客户端在这个端口上传输数据的请求。客户端连接到FTP服务器的这个端口,通过三次握手建立通道,然后FTP服务器会通过这个端口传输数据。
注意:很多防火墙在设置的时候是不允许接受外部发起的连接的,所以很多位于防火墙或者内网后面的FTP服务器都不支持PASV模式,因为客户端无法通过防火墙打开FTP服务器的高端端口;但是很多内网客户端无法以端口模式登录FTP服务器,因为来自服务器的TCP 20无法与内网客户端建立新的连接,导致无法工作。
二、 FTP协议
SFTP是SSH文件传输协议的缩写,这是一种安全的文件传输协议。SFTP和FTP有几乎相同的语法和功能。SFTP是SSH的一部分,它是将文件传输到Blogger服务器的一种安全方式。事实上,SSH软件包已经包含了一个名为SFTP的安全文件信息传输子系统。SFTP本身没有独立的守护进程,它必须使用sshd守护进程(默认端口号为22)来完成相应的连接和回复操作。因此,从某种意义上说,SFTP不像一个服务器程序,而更像一个客户端程序。
:它们之间的主要区别
链接模式:FTP使用TCP端口21上的控制连接来建立连接。然而,SFTP是客户端和服务器之间通过SSH协议(TCP端口22)传输文件的安全连接。
安全性:SFTP使用加密来传输认证信息和传输数据,所以与FTP相比,使用SFTP是非常安全的。
效率:SFTP采用加解密技术,所以传输效率比普通FTP低很多。
作者:聚IT来源:今日头条
标签:FTPSFTP客户端