Log masuk FTP berjaya tetapi senarai folder tergantung: mengapa
Log masuk FTP dan senarai folder menggunakan dua sambungan berbeza. Apabila senarai tergantung, periksa alamat data pasif dan julat port, bukan kata laluan.
Nama pengguna berfungsi, kata laluan berfungsi, dan klien menyatakan ia bersambung. Kemudian ia menunggu selama-lamanya untuk senarai folder, atau untuk pemindahan fail pertama, dan tiada apa dalam kelayakan yang menjelaskan perkara itu. FTP membuka sambungan kedua untuk setiap senarai dan setiap fail, dan sambungan kedua itulah yang gagal. Log masuk hanya membuktikan perbualan pertama berfungsi.
Lakukan pemeriksaan mengikut urutan. Setiap satu mengecualikan lapisan berbeza, jadi berhenti pada yang pertama yang menghasilkan anomali.
Asingkan kedua-dua sambungan dahulu
Sambungan kawalan membawa arahan dan balasan pada port mendengar pelayan. Sambungan data membawa senarai direktori atau isi fail, dan dalam mod pasif pelayan memilih titik akhirnya dan mengumumkannya dalam balasan PASV atau EPSV. Membenarkan port 21 tidak memberitahu apa-apa tentang sama ada port data boleh dicapai, dan itulah sebabnya log masuk berjaya sementara setiap senarai tamat masa. Panduan WinSCP tentang mod FTP menerangkan pemisahan itu dan keperluan rangkaiannya.
Jika klien berada di belakang VPN, laluan data merentasi terowong yang sama tetapi belum tentu dasar yang sama.
Baca alamat dalam balasan PASV
Jalankan klien terperinci dan baca balasan daripada meneka. curl -v ftp://user@host/ mencetak baris PASV dengan alamat dan port yang dikehendaki pelayan, dan ke alamat itulah klien bersambung seterusnya. Jika ia alamat peribadi yang tidak bermakna di sebelah klien terowong, sambungan data tidak pergi ke mana-mana manakala saluran kawalan kekal sihat.
Bandingkan alamat itu dengan alamat yang sebenarnya dicapai oleh klien. Ketidakpadanan itulah jawapannya, dan ia biasanya datang daripada NAT atau daripada pelayan yang dikonfigurasikan dengan alamat dalaman.
Periksa julat port dan dasar terowong
Pelayan pasif memperuntukkan port data daripada julat yang dikonfigurasikan, dan julat itu mesti dibenarkan melalui VPN dan mana-mana tembok api di laluan. Dasar yang membenarkan 21 dan tiada yang lain ialah dasar log masuk semata-mata. Sahkan julat itu dengan pihak yang mengendalikan pelayan, kemudian uji satu port daripadanya daripada menganggap seluruh julat berkelakuan sama.
Saluran kawalan yang disulitkan menjadikan ini lebih sukar, kerana kotak perantaraan tidak lagi boleh menulis semula alamat yang diumumkan semasa transit.
Ketahui bila EPSV atau pilihan sandaran membantu
EPSV memulangkan port tanpa alamat berasingan, yang menghapuskan kegagalan alamat salah apabila kedua-dua hujung menyokongnya. Sesetengah klien juga boleh diarahkan mengabaikan alamat yang diumumkan dan menggunakan semula destinasi sambungan kawalan. Kedua-duanya alat sah yang menyasarkan topologi tertentu, bukan pembetulan menyeluruh.
Jangan lumpuhkan TLS hanya supaya alat bantu dapat memeriksa sesi. Itu menukar protokol yang berfungsi dengan model ancaman yang rosak.
Sahkan dengan senarai dan pemindahan
Selepas dasar alamat atau port berubah, buka sesi baharu melalui laluan VPN yang sama dan senaraikan direktori. Kemudian pindahkan fail kecil, kerana senarai dan pemindahan boleh melalui laluan kod berbeza pada sesetengah pelayan. Periksa log klien untuk sambungan data ke alamat dan port yang dijangka dan sahkan bahawa bait telah tiba.
Simpan FTP, FTPS dan SFTP berasingan dalam fikiran semasa melakukan ini. Perubahan port pasif bukan tetapan SFTP, dan pembetulan itu tidak merentasi protokol.