您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

一文讲透FTP和SFTP的区别

时间:2020-10-12 09:26:43  来源:  作者:

FTP和SFTP都是文件传输协议,我们知道FTP使用的是20和21端口,SFTP使用的是22端口。另外,SFTP前面的S应该是Secure安全的意思。其他的区别可能就不太清楚了。

本文正好能够帮你补齐短板,梳理FTP和SFTP的各方面区别,明确各自的应用场景。

一文讲透FTP和SFTP的区别

 

01 FTP协议

FTP(File Transfer Protocol)是主流的文件传输协议,能够实现文件的上传和下载功能。

FTP有两个信道:第一信道(控制信道)和第二信道(数据信道)。第一信道主要是信令的交互,用于协商FTP数据信道的传输模式和传输端口。第二信道用于传输文件。

FTP有两种传输模式:主动模式(Active Mode)和被动模式(Passive Mode)。两种模式都是从FTP服务器侧进行考虑的,如果第二信道由FTP服务器主动发起建立,则称之为主动模式。反之称之为被动模式。

FTP两个信道的协商和建立过程如下图所示。

一文讲透FTP和SFTP的区别

 

(1)FTP客户端主动发起TCP请求,和FTP客户端建立TCP会话。

(2)经过TCP三次握手,FTP客户端和FTP服务器建立了第一信道的TCP会话。

(3)在FTP主动模式下,FTP客户端会主动向FTP服务器发送数据,用于第二信道的信息协商;在FTP被动模式下,FTP服务器开始向FTP客户端发送数据,用于第二信道的信息协商。

(4)至此,第一信道工作结束。

(5)在FTP主动模式下,FTP服务器主动发起TCP请求,和FTP客户端建立TCP会话,用于建立第二信道;在FTP被动模式下,FTP客户端主动发起TCP请求,和FTP客户端建立TCP会话,用于建立第二信道。

(6)第二信道建立完成后,进行FTP数据的传输。

另外,FTP的难点在于FTP服务器和客户端建立第二通道时可能会有问题,这受制于两端的网络环境,特别是存在防火墙的环境。

如果同学们想详细了解FTP的传输模式和防火墙对FTP传输的影响,可查找本号的《一文讲透防火墙对FTP传输的影响》文章进行学习,这里不再赘述。

02 SFTP协议

SFTP(Secure File Transfer Protocol)一种安全的文件传输协议,能够为文件传输提供安全的加密通道。

SFTP作为SSH的一部分,包含在SSH软件中。SFTP自身没有独立的守护进程,需要使用sshd守护进程来完成服务器的连接和文件传输。由于SFTP作为SSH的一个组件存在,SFTP能够直接使用SSH加密通道来传输数据。

在进行SFTP数据传输前,首先需要建立SSH加密通道,如下图所示。

一文讲透FTP和SFTP的区别

 

(1)SSH客户端主动发起TCP请求,和SSH服务器建立TCP会话。

(2)SSH客户端和SSH服务器协商认证方式。当前SSH有两种认证方式:口令认证和秘钥认证。

(3)如果使用口令认证,则SSH秘钥协商过程如下。

SSH服务器主动发送公钥给SSH客户端。SSH客户端收到公钥后,使用公钥对登陆密码加密,并回送给SSH服务器。SSH服务器使用私钥进行数据解密,并验证SSH客户端的信息合法性,如果验证通过则建立连接,进行加密通信。

(4)如果使用秘钥认证,则SSH秘钥协商过程如下。

SSH客户端主动发送本端公钥给SSH服务器。SSH服务器收到信息后,检查本端的授权列表中是否包含SSH客户端的公钥。如果存在,则生成一个随机数,并使用SSH客户端的公钥加密,生成密文回送给SSH客户端。SSH客户单收到密文后,使用私钥解密,并将随机数发回SSH服务器。SSH服务器验证随机数,如果一致,则认证通过,连接建立。

(4)SSH加密通道建立完成后,SFTP即可进行数据传输,上传和下载文件。

03 二者区别

以下从名称、协议、安全性、架构、通道、模式、传输效率和是否开放八个方面对FTP和SFTP进行对比,总结出了两者主要的区别,如下表所示。

一文讲透FTP和SFTP的区别

 

04 应用场景

FTP明文传输,可以不设置密码,任何人都能访问,适用于一些公共场合,比如用于公开信息的存放,可供使用者任意下载。同时,FTP不涉及加解密,传输效率高,适用于公司内部系统间要求的高速文件传输。

SFTP密文传输,必须进行加解密,安全性高,适用于公司机密文件的传输,以及在公网中传输私有信息。同时,SFTP只有一个通道,使用的端口22端口,信道协商简单,适用于复杂网络环境中,不容易出现协商问题。

好了,今天就讲到这里,请大家持续关注我们的后续内容哦!最后如果喜欢本章内容请不要忘了进行点赞、关注与转发哦!



Tags:SFTP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
FTP和SFTP都是文件传输协议,我们知道FTP使用的是20和21端口,SFTP使用的是22端口。另外,SFTP前面的S应该是Secure安全的意思。其他的区别可能就不太清楚了。本文正好能够帮你补...【详细内容】
2020-10-12  Tags: SFTP  点击:(716)  评论:(0)  加入收藏
之前有介绍过CentOS下搭建vsftpd服务器,可以参考如下文章CentOS7下搭建vsftpd服务器(本地用户模式)下面开启SSL/TLS用于FTP安全加密传输1、生成自签证书cd /etc/pki/tls/cer...【详细内容】
2020-08-10  Tags: SFTP  点击:(85)  评论:(0)  加入收藏
1、建立Vsftpd虚拟宿主用户useradd vftp -M -s /sbin/nologin -d /var/ftp/2、创建虚拟用户的文件[root@localhost vsftpd]# cat /etc/vsftpd/virtusers test test1234563、...【详细内容】
2020-08-05  Tags: SFTP  点击:(234)  评论:(0)  加入收藏
简介在服务器上,我们一般都有需要上传或者下载一些文件的需求。SFTP是SSH文件传输协议(Secret File Transfer Protocol),属于SSH服务的一部分,文件传输都是通过ssh协议加密的,比...【详细内容】
2020-07-21  Tags: SFTP  点击:(83)  评论:(0)  加入收藏
vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的、开发源代码的ftp服务器软件。vsftpd是一款在Linux发行版本中最受推崇的FTP服务器程序,小巧轻快、安全易用、支...【详细内容】
2019-11-01  Tags: SFTP  点击:(120)  评论:(0)  加入收藏
导读:在实际项目中常会遇到需要连接服务器获取文件的场景,如账务系统需要通过连接行方的sftp服务器拉取回单文件。本文将主要讨论使用Java中的jsch与sftp服务器实现ssh免密连...【详细内容】
2019-10-20  Tags: SFTP  点击:(169)  评论:(0)  加入收藏
导读:在实际项目开发中最常使用的文件传输的方式有ftp和sftp两种,但是这两个传输方式各有什么特点呢?本文接下来将讨论SFTP、FTP的区别一、FTP协议FTP是TCP/IP协议组中的协议之...【详细内容】
2019-09-27  Tags: SFTP  点击:(115)  评论:(0)  加入收藏
今天简单配置匿名访问及用户验证的相关配置,基于虚拟用户的配置敬请期待下一篇搭建vsftp服务器首先要确保虚拟机的防火墙和seLinux防火墙都是关闭的 一、ftp文件传输服务...【详细内容】
2019-08-14  Tags: SFTP  点击:(291)  评论:(0)  加入收藏
1.前言在Mac下登陆远程服务器并没有Windows那么方便的使用XShell,相比较而言,在Mac下更多的是依赖终端输入SSH命令登录远程服务器。使用SSH命令行的好处就是可以近距离接触底...【详细内容】
2019-07-31  Tags: SFTP  点击:(231)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(0)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(83)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条