带有Google云计算引擎的Filezilla FTP Windows虚拟实例没有列出目录

我在Google云中有一个Windows 2016 VM实例。 我已经添加了一个入站Windows防火墙规则,允许端口21.我已经configuration谷歌云端口21的入站防火墙规则,以及所有端口的出站被动。

我能够连接到我的FTP服务器,但我收到此错误。

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

请注意,我也启用了filezilla中的TLS,但是启用或不启用TLS,我都收到了同样的错误。

我已经尝试完全禁用Windows防火墙没有运气,所以无论我的gcloud防火墙设置是错误的,或者我的filezillaconfiguration是错误的。

任何帮助,将不胜感激!

如果你想使用TLS工作,你可能需要打开端口990甚至端口989 。 另一个encryption数据的select是使用SFTP。 在这里使用SFTP 在 GCE上configurationFilezilla是一个不错的指南

如果禁用TLS工作,这是一个明确的指示没有configuration或错误configuration的防火墙。 即使你声称你禁用了所有的防火墙,你似乎没有实际上。

一些防火墙足够智能检查FTPstream量,根据需要打开FTP数据连接端口。 但是,如果控制连接被encryption,防火墙将无法检查它,并且无法为您打开数据连接端口。 所以使用TLS,你必须自己configuration规则。

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

比较短

您无需在Google Cloudconfigurationoutbound rules 。 在你的情况下,除了port 21你需要添加额外的端口,例如50000-50500Google Cloud Firewall (要添加到端口21指定的相同规则),然后在Windows Firewall (要添加到端口21指定相同的规则),并在页面Passive mode settings添加50000-50500FileZilla Settings

属于

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


Google云端设置

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

Windows防火墙设置 (取自此处 ,源代码也显示如何使用Command LinePowerShell设置Firewall ):

  1. 使用pipe理员帐户login;
  2. 单击开始 – >pipe理工具 – >具有高级安全性的Windows防火墙;
  3. 在左侧面板中,右键单击Inbound Rules ,然后单击New Rule ;
  4. 在“ Rule Type部分中,selectPort并单击Next
  5. Protocol and Ports部分,selectTCP作为协议的types21, 50000-50500Specific local portsinput字段中键入21, 50000-50500 ;
  6. Action部分,selectAllow the Connection ,然后单击Next ;
  7. Profile部分,select所有三个选项,然后单击Next 。 如果您希望限制连接到特定的configuration文件,只需select您认为适合您的设置的configuration文件即可。 对于这个例子,我们将打开所有configuration文件的端口;
  8. 在“ Name部分中,input此规则的描述性名称。 build议在名称中列出端口号,以便规则易于识别。 准备好后单击Finish

FileZilla设置

  1. 编辑 – >设置;
  2. 在树中selectGeneral setting ;
    • 更改字段Listen on these ports:21 ;
  3. 在树中selectPassive mode settings ;

    • 勾选Use custom port range: ,input500050500 ;
    • selectUse the following IP并input您的服务器IP(如果它是静态的)或selectRetrieve external IP address from: ;
  4. 编辑 – >用户;

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

笔记:

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

  2. 对于添加到FileZilla中的Windows用户,它们就像“未知”一样,所以Windows根本不允许任何对“主目录”文件夹的访问。 为了解决这个问题,我只是在“家目录”文件夹的安全设置中添加了Allconfiguration文件。


奖金#1

如果每次启动FileZilla interface ,您都可以通过msconfig禁用这种行为:

  1. 开始 – >inputmsconfig ;
  2. Startup选项卡 – >解开FileZilla Server – >确定;
  3. 重启。

奖金#2

如果linux用户想使用command line从ftp服务器下载文件:

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