FTP传输中的active mode和passive mode
噢,还真的是这样,如果是passive mode就不会用端口20了
--------------------------------------------
2 FTP 的工作模式概述
FTP 协议不同于其他协议的一大特点是,其底层的 CLIENT 和 SERVER 之间有两个通信管道,即 command channel 和 data channel;
command channel 用来在客户端和服务器之间,传输命令和对命令的响应(客户端会发送命令给服务端,服务端也会发送命令给客户端);
data channel 用来进客户端和服务器之间,进行实际的文件数据的传输;
客户端的 command channel 和 data channel,使用的端口都是随机的;
默认情况下,服务端的 command channel 使用端口 21;
默认情况下,在 active 模式下,服务端的 data channel 使用端口 20;
在 passive 模式下,服务端的 data channel 使用一个随机的端口(其 range 可配置);
两个通信通道,和端口使用情况,
FTP传输中的active mode和passive mode
FTP数据传输中,一般情况下(active mode)会产生一个问题:如果客户端在防火墙内侧,数据传输就会失败(因为请求从FTP服务器→FTP客户端)。
为了解决这个问题,可以选择启用passive mode,将原本FTP服务器→FTP客户端的传输请求改变为FTP客户端→FTP服务器。
以ProFTPD为例,在配置文件中写入如下内容以启用passive mode:
#WAN方的ip地址或域名
MasqueradeAddress 10.2.3.4
#指定使用端口的范围
Passive Ports 52000 52020
---------------------------------------------------
呃,那这个端口范围是什么意思啊,这个配置文件是在服务器上的吧,那就是说52000~52020拿来接收客户端的请求咯……?没太懂为什么不能继续用原本的20了,因为20的方向是相反的?
老色在社畜站的分身