Сбой загрузки через FTP, кроме одного места

525
Calum

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

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

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

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

3
Я думаю, что вам нужно проверить журналы FTP нового сервера, когда соединение выдает ошибку, и это звучит как ошибка уровня клиента FTP, когда существуют несовместимости между клиентом и службой FTP, к которой клиент пытается подключиться. Проверьте сайт поставщика FTP на наличие более новой версии клиентского программного обеспечения, поскольку решение может быть таким же простым, как использование более нового клиента на более новом сервере. См. Комментарии к этому посту для возможных обходных путей при обновлении клиента и подтверждении того, что это не является несовместимостью клиента Проблема, которую вы можете решить таким образом, возможно: https://github.com/sergi/jsftp/issues/103. Pimp Juice IT 7 лет назад 0

3 ответа на вопрос

0
Josh

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

0
Calum

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

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

0
jdango

Когда вы запускаете VM на GCP, вы должны обновить правила брандмауэра:

  • IN: TCP 20,21,60000-65535
  • OUT: TCP 20,21,60000-65535

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

Похожие вопросы