После установки ftp.set_debuglevel(2)
и включения подробного входа в систему /etc/vsftpd.conf
, добавив log_ftp_protocol=YES
. Я заметил, что клиент не отправляет команду после команды pasv
. просмотрев протокол ftp, я заметил, что после входа в систему ftp решает какой-то случайный порт, по которому они будут общаться. Исходя из этого я подумал, что может быть проблема с брандмауэром. несмотря на то, что я уже разрешил 20,21,22 и 960. поэтому я попытался отключить брандмауэр полностью sudo ufw disable
. и запустил скрипт, и он работал без нареканий. Что меня смущало, так это то, что иногда сценарий работал, и в основном это просто тайм-аут. Исходя из текущего сценария, я предполагаю, что всякий раз, когда возникает проблема тайм-аута, это в основном связано с настройками брандмауэра или безопасности, например, когда мы подключаемся к серверам ec2 и т. Д.
Кроме того, включение уровня debuglevel и verbose помогло мне во многом другомработает в темноте.
Вот журнал, после которого связь зависла или не работает.
*get* '227 Entering Passive Mode (192,168,10,6,200,66).\n'
*resp* '227 Entering Passive Mode (192,168,10,6,200,66).'