penjelasan yang jelas dan teknis berkaitan dengan beberapa sesi sesi FTP bersamaan ketika mengunci port data ke hanya satu port adalah hal yang paling saya tertarik ketahui secara mendalam. Kapan itu bisa bekerja, kapan itu tidak akan bekerja, mengapa itu mungkin tidak direkomendasikan, dll.
Ini akan menjadi tebakan liar, karena saya belum mengujinya, Anda harus mencobanya sendiri dan melihat apakah ada beberapa masalah lain yang mungkin saya lewatkan.
Saya kira Anda dapat membatasi rentang port pasif ke satu port tunggal . Bahkan Anda dapat melihat dalam pertanyaan ini bahwa rentang port kecil digunakan dalam praktiknya . Secara teoritis, untuk mendukung beberapa koneksi konkuren Anda hanya perlu 4 nilai: IP lokal, port lokal, IP jarak jauh, port jarak jauh menjadi unik. Ini adalah bagaimana Anda membedakan antara koneksi yang berbeda.
Jika Anda mengunci port pada server Anda ke satu nilai tunggal, maka satu-satunya variabel yang tersisa adalah port yang digunakan oleh klien. Ini bukan masalah, selama klien memiliki kumpulan porta singkat gratis yang cukup banyak untuk dipilih. Kecuali itu melakukan NAT berat, Anda tidak perlu khawatir tentang ini. Sekarang, berhati-hatilah karena ini hanya hal-hal teoritis : jika Anda menggunakan banyak port pada server Anda, Anda dapat melipatgandakan jumlah koneksi konkuren hipotetis dengan mengaktifkannumber of ports in range
koneksi per satu port sisi klien. Tapi itu tidak akan terjadi dalam praktik, karena saya ragu ada implementasi dari klien FTP yang akan mendukung ini (karena itu tidak masuk akal). Ditambah lagi jika klien harus berbagi porta fana dengan cara ini dan tidak bisa hanya membuka yang baru, maka ia memiliki masalah yang jauh lebih parah untuk dihadapi. Jadi, dari perspektif ini Anda harus benar-benar aman menggunakan satu port.
Mari kita pikirkan mengapa satu port saja mungkin tidak cukup .
Pertama-tama, saya bisa menemukan situasi di mana implementasi server FTP yang benar-benar buggy menggunakan hanya nomor port lokal sebagai cara untuk mengidentifikasi transfer data klien. Sekali lagi, saya tidak berpikir FTPd yang layak akan melakukan itu.
Masalah sebenarnya ( ya, Anda dapat mengabaikan semua hal di atas sebagai penyimpangan besar ;-)) adalah rentang port pasif dalam rentang non-privilege .
Ini berarti bahwa nomor port yang Anda pilih tidak dicadangkan per se , dan sebenarnya setiap proses pengguna (tidak memerlukan hak akses root ) dapat mengambilnya sebelum server FTP Anda melakukannya. Jika Anda memiliki kumpulan port yang melimpah untuk dipilih, Anda hanya perlu yang gratis. Jika Anda terikat untuk menggunakan satu-satunya dan itu sudah digunakan, Anda tidak akan dapat menangani transfer dengan benar.
Maaf, jika jawabannya agak terlalu spekulatif. Sejujurnya, saya berusaha keras untuk menemukan alasan mengapa Anda tidak boleh menggunakan satu port dan, selain dari yang terakhir, saya tidak bisa memikirkan bukti keras yang menentangnya. Meskipun demikian, Anda mengajukan pertanyaan yang menarik dan menantang.