「FTP」- 文件传送协议,FILE TRACSFER PROTOCOL

  CREATED BY JENKINSBOT

FTP,用于传送文件的协议。

协议特性

使用 FTP 实现远程文件传输的同时,还能够保证数据传输的可靠性(TCP)和高效性。

原理简述

协议模式

主动模式(FTP Server 主动连接 FTP Client)

主动模式,指 FTP Server 主动连接本地 FTP Client;

1)FTP Client,打开任意的非特权端口 Port-A(>1024);
2)FTP Client,连接到远程 FTP Server 的 21 端口;
3)FTP Client,开始监听端口 Prot-A + 1,并发送命令 PORT <Port-A+1> 到 FTP Server;
3)FTP Server,从它的数据端口(20)连接到 FTP Client 指定的数据端口(PortA+1);

端口号:
1)21,服务端口;
2)20,数据端口;

被动模式(FTP Server 被 FTP Client 连接)

被动模式,指 FTP Server 被 FTP Client 连接;

1)FTP Client,当创建 FTP 连接时,将打开两个任意的非特权端口(Port-A 和 Port-A+1);
2)FTP Client,使用 Port-A 连接远程 FTP Server 的 21 端口,然后本地 FTP Client 发送 PASV 命令给远程 FTP Server;
3)FTP Server,收到 PASV 指令后,会开启任意的非特权端口(Port-C),并响应 PORT <Port-C> 命令给 FTP Client;
4)FTP Client,发起从端口 Port-A+1 到 FTP Server 的端口 Port-C 的连接用来传送数据。

端口号:
1)21,服务端口;
2)<port-range>,数据端口;

目前,由于很多的本地 FTP Client 都是在内网中发起连接的,即通过 NAT 访问远程的 FTP Server ,所以本地 FTP Client 通常使用被动模式。

传输模式

ASCII,用于传输文本。发送端,在发送前,字符被转换成 ASCII 码格式,然后进行传送。接收端,在收到后,再将其转化为字符。

Binary,用于传输图片和程序文件。发送端,在发送时无需进行格式转换,直接发送。

报文格式

参考文献

File Transfer Protocol – Wikipedia
IETF / FILE TRACSFER PROTOCOL(RFC 959)
Active vs. Passive FTP Simplified – Understanding FTP Ports

章节列表

「vsftpd.conf」
「vsftpd」
「vsftpd」- 常见错误汇总
「vsftpd」- 530 Login incorrect
「vsftpd」- Remove directory operation failed
「FTP」- 客户端(Filezilla、ftp(1))
「vsftpd」- 550 Permission denied
「vsftpd」- 安装