TOC

FTP, FTPS, SFTP

FTP

  1. 文件传输协议,File Transfer Protocol
  2. 最古老的网络服务之一
  3. 默认端口 21
  4. 20 端口用于数据传输

https://en.wikipedia.org/wiki/File_Transfer_Protocol

B/S 模式,一个连接两个通道,命令通道传输控制指令以及响应,数据通道传输数据。

认证

S: 220 Welcome to markjour.cn FTP service.
C: USER admin
S: 331 Please specify the password.
C: PASS ****************
S: 230 Login successful.

主动、被动

  • 主动模式:PORT 命令连接服务器,服务器再创建一个连接,使用 20 端口连接客户端指定端口
  • 客户端从一个随机端口 A 连接服务器 21 端口,这是命令通道
  • 客户端监听另一个随机端口 B,并通过命令通道发送 PORT 命令(port B),告诉服务器客户端开放的数据端口
  • 服务器通过 20 端口连接到客户端数据端口
  • 被动模式:PASV 命令连接服务器,服务器随机选择一个端口,客户端就连接这个端口

IPv6 引入之后,有了两个新的指令(RFC#2428):

  • EPRT 命令
  • EPRT |<网络协议>|<IP>|<端口>|
  • 网络协议:1 IPv4;2 IPv6
  • EPSV 命令
  • 拓展被动模式 Extended Passive Mode
  • EPSV 1EPSV 2EPSV ALL

命令

https://en.wikipedia.org/wiki/List_of_FTP_commands

FTPS

FTP Secure,FTP over SSL
FTP + TLS

显式 TLS / 隐式 TLS

SFTP

Secure File Transfer Protocol,安全文件传送协议,SSH 的一部分。
需要借助 sshd 充当服务器端。

https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol

SFTP 和 FTPS 的区别就是分别使用 SSH 协议和 TLS 协议实现网络加密。

TFTP

  1. 小型文件传输协议,Trivial File Transfer Protocol
  2. 1981 年,RFC 783
  3. 只在 PXE 场景下见过

常用工具

其他文件传输协议

https://en.wikipedia.org/wiki/Comparison_of_file_transfer_protocols

  • FSP https://en.wikipedia.org/wiki/File_Service_Protocol