vsFTPd 浏览器没有列表

vsFTPd 浏览器没有列表

我正在尝试通过浏览器访问我的 ftp 服务器,但遇到问题。

如果我使用 Filezilla 访问它,我可以很好地看到目录。但是使用浏览器我没有得到目录列表。

我已将此条目添加到 iptables 希望能解决问题,但它没有改变:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

答案1

简单的解决方案是在连接到该 FTP 服务器时将 Filezilla 切换为使用被动模式。

当您连接到 FTP 时,您使用端口 21,该端口称为控制通道。这是用于发送命令和接收有关所发出命令的结果的通知的连接。请注意,对于文件列表(输出到LIST)、文件传输(获取文件RETR和放入文件STOR)以及其他实际需要传输数据的操作,将创建一个称为数据通道的单独通道。 FTP 可以以主动或被动两种模式操作该数据通道。这两个都指的是数据通道是如何建立的。

You issue a LIST (in active mode)

CLIENT                                 FIREWALL                              FTP SERVER
                                          _              (port 21)                _
 __  _               (port 21)           |=| ---------- LIST command --------->  |=|
[__]|=|  ----- LIST command issued -- >  |=|                                     |=|
/::/|_| .                                |_| <----- FTP server attempts to ----  |_|
        `\___ now listening on arbitrary            connect and gets denied
              port for data channel say 8000             by firewall

在主动模式下,客户端通告它创建的任意侦听端口,并且FTP服务器连接到客户端计算机上的此公布的地址和端口。这通常是防火墙阻止流量的地方,因为它是到通告 FTP 数据通道的客户端主机上的随机(经常变化的)高阶端口号。 Filezilla 默认使用 6000 到 7000 之间的端口。如果防火墙没有阻止此连接,LIST则命令的输出将通过此单独的通道传输。

You issue a LIST (in passive mode)


CLIENT                             FIREWALL                               FTP SERVER
                                       _              (port 21)                _
 __  _            (port 21)           |=| ---------- LIST command --------->  |=|
[__]|=| --- LIST command issued -- >  |=|                                     |=|
/::/|_|                               |_| <--- FTP server advertises the ---  |_|
                                               listening data port over     \___ server with
                                                  the control channel         listening data
                                                                                 channel

CLIENT                                 FIREWALL                            FTP SERVER
                                          _              (port 21)             _
 __  _   <--- open control channel --->  |=| ---- open control channel ---->  |=|
[__]|=|                                  |=|                                  |=|
/::/|_|  --- client establishes a ---->  |_| ---- passive data channel ---->  |_|
             connection to the                    connection allowed
             advertised data channel                  by firewall       

在被动模式下,角色颠倒,FTP 客户端在命令PASV之前发出命令LIST。这FTP服务器然后创建一个侦听 TCP 端口并通告该端口以供客户端连接以建立数据通道。大多数防火墙通常允许这样做(因为客户端可以与任何端口建立出站连接)。

请注意,如果您的 FTP 服务器和 Internet 之间存在防火墙,则该防火墙必须配置为打开这些端口以允许被动连接。大多数 FTP 服务器都能够设置公布这些端口的范围,并且可以打开这些端口以允许这些连接。

如果您受到限制并且拥有无法执行被动操作的客户端,Filezilla 提供了此功能(通过“编辑”->“设置...”->“连接/FTP/主动模式”来设置要使用的端口),然后您可以将这些端口添加到您的防火墙。

相关内容