除一个位置外,FTP 上传均失败

除一个位置外,FTP 上传均失败

我正在尝试将网站从一台服务器迁移到另一台服务器,但在新服务器上遇到了 FTP 问题。网站的内容由内部软件通过 FTP 推送到网站上,我知道强烈建议不要使用 FTP,但目前我别无选择。我已经设置了 FTP,似乎足够好,可以使用 FileZilla、Cyber​​Duck 和 ftp 终端客户端成功传输文件,但使用我们的软件时,每次都会登录、创建 0 字节的文件并超时(ETIMEDOUT),除非使用我办公室的网络。我已经通过 4G 加密狗、VPN、在家里等运行过它,但它会失败。

我们的软件使用的 ftp 客户端是jsftp,它仅在被动模式下工作,因此无法切换到主动模式。该软件在 macOS 上运行。

以前的服务器在任何位置都可以正常工作,它是一台使用 pure-ftpd 的 MediaTemple 共享 Debian 机器。我要迁移到的新服务器运行的是 Ubuntu 16.04,由 Google Cloud Platform 托管。我使用过 vsftpd 和 pure-ftpd。我尝试使用在我的个人帐户上设置的另一个 Google Cloud 服务器,但出现了同样的问题。

我不知道问题出在哪里,该软件在旧服务器上运行良好,在办公室使用时在 Google 服务器上也运行良好。Google 服务器也可以被许多其他客户端访问,无论是否在办公室都可以工作。我在网上找不到有关此特定情况的任何信息,因此欢迎提出任何想法。

答案1

您提到文件为 0 字节并且超时。您是否检查过软件正在写入的目录的文件权限?

答案2

我已经修复了服务器端的这个问题。我注意到,在无法通过软件上传的连接上,如果我使用 FileZilla,它会返回“服务器发送了带有不可路由地址的被动回复。改用服务器地址。”但在软件正常工作的连接上我不会得到这个信息。

因此,我已将服务器的 IP 地址设置为被动模式(pure-ftpd 中的 ForcePassiveIP),现在它可以按预期工作。

答案3

当您在 GCP 上启动 VM 时,您应该更新防火墙规则:

  • 输入:TCP 20,21,60000-65535
  • 输出:TCP 20,21,60000-65535

然后更新 FTP 以使用被动端口范围 60000-65535。然后在客户端使用被动模式。详细信息和说明 -http://sysadm.pp.ua/linux/proftpd-ubuntu-16-04.html

相关内容