Jawaban:
Aktif dan pasif adalah dua mode yang dapat dijalankan oleh FTP.
Untuk latar belakang, FTP sebenarnya menggunakan dua saluran antara klien dan server, perintah dan saluran data, yang sebenarnya merupakan koneksi TCP yang terpisah .
Saluran perintah adalah untuk perintah dan tanggapan sedangkan saluran data untuk benar-benar mentransfer file.
Pemisahan ini informasi perintah dan data menjadi saluran yang terpisah cara yang bagus untuk dapat mengirim perintah ke server tanpa harus menunggu transfer data saat ini selesai. Sesuai RFC, ini hanya diamanatkan untuk subset perintah, seperti berhenti, membatalkan transfer saat ini, dan mendapatkan status.
Dalam mode aktif , klien membuat saluran perintah tetapi server bertanggung jawab untuk membuat saluran data. Ini sebenarnya bisa menjadi masalah jika, misalnya, mesin klien dilindungi oleh firewall dan tidak akan mengizinkan permintaan sesi yang tidak sah dari pihak eksternal.
Dalam mode pasif , klien membuat kedua saluran. Kita sudah tahu itu membangun saluran perintah dalam mode aktif dan melakukan hal yang sama di sini.
Namun, ia kemudian meminta server (pada saluran perintah) untuk mulai mendengarkan pada port (berdasarkan kebijaksanaan server) daripada mencoba untuk membuat koneksi kembali ke klien.
Sebagai bagian dari ini, server juga mengembalikan ke klien nomor port yang telah dipilihnya untuk didengarkan, sehingga klien tahu bagaimana menghubungkannya.
Setelah klien mengetahui hal itu, ia kemudian dapat berhasil membuat saluran data dan melanjutkan.
Rincian lebih lanjut tersedia di RFC: https://www.ietf.org/rfc/rfc959.txt
Saya baru-baru ini mengalami pertanyaan ini di tempat kerja saya jadi saya pikir saya harus mengatakan sesuatu lebih lanjut di sini. Saya akan menggunakan gambar untuk menjelaskan cara kerja FTP sebagai sumber tambahan untuk jawaban sebelumnya.
Mode aktif:
Mode pasif:
Dalam konfigurasi mode aktif, server akan berusaha menyambung ke port sisi klien acak. Jadi kemungkinannya, port itu tidak akan menjadi salah satu port yang telah ditentukan. Akibatnya, upaya untuk menghubungkannya akan diblokir oleh firewall dan tidak ada koneksi yang akan dibuat.
Konfigurasi pasif tidak akan memiliki masalah ini karena klien akan menjadi orang yang memulai koneksi. Tentu saja, ada kemungkinan bagi sisi server untuk memiliki firewall juga. Namun, karena server diharapkan menerima jumlah permintaan koneksi yang lebih besar dibandingkan dengan klien, maka logis bagi admin server untuk beradaptasi dengan situasi dan membuka pilihan port untuk memenuhi konfigurasi mode pasif.
Jadi sebaiknya Anda mengkonfigurasi server untuk mendukung FTP mode pasif. Namun, mode pasif akan membuat sistem Anda rentan terhadap serangan karena klien seharusnya terhubung ke port server acak. Jadi, untuk mendukung mode ini, server Anda tidak hanya harus memiliki banyak port, firewall Anda juga harus memungkinkan koneksi ke semua port tersebut untuk dilewati!
Untuk mengurangi risiko, solusi yang baik adalah menentukan rentang port pada server Anda dan kemudian hanya mengizinkan kisaran port pada firewall Anda.
Untuk informasi lebih lanjut, silakan baca dokumen resmi .
Versi yang sudah dihapus dari artikel saya Mode Koneksi FTP (Aktif vs Pasif) :
Mode koneksi FTP (aktif atau pasif), menentukan bagaimana koneksi data dibuat. Dalam kedua kasus, klien membuat koneksi kontrol TCP ke port perintah server FTP 21. Ini adalah koneksi keluar standar, seperti dengan protokol transfer file lainnya (SFTP, SCP, WebDAV) atau aplikasi klien TCP lainnya (mis. Browser web ). Jadi, biasanya tidak ada masalah saat membuka koneksi kontrol.
Dimana protokol FTP lebih rumit dibandingkan dengan protokol transfer file lainnya adalah transfer file. Sementara protokol lain menggunakan koneksi yang sama untuk kontrol sesi dan transfer file (data), protokol FTP menggunakan koneksi terpisah untuk transfer file dan daftar direktori.
Dalam mode aktif , klien mulai mendengarkan pada port acak untuk koneksi data yang masuk dari server (klien mengirim perintah FTP PORT
untuk menginformasikan server di mana port itu mendengarkan). Saat ini, biasanya klien berada di belakang firewall (mis. Firewall Windows bawaan) atau router NAT (mis. Modem ADSL), tidak dapat menerima koneksi TCP yang masuk.
Untuk alasan ini mode pasif diperkenalkan dan sebagian besar digunakan saat ini. Menggunakan mode pasif lebih disukai karena sebagian besar konfigurasi kompleks dilakukan hanya sekali di sisi server, oleh administrator berpengalaman, daripada secara individual di sisi klien, oleh (mungkin) pengguna yang tidak berpengalaman.
Dalam mode pasif , klien menggunakan koneksi kontrol untuk mengirim PASV
perintah ke server dan kemudian menerima alamat IP server dan nomor port server dari server, yang kemudian digunakan klien untuk membuka koneksi data ke alamat IP server dan server nomor port diterima.
Dengan mode pasif , sebagian besar beban konfigurasi ada di sisi server. Administrator server harus mengatur server seperti yang dijelaskan di bawah ini.
Firewall dan NAT di sisi server FTP harus dikonfigurasi tidak hanya untuk mengizinkan / merutekan koneksi yang masuk pada port FTP 21 tetapi juga berbagai port untuk koneksi data yang masuk. Biasanya, perangkat lunak server FTP memiliki opsi konfigurasi untuk mengatur berbagai port, server akan menggunakan. Dan rentang yang sama harus dibuka / diarahkan pada firewall / NAT.
Ketika server FTP berada di belakang NAT, ia perlu tahu itu alamat IP eksternal, sehingga dapat memberikannya kepada klien sebagai respons terhadap PASV
perintah.
Dengan mode aktif , sebagian besar beban konfigurasi ada di sisi klien.
Firewall (mis. Windows firewall) dan NAT (mis. Aturan perutean modem ADSL) pada sisi klien harus dikonfigurasi untuk mengizinkan / merutekan berbagai port untuk koneksi data yang masuk. Untuk membuka porta di Windows, buka Control Panel> System and Security> Windows Firewall> Pengaturan Lanjut> Aturan Masuk> Aturan Baru . Untuk merutekan port pada NAT (jika ada), lihat dokumentasinya.
Ketika ada NAT di jaringan Anda, klien FTP perlu mengetahui alamat IP eksternal yang perlu disediakan WinSCP ke server FTP menggunakan PORT
perintah. Sehingga server dapat terhubung dengan benar ke klien untuk membuka koneksi data. Beberapa klien FTP mampu mendeteksi alamat IP eksternal secara otomatis, beberapa harus dikonfigurasi secara manual.
Beberapa firewall / NAT mencoba membuka / menutup port data secara otomatis dengan memeriksa koneksi kontrol FTP dan / atau menerjemahkan alamat IP koneksi data dalam lalu lintas koneksi kontrol.
Dengan firewall / NAT seperti itu, konfigurasi di atas tidak diperlukan untuk FTP yang tidak terenkripsi. Tetapi ini tidak dapat bekerja dengan FTPS, karena lalu lintas koneksi kontrol dienkripsi dan firewall / NAT tidak dapat memeriksa atau memodifikasinya.
Mode aktif: -server menginisiasi koneksi.
Mode pasif: -client memulai koneksi.
Mode Aktif — Klien mengeluarkan perintah PORT ke server yang menandakan bahwa ia akan "secara aktif" memberikan IP dan nomor port untuk membuka Sambungan Data kembali ke klien.
Mode Pasif — Klien mengeluarkan perintah PASV untuk menunjukkan bahwa ia akan menunggu "secara pasif" agar server memberikan IP dan nomor port, setelah itu klien akan membuat Koneksi Data ke server.
Ada banyak jawaban bagus di atas, tetapi posting blog ini mencakup beberapa grafik bermanfaat dan memberikan penjelasan yang cukup solid: https://titanftp.com/2018/08/23/what-is-the-ddference-between-active-and -passive-ftp /