一.FTP协议介绍
文件传输协议(File Transfer Protocol,FTP),1971 年由 A KBHUSHAN 提出第一个 FTP 的RFC(RFC114),是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层;
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。
二.传输方式
FTP的传输有两种方式:ASCII、二进制。
一般我们传输文本文件都是选择ASCII模式
三.支持模式
FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。
1.主动模式(Active Mode):
- 客户端从一个随机端口N选择一个端口,向FTP服务器的标准控制端口(通常是21)发起控制连接。
- 客户端通过控制连接发送PORT命令,告知服务器将要使用的数据连接的IP地址和端口号(N+1)。
- 服务器通过N+1端口连接客户端的数据端口。
- 客户端和服务器之间建立了两个连接:控制连接和数据连接。
- 主动模式往往会遇到防火墙的问题。因为服务器主动连接客户端的数据端口,而防火墙默认会阻止从外部发起的连接。
2. 被动模式(Passive Mode):
- 客户端从一个随机端口N选择一个端口,向FTP服务器的标准控制端口(通常是21)发起控制连接。
- 客户端发送PASV命令告知服务器将使用被动模式进行数据连接。
- 服务器在一个固定的端口上(通常是1024-65535之间)打开监听,等待客户端连接。
- 服务器通过控制连接发送包含监听端口的响应给客户端。
- 客户端基于服务器提供的IP和端口号建立数据连接。
- 客户端和服务器之间建立了两个连接:控制连接和数据连接。
- 被动模式通常是解决防火墙问题的一种方法,因为服务器监听连接,而客户端只需对外发起连接。
综上所述,主动模式要求服务器主动连接客户端的数据端口,而被动模式要求服务器在监听端口上等待客户端连接。被动模式通常是在网络中更常见和可靠的模式,尤其在存在防火墙的情况下。
3.应用说明
在FTP中,通常存在两个连接:控制连接和数据连接。控制连接用于发送命令和接收响应,而数据连接用于实际的文件传输。
在主动模式下,FTP服务器在数据连接中主动连接客户端,发送数据。然而,这种模式在防火墙后面可能会遇到问题,因为FTP服务器无法确定应该连接哪个IP地址和端口。
为了解决这个问题,就引入了被动模式。在被动模式下,FTP服务器开启一个额外的端口(称为监听端口)等待客户端来连接。当客户端发送PASV命令时,服务器会告诉客户端使用哪个端口建立数据连接。
PASV命令的格式如下:
```
PASV
```
服务器会发送一个响应,包含一个IP地址和一个端口号,客户端可以使用这些信息建立数据连接。
以下是一个PASV命令的示例响应:
```
227 Entering Passive Mode (192,168,0,1,12,34)
```
在此示例中,服务器告诉客户端使用IP地址192.168.0.1和端口号(12 * 256 + 34 = 3090)建立数据连接。
通过使用PASV命令和被动模式,FTP客户端可以在防火墙后面与FTP服务器建立可靠的数据连接。
4.三款ftp client软件下载:
https://download.csdn.net/download/xieliru/88606040?spm=1001.2014.3001.5501