Я пытаюсь написать скрипт для загрузки файла, конвертировать его, а затем запустить программу для конвертированного файла.

По какой-то причине curl занимает более 1 минуты, чтобы начать передачу файла.

Команда:

curl ftp://tgftp.nws.noaa.gov/SL.us008001/ST.expr/DF.gr2/DC.ndfd/AR.conus/VP.001/ds.wx.bin -o test.out

Я пытался отключить активный и EPRT режимы с помощью --ftp-pasv и --disable-eprt но, похоже, это не имеет значения.

Я пробовал - --verbose и это говорит мне, где, но я до сих пор не знаю, почему.

Он быстро входит в систему и переходит в нужный каталог, но как только он пытается загрузить файл, он просто сидит там более минуты. Непосредственно перед задержкой выводится подробный вывод:

* FTP 0x1c2b268 state change from CWD to PASV
* Connect data stream passively
< 229 Entering Extended Passive Mode (|||64103|)

Самое смешное, что wget начинает скачивать сразу. Я знаю, что могу использовать это, но я хотел бы выяснить, почему у curl возникают проблемы.

Заранее спасибо.

1 ответ1

2

Проблема заключалась в некотором промежуточном блоке (брандмауэр, устройство глубокой проверки и т.д.), Который вызывал проблемы с командой EPSV (пассивный режим для IPv6 и IPv4). Принудительное использование PASV (только для пассивного режима IPv4) с помощью --disable-epsv решило проблему. Подобные проблемы могли быть, если на сервере был IPv6, и были проблемы только с IPv6, но в этом случае на сервере не было записи DNS AAAA.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .