cURL atraso muito longo antes de iniciar o download do ftp

0

Estou tentando escrever um script para baixar um arquivo, convertê-lo e executar um programa no arquivo convertido.

Por algum motivo, curl leva mais de um minuto para iniciar a transferência de arquivos.

Comando:

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

Eu tentei desativar os modos ativo e EPRT com --ftp-pasv e --disable-eprt , mas isso não parece fazer diferença.

Eu tentei --verbose e isso me diz onde, mas eu ainda não tenho ideia do porquê.

Efetua login rapidamente e muda para o diretório correto, mas assim que tenta baixar o arquivo, ele fica ali por mais de um minuto. Pouco antes do atraso, aqui está a saída detalhada:

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

O engraçado é que wget começa a baixar imediatamente. Eu sei que posso usar isso, mas gostaria de descobrir por que curl está tendo problemas.

Obrigado antecipadamente.

    
por Shadow Man 03.05.2014 / 02:26

1 resposta

2

O problema era algum tipo de middlebox (firewall, dispositivo de inspeção profunda, etc.) que produzia problemas com o comando EPSV (modo passivo para IPv6 e IPv4). Forçar o PASV (modo passivo apenas IPv4) com --disable-epsv resolveu o problema. Problemas semelhantes poderiam ter sido se o servidor tivesse IPv6 e houvesse problemas apenas com o IPv6, mas neste caso o servidor não tinha nenhum registro DNS AAAA.

    
por 05.05.2014 / 20:27

Tags