Статус: сервер отправил пассивный ответ с не маршрутизируемым адресом
Вышеуказанное означает, что FTP-сервер настроен неправильно.Он отправляет свой внутренний сетевой IP-адрес во внешнюю сеть (клиенту - FileZilla или Python ftplib), где он недействителен.FileZilla может обнаружить это и автоматически использовать исходный IP-адрес сервера.
Python ftplib не выполняет такое обнаружение.
Вам необходимо исправить свой FTP-сервер, чтобы он возвращал правильныйIP-адрес.
Если невозможно починить сервер (он не ваш и администратор не сотрудничает), вы можете заставить ftplib игнорировать возвращенный (неверный) IP-адрес и использовать оригинальный адресвместо этого переопределяя FTP.makepasv
:
class SmartFTP(FTP):
def makepasv(self):
invalidhost, port = super(SmartFTP, self).makepasv()
return self.host, port
ftp = SmartFTP(ftp_server)
# the rest of the code is the same