Login FTP berhasil tetapi daftar folder menggantung: mengapa
Login FTP dan daftar folder memakai dua koneksi berbeda. Saat daftar menggantung, periksa alamat data pasif dan rentang port, bukan kata sandi.
Nama pengguna berfungsi, kata sandi berfungsi, dan klien menyatakan sudah terhubung. Lalu ia menunggu selamanya untuk daftar folder, atau untuk transfer file pertama, dan tidak ada apa pun di kredensial yang menjelaskan itu. FTP membuka koneksi kedua untuk setiap daftar dan setiap file, dan koneksi kedua itulah yang gagal. Login hanya membuktikan bahwa percakapan pertama berfungsi.
Lakukan pemeriksaan secara berurutan. Masing-masing menyingkirkan lapisan yang berbeda, jadi berhentilah pada yang pertama yang menghasilkan anomali.
Pisahkan kedua koneksi terlebih dahulu
Koneksi kontrol membawa perintah dan balasan pada port pendengaran server. Koneksi data membawa daftar direktori atau isi file, dan dalam mode pasif server memilih titik akhirnya dan mengumumkannya dalam balasan PASV atau EPSV. Mengizinkan port 21 tidak menjelaskan apakah port data dapat dijangkau, dan itulah tepatnya sebabnya login berhasil sementara setiap daftar habis waktu. Panduan WinSCP tentang mode FTP menjabarkan pemisahan itu dan kebutuhan jaringannya.
Jika klien berada di belakang VPN, jalur data melintasi terowongan yang sama tetapi belum tentu kebijakan yang sama.
Baca alamat dalam balasan PASV
Jalankan klien verbose dan baca balasannya alih-alih menduga. curl -v ftp://user@host/ mencetak baris PASV dengan alamat dan port yang diinginkan server, dan ke alamat itulah klien terhubung berikutnya. Jika itu alamat privat yang tidak berarti apa pun di sisi klien terowongan, koneksi data tidak menuju ke mana pun sementara kanal kontrol tetap sehat.
Bandingkan alamat itu dengan alamat yang benar-benar dicapai klien. Ketidakcocokan adalah jawabannya, dan biasanya berasal dari NAT atau dari server yang dikonfigurasi dengan alamat internal.
Periksa rentang port dan kebijakan terowongan
Server pasif mengalokasikan port data dari rentang yang dikonfigurasi, dan rentang itu harus diizinkan melalui VPN dan firewall apa pun di jalur. Kebijakan yang mengizinkan 21 dan tidak yang lain adalah kebijakan khusus login. Pastikan rentang dengan pihak yang menjalankan server, lalu uji satu port darinya alih-alih menganggap seluruh rentang berperilaku sama.
Kanal kontrol terenkripsi membuat ini lebih sulit, karena kotak perantara tidak lagi dapat menulis ulang alamat yang diumumkan saat transit.
Ketahui kapan EPSV atau opsi cadangan membantu
EPSV mengembalikan port tanpa alamat terpisah, yang menghapus kegagalan alamat salah bila kedua ujung mendukungnya. Beberapa klien juga dapat diatur untuk mengabaikan alamat yang diumumkan dan memakai ulang tujuan koneksi kontrol. Keduanya alat sah yang ditujukan untuk topologi tertentu, bukan perbaikan menyeluruh.
Jangan menonaktifkan TLS hanya agar alat bantu dapat memeriksa sesi. Itu menukar protokol yang berfungsi dengan model ancaman yang rusak.
Pastikan dengan daftar dan transfer
Setelah kebijakan alamat atau port berubah, buka sesi baru melalui jalur VPN yang sama dan daftarkan direktori. Lalu transfer file kecil, karena daftar dan transfer dapat menempuh jalur kode berbeda pada sebagian server. Periksa log klien untuk koneksi data ke alamat dan port yang diharapkan dan pastikan byte telah tiba.
Jaga FTP, FTPS, dan SFTP tetap terpisah di kepala saat melakukannya. Perubahan port pasif bukan pengaturan SFTP, dan perbaikannya tidak berlaku lintas protokol.