Загрузка по FTP не удалась, за исключением одного места

Загрузка по FTP не удалась, за исключением одного места

Я пытаюсь перенести веб-сайт с одного сервера на другой, и у меня возникла проблема с FTP на новом сервере. На сайт загружен контент по FTP с помощью внутреннего программного обеспечения. Я знаю, что использование FTP настоятельно не рекомендуется, но на данный момент у меня нет выбора. Я настроил FTP, по-видимому, достаточно хорошо, и могу успешно передавать файлы с помощью FileZilla, CyberDuck и терминальных клиентов FTP, но при использовании нашего программного обеспечения он входит в систему, создает файл размером 0 байт и истекает время ожидания (ETIMEDOUT) каждый раз, за ​​исключением случаев использования сети в моем офисе. Я запускал это с 4G-модемов, через VPN, дома и т. д., и это не срабатывало.

FTP-клиент, используемый в нашем программном обеспечении,jsftp, который работает только в пассивном режиме, поэтому переключение в активный режим невозможно. Программное обеспечение работает на macOS.

Предыдущий сервер работает достаточно хорошо из любого места, это общая машина MediaTemple Debian, которая использовала pure-ftpd. Новый сервер, на который я перехожу, работает под управлением Ubuntu 16.04 и размещен на Google Cloud Platform. Я использовал и vsftpd, и pure-ftpd. Я попробовал использовать другой сервер Google Cloud, настроенный на моем личном аккаунте, и возникли те же проблемы.

Я не могу понять, в чем проблема, программное обеспечение работает совершенно нормально на старом сервере, а при использовании в офисе также работает совершенно нормально на серверах Google. К серверам Google также могут обращаться многочисленные другие клиенты, и они работают независимо от того, находятся они в офисе или нет. Я не могу найти ничего в сети об этой конкретной ситуации, поэтому любые идеи приветствуются.

решение1

Вы упомянули, что файл 0 байт и истекло время ожидания. Вы проверили права доступа к файлу в каталоге, в который пишет ваше программное обеспечение?

решение2

Я исправил эту проблему на стороне сервера. Я заметил, что при соединениях, где я не мог загрузить через программное обеспечение, если я использовал FileZilla, он возвращал сообщение "Сервер отправил пассивный ответ с немаршрутизируемым адресом. Вместо этого используется адрес сервера". Но я не получал этого с соединениями, где программное обеспечение работало.

Поэтому я установил IP-адрес сервера для пассивного режима (ForcePassiveIP в pure-ftpd), и теперь он работает так, как задумано.

решение3

При запуске виртуальной машины на GCP необходимо обновить правила брандмауэра:

  • В: TCP 20,21,60000-65535
  • ВЫХОД: TCP 20,21,60000-65535

Затем обновите FTP для использования пассивного диапазона портов 60000-65535. Затем на стороне клиента используйте пассивный режим. Подробности и инструкции -http://sysadm.pp.ua/linux/proftpd-ubuntu-16-04.html

Связанный контент