FTP、FTPS 与 SFTP 是什么?

FTP

FTP 也就是文件传输协议(英文全称 File Transfer Protocol),属于应用层协议,专门用于在网络环境中实现客户端与服务器之间的文件交换。一套完整的 FTP 体系由 FTP 服务端和 FTP 客户端共同构成,用户既能把本地文件经由 FTP 协议推送到远程服务器,也能把服务器上的文件拉取到本地。它算得上是目前仍在使用的最早期的文件传输协议之一,是一种相当高效的文件搬运手段。

FTP 的运作机制

FTP 通信需要服务端和客户端双方在网络中建立联络。连接建立后会产生两条独立的通信链路:一条叫做命令链路,负责发送和接收操作指令;另一条叫做数据链路,专门用于双方之间的数据交换。

利用 FTP 传送文件时,用户必须向 FTP 服务端提交身份凭证才能获得传输权限。当然部分公开的 FTP 服务端或许无需凭证就能访问其中的资源,但无法确保数据在传输过程中的安全。任何未经过加密的公共网络上发送数据都极其危险,因此为了保障传输过程中的数据安全,从 FTP 演变出了下面两种协议:FTPS 和 SFTP。

FTPS

接着查了一下资料,发现 FTPS 分为 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 客户端工具时就更加得心应手了,可以依据实际需要切换协议和加密方式,不必再为看不懂某项设置而发愁。

不过,新的困惑又冒了出来——传输设置里还有主动和被动两种模式,这又代表什么呢?于是又打开了搜索引擎……

FTP 软件的主动模式与被动模式有何不同

主动模式

通常 FTP 的默认工作方式就是主动模式,也叫 port 模式。

它通过两个步骤来完成工作:

第一步,客户端上的随机端口与服务端的 FTP 端口 21 建立命令链路,客户端发送 PORT 指令,指定服务端连接到客户端的某个端口,并据此建立数据链路。

第二步,服务端从端口 20 连接到客户端为数据链路指定的那个端口。连接建立后,就可以通过这些端口完成文件传送。

被动模式

在传输方式选项中,也可以手动切换为被动传输模式。在该模式下,用户端进行文件传输时,会先通过随机端口 A 连接到服务端的端口 21,并发出 PASV 指令建立命令链路,通知服务端此次采用被动方式连接。随后服务端会开启一个随机端口用于数据传送,而客户端则通过与发出指令的端口不同的随机端口 B 建立数据链路,从而实现文件传输。

被动模式与主动模式的核心差异在于谁来发起数据连接。主动模式下,客户端在命令链路建立完成后,由服务端主动发起与客户端的数据连接。而被动模式下,命令链路建立之后,改由客户端主动发起与服务端的数据连接。

正因为这个差异,两者各有优劣。比如主动模式更便于管理 FTP 服务端,因为只需开放 21 端口的入站和 20 端口的出站即可。但由于服务端连接的是客户端的随机端口,客户端可能会触发防火墙规则,甚至直接被防火墙阻断。反过来,被动模式则更有利于管理客户端一侧。

没想到一个看上去很简单的文件存储工具竟然有这么多分类和差别,不同模式、不同方式都能匹配不同的使用场景。看来以后使用工具时多少了解一些背后的原理,确实能让操作更加顺畅、更加省心。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2986.html

Like (1)
Previous 2026年6月22日
Next 2026年6月23日

相关推荐

  • 理解带宽、延迟和流量

    在线观看电影、参加视频通话或部署云应用时,有三个无形因素决定了体验的流畅程度:带宽、延迟和流量。这些术语经常被混淆,但它们描述的是网络性能的不同方面。 带宽:定义与实际意义 带宽定…

    2026年4月17日
    0
  • 2026年网站建设布局及优化要点

    一、2026年网站建设核心布局要点 ‌扁平化层级架构‌:遵循“首页-列表页-详情页”极简逻辑,保障用户3步内触达目标内容,同时适配搜索引擎抓取规则,兼顾体验与排名。 ‌四层完整技术…

    2026年8月8日
    0
  • DDoS 流量清洗是什么? 流量清洗如何抵御 DDoS 攻击?

    随着数字化和远程工作的兴起,网络犯罪率也同时不断增长。 其中,Cloudflare数据显示,2025年仅前三个季度就已累计缓解3,620万次DDoS攻击,相当于2024年全年缓解D…

    2026年3月31日
    0
  • 常听到的边缘缓存是什么意思?

    简单来说,边缘缓存就是把内容存到离终端用户最近的网络边缘节点上的一种技术。 当用户就近访问这些边缘缓存里的数据时,会比从遥远的地方获取数据高效得多。这种额外的效率,最终能减轻整个网…

    2026年4月22日
    0
  • 服务器集群究竟是什么?

    如今“集群”这个概念正被越来越多人熟知,这项技术也早已渗透到各类实际业务场景中落地应用。不少人会好奇,服务器集群究竟是什么?它又具备哪些优势与短板? 一、什么服务器集群 服务器作为…

    2026年6月29日
    0
  • 80端口和443端口有什么区别?

    一台服务器能提供的服务有很多,比如HTTP、FTP、Telnet等服务。为什么可以同时提供那么多服务呢?有一个很重要的原因是采用不同的端口分别提供不同的服务,比如:TCP/IP协议…

    2026年6月26日
    0
  • 如何在 Linux 上重置 MySQL 的 Root 根密码

    服务器的 MySQL Root 密码,可用于登录数据库控制台手动创建数据库、新建用户并关联数据库、为指定数据库分配用户权限等操作。 若遗忘 MySQL Root 用户密码,可按照下…

    2026年5月26日
    0
  • 高频使用的服务器端口号大全

    服务器端口是什么? 随着互联网技术迭代,传统硬件层面的键鼠、网卡、显卡这类输入输出接口,早已无法满足网络通信的复杂需求,而TCP/IP这套通用网络通信协议,恰好破解了这一核心难题。…

    2026年6月26日
    0
  • 什么是数据库审计?

    防火墙主要负责阻挡外部安全威胁,而数据库审计则侧重于管控数据库内部的隐患。面对潜在的安全威胁,搭建一套行之有效的信息安全审计体系,强化对数据库的管控,有效治理并缩减信息安全风险,是…

    2026年6月5日
    0
  • 什么是AI算力集群?

    近些年,AI浪潮席卷全球,成为全社会瞩目的焦点话题。 每当人们谈起人工智能,AI算力集群这个关键词就会频繁出现。AI有三大核心要素,分别是算力、算法与数据,而AI算力集群,恰恰是当…

    2026年6月29日
    0