ftp改为sftp_浅谈 FTP、FTPS 与 SFTP

二狗子最近搭建了一个图片分享网站,每天都有好多人在他的网站上传许多照片,这些照片还会通过内部的逻辑同步到又拍云存储中,非常方便。

但不久后问题就来了,由于刚开始的用户照片管理规划没有做好,随着用户上传的图片越来越多,云存储的内容也越来越混乱,二狗子看着也非常难受。这不,趁着今天休息,二狗子决定好好的调整一番。

f45b1771110f7bfe562843962de7ddd6.png

二狗子打开又拍云控制台,上上下下找了一番没有找到将对应文件移动到对应目录中的功能。向又拍云客服寻求帮助后,客服薇薇告诉他,可以通过 FTP 工具来管理云存储的文件,同时还提供了一篇详尽的帮助文档给二狗子 ——FTP 工具连接又拍云存储文档。

二狗子终于通过 FTP 工具连接上了云存储,一顿操作之后,二狗子成功把照片整理的整整齐齐。看着这个让强迫症患者满意舒适的存储界面,又看了看能够打造这个效果的 FTP 工具,二狗子满意的点了点头,决定一不做二不休彻彻底底的了解一下 FTP ,也看看 FTP 还有没有其他的好用功能了。

FTP、FTPS 与 SFTP 简介

FTP

在看相关功能之前,二狗子发现客户端有三种不同的协议,分别是 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 类型的命令进行激活安全连接后才能正常传输数据。

SFTP

最后大家来一起看看 SFTP,SFTP 是 Secure File Transfer Protocol 的缩写,也叫作安全文件传送协议。

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

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

  • 与 FTP 一样,连接时只需要验证用户 ID 和密码就可以了。但是,与FTP不同的是,这些凭据是加密的,这是 SFTP 最主要的安全优势。
  • 除密码外,还可以通过 SSH 密钥来验证并通过 SFTP 协议连接。

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

a939316de6c8501cbb0a4ba7dab8edbe.png

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

911243c2156b1706640cb1711a487c6e.png

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

主动模式

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

它是通过两个步骤来进行工作的:

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

被动模式

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

5dea4775ff17be56255cd0ff2c08bc01.png

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

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

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

推荐阅读:

HTTP/3 来了,你了解它么?​www.upyun.com
d0e310ed013d4ab142b52ed5c0230d9c.png
边缘计算、区块链、5G,哪个能走的更远 - 又拍云​www.upyun.com
f8c7fab8eea520122df261d533ef18cf.png

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

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

相关文章

如何解决秒杀的性能问题和超卖的讨论

2019独角兽企业重金招聘Python工程师标准>>> 最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。 ps:进入正文前先说一点个人感受,…

C# 从Excel中读取时间数据

之前写到从Excel中读取时间数据 //读取Excel数据Excel.Application xapp new Excel.Application();string filepath txt_Excel.Text;Excel.Workbook xbook xapp.Workbooks._Open(filepath, Missing.Value, Missing.Value,Missing.Value, Missing.Value, Missing.Value, Miss…

grid autosport额外内容下载慢_清理大王app下载-清理大王v1.0安卓下载

清理大王,下面由小编给大家介绍一下这款软件,该软件是一款非常不错的手机清理服务应用软件,清理大王app为用户提供了手机垃圾清理,内存加速,优化手机,解决手机卡顿的情况。感兴趣的朋友欢迎使用微侠下载&am…

怎么看cudnn的版本好_祖坟风水怎么看,好祖坟有什么征兆?

人们之所以看重祖坟的风水,是因为祖坟的风水与后代子孙的运势密切相关,可以说祖坟的风水好不好关系着子孙后代的运势顺不顺,因此对于祖坟的风水好坏人们是非常在意的,那么祖坟风水怎么看,好祖坟有什么征兆呢?下面是小编…

Spark 宽依赖和窄依赖

2019独角兽企业重金招聘Python工程师标准>>> 我们知道RDD就是一个不可变的带分区的记录集合,Spark提供了RDD上的两类操作,转换和动作。转换是用来定义一个新的RDD,包括map, flatMap, filter, union, sample, join, groupByKey, co…

smart gesture安装失败_WinCC flexible SMART V3 SP2安装步骤以及常见错误解决方法

1安装配置1. win7和win10系统都可以装2. 运行内存至少要2G。3. 硬盘储存空间至少要3G。2安装注意事项1.安装本软件之前必须要关闭所有杀毒软件(例如360安全卫士/360杀毒/电脑管家)等。2.其它西门子软件不要使用或者打开。3.安装之前确保硬盘空间充足。3下载地址https://bbs.jcp…

启动页面和各设备的宽高比及像素

2019独角兽企业重金招聘Python工程师标准>>> iOS7只能用LaunchImage来布置启动画面,只能用图片。iOS8以后支持LaunchScreen.xib来布置,可以自己添加控件。iOS8以及以后的用LaunchScreen来配置启动页。iOS8以后的会走这个设置,而io…

cc压力测试_中小型网站如何防范CC攻击?

大公司就不说了,付费CDN,防火墙,WAF,大流量,一般也会配置专门的安全问题响应团队。今天侧重讨论一下中小型网站如何(优雅)防范CC攻击。中小站点安全问题通病:对安全问题不重视&#…

泛型复习

回顾泛型类 泛型类&#xff1a;具有一个或多个泛型变量的类被称之为泛型类1、class A<T>{} 2、在创建泛型实例时&#xff0c;需要为其类型变量赋值A<String> anew A<String>(); *如果创建实例时&#xff0c;不给类型变量赋值&#xff0c;那么会有一个警告&am…

.net core EPPlus npoi_2020 ASP.NET界面开发:DevExpress v20.1支持.NET Core设计时

DevExpress ASP.NET Web Forms Controls拥有针对Web表单(包括报表)的110种UI控件&#xff0c;DevExpress ASP.NET MVC Extensions是服务器端MVC扩展或客户端控件&#xff0c;由轻量级JavaScript小部件提供支持的70个高性能DevExpress ASP.NET Core Controls&#xff0c;包含功能…

mac电脑如何与手机同步复制粘贴_如何将电脑里的文件同步到手机里?

由于PDF的特殊性&#xff0c;一般很少有适用于手机编辑的软件&#xff0c;所以我们都习惯于使用电脑来修改PDF文档后&#xff0c;再发送到手机微信发送给其他人&#xff0c;那么如何快速将电脑里的PDF文件同步到手机里面呢&#xff1f;可能很多人会想到使用各种云盘&#xff0c…

走进缓存的世界(一) - 开篇

系列文章 走进缓存的世界&#xff08;一&#xff09; - 开篇走进缓存的世界&#xff08;二&#xff09; - 缓存设计走进缓存的世界&#xff08;三&#xff09; - Memcache概述 对于程序员来说多多少少都懂一点算法&#xff0c;算法是什么&#xff1f;算法是“时间”与“空间”的…

an 转换器_400V耐压场效应管替代IRF730B型号参数,使用在DC-DC电源转换器。_场效应管吧...

DC-DC电源转化器的应用场景逐渐广泛&#xff0c;那么适用于DC-DC电源模块的场效应管需求也随之越来越高&#xff0c;这时候电源转化器厂的电子工程师就要留意了&#xff0c;国内是否有优质的场效应管能替代IRF730B型号呢&#xff0c;其实是有的&#xff0c;FHP840其实是可以跟I…

spring MVC中页面添加锚点

2019独角兽企业重金招聘Python工程师标准>>> 需要添加锚点的代码&#xff1a; <li><a href"main/index#page1">推荐车型</a></li> <li><a href"main/index#page2">热门车型</a></li>需要跳转的…

steam一键授权工具_半个东的时间让你省了一个亿 Steam免费游戏一键领取

总所周知Steam上有很多的免费游戏&#xff0c;但是有哪些游戏是免费的呢&#xff1f;这个一时半会儿也总结不出来&#xff0c;而且还得需要大量的时间添加到自己的游戏库&#xff0c;今天这个教程就教大家如何一键添加Steam上大量免费游戏&#xff0c;需要的小伙伴赶紧收藏哦。…

YModem协议

源&#xff1a;YModem协议 YModem协议&#xff1a; YModem协议是由XModem协议演变而来的&#xff0c;每包数据可以达到1024字节&#xff0c;是一个非常高效的文件传输协议。 下面先看下YModem协议传输的完整的握手过程&#xff1a;先看下图 SENDER:发送方。 RECEIVER:接收方。 …

gcc、clang、make、cmake、makefile、CMakeLists.txt概念学习

说明 编译器是翻译代码为计算机语言的一个工具&#xff0c;我们平时写的代码如果想在某个特定的计算机上执行&#xff08;计算机的cpu构架不同&#xff09;&#xff0c;就需要编译器来对代码进行编译汇编链接&#xff0c;而汇编和链接的过程对于每个不同的平台上过程都不一样。…

视觉在无人驾驶中的应用及分类_机器视觉在智能化生产中的广泛应用

什么是机器视觉&#xff1f;顾名思义&#xff0c;简单来说&#xff0c;机器视觉就是用机器代替人眼来测量和判断。机器视觉系统是指通过机器视觉产品将被摄取目标转换成图像信号&#xff0c;传送给专用的图像处理系统&#xff0c;根据像素分布和亮度、颜色等信息&#xff0c;转…

Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程

SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程。在该例程序中&#xff0c;使用"Ctrlc"结束通信后&#xff0c;服务器是无法立即重启的&#xff0c;如果尝试重启服务器&#xff0c;将被告知&#xff1a; bind: Address already in use 原因在…

work2的code和问题

//常量 package cn.itcast.work2; public class Constant { //constant 常量   public static void main(String[] args) { /* * 字符串常量 用双引号括起来的内容 * 整数常量 所有整数 * 小数常量 所有小数 * 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单…