FTP端口与主动及被动模式
FTP(File Transfer Protocol)是用于在计算机之间传输文件的标准网络协议。在FTP中,使用两个端口来进行通信,分别是21号端口和20号端口。这两个端口的用途如下:
1. 端口21: 控制连接(Control Connection)
- 用于建立客户端和服务器之间的控制连接。
- 通过这个连接发送命令和接收响应,例如登录、注销、改变目录、获取文件列表等。
2. 端口20: 数据连接(Data Connection)
- 用于传输文件的实际数据。
- 在FTP的主动模式下,服务器使用20号端口向客户端发送数据;而在被动模式下,客户端使用20号端口向服务器发送数据。
主动模式(Active Mode)和被动模式(Passive Mode)的区别
1. 主动模式
- 客户端从一个随机的端口N(N > 1023)连接到服务器的20号端口,用于数据传输。
- 在主动模式下,客户端告诉服务器要在哪个端口接收数据连接,然后服务器主动连接到客户端的指定端口,传输数据。
2. 被动模式
- 客户端从一个随机的端口N(N > 1023)连接到服务器的21号端口,用于建立控制连接。
- 服务器告诉客户端它将在哪个端口上监听数据连接,然后客户端主动连接到服务器的指定端口,传输数据。
主动模式和被动模式的选择通常取决于防火墙和网络配置
1. 主动模式
- 在客户端防火墙之后工作较为困难,因为需要允许服务器主动连接到客户端的随机端口。
- 如果客户端在一个私有网络(如公司内部网络)后面,而且有防火墙,可能需要配置防火墙以允许数据连接。
2. 被动模式
- 在被动模式下,客户端建立所有连接,因此适用于在客户端后面有防火墙的情况。
- 服务器端需要打开一系列的随机端口以等待客户端的连接,因此服务器端也需要配置防火墙以允许这些连接。
·总体而言,被动模式在穿越防火墙时更容易配置,因此在实际应用中更为常见。