Saya mencoba menulis skrip untuk mengunduh file, mengonversinya, lalu menjalankan program pada file yang dikonversi.
Untuk beberapa alasan curl
dibutuhkan lebih dari 1 menit untuk memulai transfer file.
Perintah:
curl ftp://tgftp.nws.noaa.gov/SL.us008001/ST.expr/DF.gr2/DC.ndfd/AR.conus/VP.001/ds.wx.bin -o test.out
Saya sudah mencoba menonaktifkan mode aktif dan EPRT dengan --ftp-pasv
dan --disable-eprt
tetapi itu tampaknya tidak membuat perbedaan.
Saya sudah mencoba --verbose
dan itu memberitahu saya di mana, tetapi saya masih tidak tahu mengapa.
Log in dengan cepat dan perubahan ke direktori yang benar, tetapi segera setelah mencoba mengunduh file, itu hanya duduk di sana selama lebih dari satu menit. Tepat sebelum penundaan di sini adalah output verbose:
* FTP 0x1c2b268 state change from CWD to PASV
* Connect data stream passively
< 229 Entering Extended Passive Mode (|||64103|)
Yang lucu adalah wget
mulai mengunduh segera. Saya tahu saya bisa menggunakannya, tetapi saya ingin mencari tahu mengapa curl
ada masalah.
Terima kasih sebelumnya.
EPSV
. Cobalah untuk menggunakan curlPASV
sebagai gantinya--disable-epsv
.Jawaban:
Masalahnya adalah semacam middlebox (firewall, perangkat inspeksi mendalam dll) yang menghasilkan masalah dengan perintah EPSV (mode pasif untuk IPv6 dan IPv4). Memaksa PASV (hanya mode pasif IPv4) dengan
--disable-epsv
menyelesaikan masalah. Masalah serupa dapat terjadi jika server memiliki IPv6 dan hanya ada masalah dengan IPv6, tetapi dalam kasus ini server tidak memiliki catatan DNS AAAA.sumber