FTP在aliyun上使用经验

      针对FTP服务的网络相关问题,在阿里云上使用经验,该文档同样适合真实物理机房的防火墙相关模型参考使用。

1、FTP服务是仅基于TCP协议的服务,不支持UDP。

2、主动模式FTP服务的网络访问特点:

     客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

    针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:    

    a. 客户端任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)  

    b. FTP服务器的21端口到客户端大于1024的端口。 (服务器响应客户端的控制端口) 

    c. FTP服务器的20端口到客户端大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)

    d. 客户端大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口) 

3、被动模式FTP服务的网络访问特点:

     当客户端发起一个 FTP连接时,客户端打开两个任意的非特权本地端口(N和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口P,并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。  

       对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:     

    a. 从客户端任何大于1024的端口到服务器的21端口(客户端初始化的连接)  

    b. 服务器的21端口到客户端任何大于1024的端口(服务器响应到客户端的控制端口的连接) 

    c. 从客户端任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)

   d.服务器的大于1024端口到客户端的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)


总结:

1.不管主动模式还是被动模式,客户端都会使用1024-65535(控制端口N,数据端口N+1)中的随机端口。

2.主动模式时,服务端使用的是20,21端口即可;被动模式时服务端使用21(控制端口),1024-65535(数据端口)。

3.被动模式时,服务器可以通过如下参数来服务器端的数据端口范围:

          /etc/vsftpd/vsftpd.conf 新增内容:

          pasv_enable=yes

  pasv_min_port=10000

  pasv_max_port=10009