Filezilla FTP 与 Google Cloud 计算引擎 Windows 虚拟实例未列出目录

Filezilla FTP 与 Google Cloud 计算引擎 Windows 虚拟实例未列出目录

我在 Google Cloud 中有一个 Windows 2016 VM 实例。我添加了一条入站 Windows 防火墙规则以允许端口 21。我已为 Google Cloud 配置了端口 21 的入站防火墙规则以及所有端口的出站防火墙规则,以实现被动。

我可以连接到我的 FTP 服务器,但是收到此错误。

Response:   425 Can't open data connection for transfer of "/"
Error:  Failed to retrieve directory listing

请注意,我也在 filezilla 中启用了 TLS,但无论是否启用 TLS,我都会收到相同的错误。

我尝试完全禁用 Windows 防火墙,但没有成功,所以要么是我的 gcloud 防火墙设置错误,要么是我的 filezilla 配置错误。

任何帮助,将不胜感激!

答案1

如果你想使用 TLS 工作,你可能需要打开 端口 990甚至港口989加密数据的另一种选择是使用 SFTP。有一个很好的指南,介绍如何使用 SFTP 在 GCE 上配置 Filezilla这里

答案2

如果禁用 TLS 有效,则表明防火墙未配置或配置错误。即使您声称已禁用所有防火墙,但实际上似乎并未禁用。

有些防火墙足够智能,可以检查 FTP 流量,并根据需要打开 FTP 数据连接端口。但如果控制连接已加密,防火墙就无法检查它,也无法为您打开数据连接端口。因此,使用 TLS,您必须自己配置规则。

例如,在 Windows 防火墙中,该功能被称为“状态 FTP 过滤”,并使用netsh advfirewall set global StatefulFtp ...命令进行配置。

答案3

简短

您不需要outbound rules在 中进行配置Google Cloud。除非port 21您需要添加其他端口,例如(50000-50500添加Google Cloud Firewall到指定端口 21 的相同规则),然后在Windows Firewall(添加到指定端口 21 的相同规则) 中,并在页面中50000-50500添加FileZilla SettingsPassive mode settings

属于

以下是基于 的完整说明(以防万一有人需要)Sever 2008,因为我不使用Server 2016(一切都应该非常相似)。我也没有使用,TLS因为我不需要它。以下设置允许FTP clients通过 工作Passive mode


Google 云设置

  1. VPC network -> Firewall rules;
  2. 点击Create firewall rule顶部;
    • 姓名:(default-allow-ftp无所谓);
    • 网络:(default或您需要的网络)
    • 优先级:(1000无所谓);
    • 交通方向:Ingress
    • 匹配时的操作:允许目标标签:留空(或选择您需要的标签);
    • 源IP范围:(0.0.0.0/0或您需要的IP范围)
    • 第二个源过滤器:(None或您需要的过滤器);
    • 协议和端口:指定的协议和端口:tcp:21,50000-50500

Windows 防火墙设置(取自这里。源代码还展示了如何Firewall使用Command Line和进行设置PowerShell):

  1. 使用管理员账户登录;
  2. 点击开始->管理工具->高级安全 Windows 防火墙;
  3. 在左侧面板中,右键单击Inbound Rules,然后单击New Rule
  4. Rule Type部分中,选择Port并单击Next
  5. 在该Protocol and Ports部分中,选择TCP协议类型并21, 50000-50500在输入字段中输入Specific local ports
  6. Action部分中,选择Allow the Connection并单击Next
  7. Profile部分中,选择所有三个选项并单击Next。如果您希望将连接限制到特定配置文件,您可以通过仅选择您认为适合您设置的配置文件来实现。对于此示例,我们将在所有配置文件上打开端口;
  8. 在该Name部分中,输入此规则的描述性名称。建议在名称中列出端口号,以便规则易于识别。Finish准备好后单击。

FileZilla 设置

  1. 编辑——>设置;
  2. 在树中选择General setting
    • 将字段更改Listen on these ports:21
  3. 在树中选择Passive mode settings

    • 勾选Use custom port range:5000输入50500
    • 选择Use the following IP并输入您的服务器 IP(如果是静态的)或选择Retrieve external IP address from:
  4. 编辑->用户;

  5. 在树中选择General
    • 在右侧单击Add并提供username您要用于连接的内容。这username与 Windows 用户帐户没有任何关系,因为 FileZilla 使用其自己的用户帐户系统;
    • 勾选Enable account,并且如果需要,Password
  6. 在树中选择Shared folder
    • 添加您想要作为“主目录”的文件夹并定义文件和目录的必要权限。

笔记:

  1. FileZilla 的权限与 Windows 的“主目录”文件夹权限设置没有任何关系。这意味着,如果 FileZilla 的设置允许用户创建文件夹\文件,但通过配置的权限Windows File Explorer不允许这样做,则用户无法在“主目录”中写入任何文件\文件夹。

  2. 对于 Windows,添加到 FileZilla 的用户类似于“未知”,因此 Windows 根本不允许任何访问“主目录”文件夹。为了解决这个问题,我只需All在“主目录”文件夹的安全设置中添加配置文件即可。


奖励#1

如果每次启动时都FileZilla interface出现此情况,您可以通过以下方式禁用此类行为msconfig

  1. 开始 -> 输入msconfig
  2. Startup标签->取消勾选FileZilla Server->确定;
  3. 重启。

奖励#2

如果 Linux 用户想要从 ftp 服务器下载文件,使用以下命令command line

wget ftp://username:password@server_ip_address/home_dir/file_name

相关内容