FTP被动模式的端口

我从Google云端引擎上的防火墙端口21打开了FTP,但是我只能通过主动模式连接到FTP。 我也想用被动的mod。

根据https://stackoverflow.com/questions/24566692/filezilla-ftp-server-fails-to-retrieve-directory-上市港口50000-55000必须打开,但我试过。 这个答案不适用于我的情况。 当我打开所有端口到TCP我可以通过被动模式连接,但我不想打开所有端口(或者我需要打开所有端口??)

在这里我find了所有的端口

被动模式

在被动模式下,客户端无法控制服务器为数据连接select的端口。 因此,要使用被动模式,您必须允许传出连接到防火墙中的所有端口。

我的问题是我需要打开所有端口的被动模组或我可以别的吗?

系统

操作系统:最新软件包的CentOS 7

FTP服务:PureFTPd

更新

当我尝试被动模式,日志说login后,在retreiving文件列表(我不能发布日志,因为我的日志文件不是英文)

感谢和问候

添加以下内容:

PassivePortRange 50000 55000 

 /etc/pure-ftpd.conf 

我认为你的问题将得到解决。 请记住,这个端口范围也应该允许在你的防火墙中。

编辑

引用这个美妙的来源:

在被动模式FTP中,客户端启动到服务器的两个连接,解决防火墙过滤从服务器到客户端的传入数据端口连接的问题。 打开FTP连接时,客户端在本地打开两个随机非特权端口(N> 1023和N + 1)。 第一个端口与端口21上的服务器联系,但不是发出PORT命令,而是允许服务器连接回其数据端口,客户端将发出PASV命令。 这样做的结果是,服务器随后打开一个随机的非特权端口(P> 1023),并将P发送回客户端以响应PASV命令。 客户端然后启动从端口N + 1到服务器端口P的连接以传输数据。

这里的诀窍就是用这个

PassivePortRange 50000 55000

指令将强制pureFtp从您以前在防火墙允许的范围中select随机端口。