Bagaimana untuk mendayakan mod pasif. Contoh sambungan pasif. Dua mod pemindahan data dalam FTP

Mod FTP

Apabila bekerja menggunakan protokol FTP, dua sambungan diwujudkan antara klien dan pelayan - sambungan kawalan (perintah dihantar melaluinya) dan sambungan data (fail dipindahkan melaluinya). Sambungan kawalan adalah sama untuk mod Aktif dan Pasif. Pelanggan memulakan sambungan TCP dari port dinamik (1024-65535) ke port nombor 21 pada pelayan FTP dan berkata "Hai! Saya ingin menyambung kepada anda. Ini nama saya dan kata laluan saya." Tindakan selanjutnya bergantung pada mod FTP (Aktif atau Pasif) yang dipilih.

Dalam mod Aktif, apabila pelanggan berkata "Hello!" ia juga memberitahu pelayan nombor port (dari julat dinamik 1024-65535) supaya pelayan boleh menyambung kepada klien untuk mewujudkan sambungan data. Pelayan FTP menyambung ke nombor port klien yang ditentukan menggunakan nombor port TCP 20 untuk pemindahan data. Bagi pelanggan, sambungan sedemikian akan masuk, jadi bekerja dalam mod aktif dengan klien yang terletak di belakang tembok api atau NAT selalunya sukar atau memerlukan tetapan tambahan.

Dalam mod Pasif, selepas pelanggan berkata "Hello!", pelayan memberitahu pelanggan nombor port TCP (dari julat dinamik 1024-65535) yang boleh disambungkan untuk mewujudkan sambungan data. Dalam kes ini, seperti yang mudah dilihat, port dalam sambungan sedemikian, kedua-dua di sisi klien dan di sisi pelayan, ternyata sewenang-wenangnya. Dalam mod pasif, pelanggan boleh bekerja dengan pelayan dengan mudah melalui tembok apinya, tetapi selalunya agar pelayan menyokong mod pasif, tembok api mesti dikonfigurasikan dengan sewajarnya pada bahagian pelayan.

Perbezaan utama antara mod FTP Aktif dan mod FTP Pasif ialah bahagian yang membuka sambungan untuk pemindahan data. Dalam mod Aktif, pelanggan mesti boleh menerima sambungan ini daripada pelayan FTP. Dalam mod Pasif, pelanggan sentiasa memulakan sambungan ini sendiri, dan pelayan mesti menerimanya.

FTP ialah perkhidmatan berasaskan TCP (Transmission Control Protocol) semata-mata. FTP adalah luar biasa kerana ia menggunakan dua port, port "data" dan port "command" (juga dikenali sebagai port kawalan). Secara tradisinya ini adalah port 21 untuk arahan dan port 20 untuk data. Walau bagaimanapun, bergantung pada mod, port data tidak akan sentiasa 20.

DALAM mod aktif Klien FTP menyambung dari port tanpa hak yang sewenang-wenangnya (N > 1024) ke port arahan pelayan FTP 21. Kemudian, klien mula mendengar pada port N+1 dan menghantar arahan FTP PORT N+1 ke pelayan FTP. Sebagai tindak balas, pelayan menyambung ke port data klien yang ditentukan daripada port data tempatannya 20.

DALAM mod pasif Pelanggan FTP memulakan kedua-dua sambungan ke pelayan, menyelesaikan masalah dengan tembok api yang menapis port data masuk pelanggan. Apabila membuka sambungan FTP, pelanggan secara setempat membuka dua port yang tidak mempunyai keistimewaan (N > 1024 dan N+1). Port pertama menghubungi pelayan pada port 21, tetapi bukannya mengeluarkan arahan PORT dan membenarkan pelayan bertindak balas dengan menyambung ke port datanya, pelanggan mengeluarkan arahan PASV. Akibatnya, pelayan membuka port tanpa hak yang sewenang-wenangnya (P > 1024) dan menghantar arahan PORT P kepada klien. Kemudian, untuk memindahkan data, klien memulakan sambungan dari port N+1 ke port P pada pelayan.

FTP ialah perkhidmatan berasaskan TCP secara eksklusif. Tiada komponen UDP kepada FTP. FTP ialah perkhidmatan luar biasa kerana ia menggunakan dua port, port "data" dan port "command" (juga dikenali sebagai port kawalan). Secara tradisinya, ini adalah port 21 untuk port arahan dan port 20 untuk port data. Walau bagaimanapun, kekeliruan bermula, apabila kami mendapati bahawa bergantung pada mod, port data tidak sentiasa berada pada port 20.

FTP aktif

Dalam mod aktif FTP pelanggan menyambung dari port rawak tanpa hak istimewa (N > 1023) ke port arahan pelayan FTP, port 21. Kemudian, pelanggan mula mendengar port N+1 dan menghantar arahan FTP PORT N+1 ke pelayan FTP. Pelayan kemudiannya akan menyambung kembali ke port data yang ditentukan klien daripada port data setempatnya, iaitu port 20.

Dari sudut pandangan firewall sebelah pelayan, untuk menyokong mod aktif FTP, saluran komunikasi berikut perlu dibuka:

Port 21 pelayan FTP ke port >
Port 20 pelayan FTP ke port > 1023 (Pelayan memulakan sambungan data ke port data pelanggan)
Port pelayan FTP 20 dari port > 1023 (Pelanggan menghantar ACK ke port data pelayan)

Dalam langkah 1, port arahan klien menghubungi port arahan pelayan dan menghantar arahan PORT 1027. Pelayan kemudian menghantar ACK kembali ke port arahan klien dalam langkah 2. Dalam langkah 3 pelayan memulakan sambungan pada port data setempatnya ke port data yang ditentukan oleh klien sebelum ini. Akhirnya, klien menghantar kembali ACK seperti yang ditunjukkan dalam langkah 4.

Masalah utama dengan mod aktif FTP sebenarnya terletak pada bahagian pelanggan. Pelanggan FTP tidak membuat sambungan sebenar ke port data pelayan--ia hanya memberitahu pelayan port yang didengarinya dan pelayan menyambung kembali ke port yang ditentukan pada klien. Dari firewall sisi klien ini muncul menjadi sistem luar yang memulakan sambungan kepada klien dalaman--sesuatu yang biasanya disekat.

FTP pasif

Untuk menyelesaikan isu pelayan yang memulakan sambungan kepada klien kaedah yang berbeza untuk sambungan FTP telah dibangunkan. Ini dikenali sebagai mod pasif, atau PASV, selepas arahan yang digunakan oleh klien untuk memberitahu pelayan ia berada dalam mod pasif.

Dalam mod pasif FTP klien memulakan kedua-dua sambungan ke pelayan, menyelesaikan masalah firewall menapis sambungan port data masuk ke klien daripada pelayan. Apabila membuka sambungan FTP, klien membuka dua port rawak yang tidak mempunyai keistimewaan secara setempat (N > 1023 dan N+1). Port pertama menghubungi pelayan pada port 21, tetapi bukannya mengeluarkan arahan PORT dan membenarkan pelayan menyambung semula ke port datanya, pelanggan akan mengeluarkan arahan PASV. Hasilnya ialah pelayan kemudiannya membuka port rawak yang tidak mempunyai keistimewaan (P > 1023) dan menghantar arahan PORT P kembali kepada klien. Pelanggan kemudiannya memulakan sambungan dari port N+1 ke port P pada pelayan untuk memindahkan data.

Dari sudut pandangan firewall sebelah pelayan, untuk menyokong mod pasif FTP, saluran komunikasi berikut perlu dibuka:
Port 21 pelayan FTP dari mana-mana sahaja (Pelanggan memulakan sambungan)
Port pelayan FTP 21 ke port > 1023 (Pelayan bertindak balas kepada port kawalan klien)
Port pelayan FTP > 1023 dari mana-mana sahaja (Pelanggan memulakan sambungan data ke port rawak yang ditentukan oleh pelayan)
Port pelayan FTP > 1023 ke port jauh > 1023 (Pelayan menghantar ACK (dan data) ke port data pelanggan)

Carta berikut harus membantu pentadbir mengingati cara setiap mod FTP berfungsi:
FTP aktif:
arahan: klien >1023 -> pelayan 21
data: klien >1023<- server 20

FTP pasif:
arahan: klien >1023 -> pelayan 21
data: klien >1023 -> pelayan >1023

Ringkasan ringkas kebaikan dan keburukan aktif vs. FTP pasif juga mengikut urutan:

FTP aktif memberi manfaat kepada pentadbir pelayan FTP, tetapi memudaratkan pentadbir bahagian klien. Pelayan FTP cuba membuat sambungan ke port tinggi rawak pada klien, yang hampir pasti akan disekat oleh tembok api di sisi klien. FTP pasif memberi manfaat kepada pelanggan, tetapi memudaratkan pentadbir pelayan FTP. Pelanggan akan membuat kedua-dua sambungan ke pelayan, tetapi salah satu daripadanya adalah ke port tinggi rawak, yang hampir pasti akan disekat oleh tembok api di bahagian pelayan.

Nasib baik, ada sedikit kompromi. Memandangkan pentadbir yang menjalankan pelayan FTP perlu menjadikan pelayan mereka boleh diakses oleh bilangan pelanggan yang paling ramai, mereka hampir pasti perlu menyokong FTP pasif. Pendedahan port tahap tinggi pada pelayan boleh diminimumkan dengan menentukan julat port terhad untuk digunakan oleh pelayan FTP. Oleh itu, segala-galanya kecuali untuk julat port ini boleh dipasang firewall di bahagian pelayan. Walaupun ini tidak menghapuskan semua risiko kepada pelayan, ia mengurangkannya dengan hebat.

Protokol FTP telah digunakan untuk masa yang lama dan pada pandangan pertama adalah sangat mudah. Walau bagaimanapun, kesederhanaan ini jelas dan ramai mula mengalami masalah dengan mewujudkan sambungan FTP, terutamanya apabila pelayan atau klien berada di belakang tembok api atau NAT. Oleh itu, hari ini kita akan bercakap tentang ciri-ciri protokol FTP dalam pelbagai mod.

Protokol FTP ialah protokol rangkaian tertua (dicipta pada tahun 1971), tetapi masih digunakan secara meluas hingga ke hari ini. Ciri penting protokol ialah ia menggunakan beberapa sambungan: satu untuk arahan kawalan, selebihnya untuk data. Selain itu, beberapa sambungan untuk pemindahan data boleh dibuka, di mana setiap fail boleh dipindahkan ke kedua-dua arah. Ia adalah dengan ciri ini bahawa beberapa masalah dikaitkan.

Bergantung pada kaedah mewujudkan sambungan untuk pemindahan data, mod operasi FTP aktif dan pasif dibezakan. Dalam mod aktif, pelayan itu sendiri mewujudkan sambungan data kepada klien, dalam mod pasif, begitu juga sebaliknya. Mari lihat mod ini dengan lebih terperinci.

Mod aktif

Dalam kebanyakan kes, untuk operasi biasa pelayan FTP di belakang NAT, ia akan mencukupi untuk memajukan 21 port untuk sesi kawalan, 20 untuk mod aktif (jika digunakan), serta menentukan dan memajukan julat port dinamik untuk data pemindahan.

Satu lagi perkara penting: jika anda memajukan port untuk beberapa pelayan FTP, maka pada setiap daripada mereka anda harus menentukan julat port dinamiknya sendiri dan memajukan ke nombor port antara muka luaran yang sama. kenapa? Oleh kerana nombor port dihantar oleh pelayan dalam arahan kawalan dan tidak tahu apa-apa tentang pemajuan, jika nombor port yang dihantar oleh pelayan tidak sepadan dengan nombor port pada antara muka luaran, maka pelanggan tidak akan dapat mewujudkan sambungan. Manakala port kawalan dan port mod aktif boleh dimajukan ke mana-mana port luaran.

Kami berharap artikel ini akan membantu anda lebih memahami mekanisme protokol FTP dan secara sedar mendekati proses konfigurasi dan diagnostik.

Bahagian ini akan menyemak secara ringkas sejarah dan butiran teknikal yang mengelilingi protokol FTP. Lihat spesifikasi untuk butiran.

Maklumat sejarah

Berlatarbelakangkan Internet yang pesat membangun, protokol FTP kelihatan bukan sahaja lama, tetapi benar-benar kuno. Spesifikasi protokol draf awal bermula pada tahun 1971, dan spesifikasi semasa bermula pada tahun 1985. Sepanjang dua dekad yang lalu, protokol tidak berubah pada terasnya.

Pada zaman itu, Internet digunakan terutamanya oleh universiti dan pusat penyelidikan. Komuniti pengguna adalah kecil, kebanyakan mereka mengenali satu sama lain dan semua orang bekerja bersama-sama. Internet adalah rangkaian mesra dan tidak ada isu keselamatan seperti itu.

Hari-hari itu telah berlalu dan banyak yang telah berubah. Kemajuan teknologi telah berkembang lebih pantas daripada yang dibayangkan oleh sesiapa sahaja, manakala pengguna generasi baharu telah meningkat dewasa. Internet kini menjadi fenomena di mana-mana, membolehkan berjuta-juta orang berkomunikasi antara satu sama lain dalam pelbagai cara. Perubahan ketara utama: Internet telah menjadi bermusuhan. Kebolehcapaian dan keterbukaan rangkaian telah menarik pengguna berniat jahat yang secara aktif mengeksploitasi kesilapan dan pengalaman orang lain.

Kesan sampingan daripada perkembangan peristiwa ini ialah fenomena berikut:

  • penghala NAT. Kebanyakan rangkaian menggunakan IPv4, yang mempunyai ruang alamat terhad (IPv6 direka untuk menyelesaikan masalah ini). Penghala NAT membenarkan sistem dengan banyak peranti berkongsi alamat IP yang sama.
  • Firewall peribadi untuk melindungi pengguna daripada kecacatan dalam sistem pengendalian dan aplikasi.

Dalam kebanyakan kes, fenomena ini bercanggah dengan operasi protokol. Keadaan ini diburukkan oleh kekurangan dalam penghala dan tembok api itu sendiri.

Walau bagaimanapun, apabila dikonfigurasikan dengan betul, FTP menawarkan kaedah yang boleh dipercayai dan terbukti untuk memindahkan fail.

Butiran teknikal

Perbezaan utama antara FTP dan protokol lain ialah penggunaan sambungan sekunder untuk pemindahan fail. Apabila menyambung ke pelayan FTP, apa yang dipanggil. sambungan kawalan, yang melaluinya arahan protokol dan tindak balas kepada arahan ini dihantar. Untuk memindahkan fail atau penyenaraian direktori, pelanggan mesti menghantar arahan melalui sambungan kawalan, selepas itu a sambungan data.

Terdapat dua cara untuk membuat sambungan ini: mod aktif dan pasif.

Dalam mod pasif, iaitu mod yang disyorkan, pelanggan menghantar arahan PASV kepada pelayan, yang mana pelayan bertindak balas dengan alamat. Pelanggan kemudiannya menghantar arahan untuk memindahkan fail atau penyenaraian direktori dan mencipta sambungan sekunder pada alamat yang diterima daripada pelayan.

Dalam mod aktif, pelanggan membuka soket pada peranti tempatan dan menghantar alamat soket ke pelayan menggunakan arahan PORT. Selepas menghantar pemindahan fail atau arahan penyenaraian, pelayan mencipta sambungan ke alamat yang ditentukan yang telah ditentukan oleh klien.

Dalam kedua-dua kes, fail/penyenaraian akan dipindahkan melalui sambungan data.

Mencipta sambungan keluar memerlukan penetapan parameter yang lebih sedikit untuk penghala/tembok api daripada membuat sambungan masuk. Dalam mod pasif, sambungan keluar dari klien dan masuk ke pelayan. Dalam mod aktif, klien dan pelayan bertukar peranan - sambungan masuk untuk klien dan sambungan keluar untuk pelayan.

Sila ambil perhatian bahawa perbezaan hanya dalam susunan sambungan, selepas membuat sambungan data, data boleh sama ada dimuat turun atau dimuat naik.

Konfigurasi rangkaian biasa mungkin kelihatan seperti ini:

Oleh itu, dalam mod pasif, penghala dan tembok api bahagian pelayan mesti dikonfigurasikan untuk menerima dan memajukan sambungan masuk. Sebaliknya, pada bahagian pelayan hanya sambungan keluar harus dibenarkan, dan dalam kebanyakan kes sambungan keluar dibenarkan.

Begitu juga, dalam mod aktif, penghala dan tembok api pada bahagian klien mesti dikonfigurasikan untuk menerima dan memajukan sambungan masuk. Jelas sekali, pada bahagian pelayan, hanya sambungan keluar harus dibenarkan.

Kerana pelayan biasanya melayani ramai pelanggan, lebih mudah untuk mengkonfigurasi penghala dan tembok api sebelah pelayan sekali untuk mod pasif daripada mengkonfigurasi penghala/firewall klien untuk setiap klien dalam mod aktif. Inilah sebabnya mengapa mod pasif disyorkan.

penghala NAT

Kebanyakan pengguna jalur lebar mempunyai penghala NAT yang terletak di antara komputer mereka dan rangkaian. Ini boleh menjadi peranti yang berdiri sendiri (mungkin penghala wayarles), atau penghala terbina dalam dalam DSL atau modem kabel. Dalam persekitaran NAT, semua peranti di belakang penghala adalah rangkaian tempatan(LAN), setiap peranti pada rangkaian mempunyai alamat IP tempatan (empat nombor kecil dipisahkan oleh titik). Penghala NAT pula mempunyai alamat IP tempatannya sendiri, serta alamat IP luaran untuk pengenalan pada rangkaian global. Alamat tempatan hanya sah dalam LAN; ia tidak mempunyai makna untuk peranti jauh. Contoh:

Mari kita anggap bahawa pelayan berada di belakang penghala NAT. Mari kita simulasi situasi di mana pelanggan menyambung dalam mod pasif, tetapi pelayan tidak disediakan dengan alamat IP luaran penghala. Dalam kes ini, pelayan menghantar alamat setempatnya kepada pelanggan, selepas itu dua perkara boleh berlaku:

  • Jika pelanggan tidak terletak di dalam NAT, sambungan akan terputus kerana Alamat pelayan tidak sah.
  • Jika klien terletak di dalam NAT, alamat pelayan mungkin sepadan dengan alamat peranti pada rangkaian klien sendiri.

Jelas sekali, dalam kedua-dua kes mod pasif tidak akan berfungsi.

Oleh itu, jika pelayan berada di belakang penghala NAT, ia mesti diberikan alamat IP penghala untuk mod pasif beroperasi. Dalam kedua-dua kes, pelayan menghantar alamat luaran penghala kepada pelanggan. Pelanggan membuat sambungan dengan penghala, yang seterusnya menghantar sambungan ke pelayan.

Tembok api

Tujuan tembok api peribadi adalah untuk melindungi pengguna daripada kelemahan keselamatan dalam sistem pengendalian atau aplikasi yang digunakan. Aplikasi berniat jahat, seperti cacing, sering menggunakan kelemahan ini untuk menjangkiti sistem anda melalui rangkaian. Firewall membantu mengelakkan kes sedemikian.

Terutama apabila menggunakan FTP, pengguna firewall mungkin menerima mesej seperti ini:

Trojan Netbus disekat pada port 12345, yang digunakan oleh proses FileZilla.exe

Dalam hampir semua kes, mesej ini adalah penggera palsu. Sebarang aplikasi boleh memilih mana-mana port untuk komunikasi melalui Internet. Ia mungkin berlaku bahawa FileZilla memilih port yang kebetulan menjadi port lalai untuk Trojan atau program berniat jahat yang lain. Pengedaran FileZilla yang dimuat turun dari laman web rasmi tidak mengandungi virus.

Penghala pintar, tembok api dan sabotaj data

Sesetengah penghala atau tembok api agak pintar. Mereka menganalisis sambungan dan, apabila sambungan FTP dikesan, secara senyap menggantikan data yang dihantar antara klien dan pelayan. Tingkah laku ini adalah sabotaj data dan boleh menyebabkan masalah jika pengguna tidak membenarkan tingkah laku ini secara eksplisit.

Mari kita beri contoh. Mari kita anggap bahawa pelanggan berada di belakang penghala NAT dan cuba menyambung ke pelayan. Mari kita anggap juga bahawa pelanggan tidak menyedari bahawa ia berada di belakang NAT dan menggunakan mod aktif. Pelanggan menghantar arahan PORT dengan alamat IP tempatan yang tidak boleh dihalakan ke pelayan:

PELABUHAN 10,0,0,1,12,34

Perintah ini memberitahu pelayan untuk menyambung ke alamat 10.0.0.1 pada port 12*256+34 = 3106

Selepas ini, penghala NAT secara senyap menggantikan arahan, termasuk alamat IP luaran, dan juga mencipta port sementara untuk memajukan sesi FTP, mungkin juga pada port yang berbeza:

PELABUHAN 123,123,123,123,24,55

Perintah ini memberitahu pelayan untuk menyambung ke 123.123.123.123 pada port 24*256+55 = 6199

Tingkah laku ini membolehkan penghala NAT membenarkan klien yang dikonfigurasikan secara salah untuk menggunakan mod aktif.

Mengapa kelakuan ini tidak boleh diterima? Jika ciri ini digunakan secara lalai, tanpa persetujuan pengguna, banyak masalah timbul daripada ini. Sambungan FTP pada asasnya akan berfungsi, tetapi apabila kes penggunaan remeh telah habis, pemindahan akan gagal, meninggalkan sedikit cara untuk mendiagnosis masalah.

  • Penghala NAT secara membuta tuli menganggap bahawa sesetengah sambungan tergolong dalam FTP berdasarkan data seperti port sasaran atau respons pelayan:
    • Tiada jaminan mengenai protokol yang digunakan, walaupun pengesanan automatik (kes sedemikian dipanggil penggera palsu). Walaupun tidak mungkin, sintaks arahan PORT mungkin berubah dalam versi masa depan protokol FTP. Penghala NAT, dengan mengubah suai arahan PORT, menukar parameter yang tidak disokongnya tanpa pengetahuan pengguna, yang akan menyebabkan sambungan terputus.
    • Takrifan protokol penghala mungkin tidak mengenali FTP. Mari kita anggap bahawa penghala hanya memantau port sasaran, dan jika port ini ialah 21, ia akan diiktiraf sebagai FTP. Sambungan mod aktif daripada klien yang tidak dikonfigurasikan dengan betul ke pelayan pada port 21 akan berfungsi, tetapi sambungan ke pelayan lain pada port bukan standard tidak akan berfungsi.
  • Jelas sekali, penghala NAT tidak akan dapat mengubah suai sambungan jika sesi FTP disulitkan, menyebabkan pengguna mengalami kerugian, kerana... Hanya sambungan yang tidak disulitkan akan berfungsi.
  • Mari kita anggap bahawa pelanggan di belakang penghala NAT menghantar "PORT 10,0,0,1,12,34". Bagaimanakah penghala NAT mengetahui bahawa klien dikonfigurasikan secara salah? Pelanggan yang dikonfigurasikan dengan betul juga mungkin untuk memulakan pemindahan FXP (pelayan-ke-pelayan) antara pelayan yang ia disambungkan dan peranti yang terletak pada rangkaian tempatan pelayan.

Seperti yang dapat kita lihat, ciri khusus protokol yang didayakan secara lalai pada penghala NAT boleh menyebabkan banyak masalah. Penghala NAT yang baik sentiasa dan sepenuhnya berfungsi dengan protokol tanpa maklumat tentang protokol itu sendiri. Pengecualian mungkin berlaku apabila pengguna telah menggunakan ciri ini secara eksplisit dan menyedari semua kemungkinan akibat.

Dalam subseksyen ini kita melihat gabungan penghala NAT pada bahagian klien dalam mod aktif, alasan yang sama digunakan dalam kes pelayan di belakang NAT dan respons kepada arahan PASV.

Menyediakan klien FileZilla

Jelas sekali, untuk menyambung ke mana-mana pelayan, tembok api anda mesti membenarkan FileZilla melakukan ini. Kebanyakan pelayan FTP biasa menggunakan port 21, pelayan SFTP menggunakan port 22, dan FTP melalui SSL/TLS (mod tersirat) lalai kepada port 990. Nombor port tidak berkod keras, jadi lebih baik membenarkan sambungan keluar pada mana-mana port.

Kerana Terdapat banyak pelayan yang dikonfigurasikan secara salah di Internet, atau pelayan yang tidak menyokong kedua-dua mod penghantaran; anda disyorkan untuk mempunyai kedua-dua mod penghantaran di sebelah anda.

Mod pasif

Pelanggan tidak boleh memberitahu pelayan untuk memilih port untuk menghantar data dalam mod pasif, jadi untuk menggunakan mod pasif anda perlu membenarkan sambungan keluar pada mana-mana port pada komputer anda.

Mod aktif

Dalam mod aktif, pelanggan membuka soket dan menunggu sambungan daripada pelayan untuk dihantar.

Secara lalai, klien FileZilla meminta sistem pengendalian untuk alamat IP dan nombor port percuma. Konfigurasi ini hanya akan berfungsi jika terdapat sambungan terus ke Internet tanpa penghala NAT, dan tembok api anda juga mesti membenarkan penciptaan sambungan pada semua port di atas 1024.

Jika anda mempunyai penghala NAT, anda perlu memberitahu FileZilla alamat IP luaran, jika tidak sambungan mod aktif tidak akan berfungsi untuk pelayan di luar rangkaian tempatan anda:

  • Alamat IP statik boleh ditentukan dalam dialog tetapan FileZilla.
  • Jika alamat IP anda dinamik, anda mempunyai pilihan untuk membenarkan FileZilla mendapatkan alamat IP luaran daripada tapak khas secara automatik setiap kali anda melancarkannya. Tiada maklumat akan dipindahkan daripada anda ke tapak ini selain daripada versi klien FileZilla yang anda gunakan.

Jika anda tidak mahu membenarkan sambungan masuk pada semua port, atau komputer anda terletak di belakang penghala NAT, beritahu FileZilla untuk menggunakan julat port tertentu untuk sambungan dalam mod aktif. Julat ini juga perlu dibuka ke dinding api anda. Jika anda mempunyai penghala NAT, anda perlu memajukan port ini ke komputer tempatan di mana FileZilla dipasang. Anda boleh memindahkan julat port, atau setiap port secara individu, ia bergantung pada model penghala anda.

TCP

Menyediakan dan menguji pelayan FileZilla

Menyediakan pelayan untuk sebahagian besar mengulangi menyediakan pelanggan; perbezaan utama ialah dalam kes pelayan, mod aktif dan pasif menukar peranan.

Adalah penting untuk ambil perhatian bahawa menyemak operasi pelayan dalam kebanyakan kes berlaku dengan cara yang salah; pemilik penghala NAT sering melakukan kesilapan ini. Semasa berada di dalam rangkaian tempatan, anda akan dapat menguji pelayan hanya menggunakan alamat IP tempatan. Menggunakan alamat luaran dalam rangkaian tempatan tidak akan berfungsi dalam kebanyakan kes atas salah satu sebab berikut:

  • Penghala akan menyekat akses kepada alamat luarannya dari dalam rangkaian tempatan sebagai kemungkinan serangan
  • Penghala akan memajukan sambungan ke ISP anda, yang akan menyekatnya sebagai kemungkinan serangan.

Walaupun anda dapat menyambung, anda tidak mempunyai jaminan bahawa pengguna dari rangkaian luaran akan dapat berbuat demikian dan, sebagai tambahan, memuat naik fail ke pelayan anda. Satu-satunya cara yang boleh dipercayai untuk menyemak operasi pelayan adalah untuk menyambung dari luar rangkaian tempatan anda.

Mod aktif

Pastikan pelayan FileZilla dibenarkan membuat sambungan keluar pada mana-mana port, kerana dalam mod ini, pelanggan menentukan port untuk disambungkan.

Pada bahagian tempatan sambungan, pelayan FileZilla cuba menggunakan nilai port yang lebih rendah daripada port untuk sambungan kawalan (contohnya, port 20 jika pelayan menerima sambungan pada port 21). Walau bagaimanapun, ini tidak selalu mungkin, jadi anda tidak harus sentiasa bergantung pada ciri ini.

Mod pasif

Menyediakan pelayan dalam kes ini praktikal mengulangi menyediakan klien dalam mod aktif.

Dalam mod pasif, pelayan membuka soket dan menunggu sambungan daripada klien.

Secara lalai, pelayan FileZilla meminta sistem pengendalian untuk alamat IP komputer dan port percuma. Konfigurasi ini hanya berfungsi jika komputer disambungkan terus ke Internet tanpa penghala NAT dan tembok api ditetapkan untuk membenarkan sambungan masuk pada semua port di atas 1024.

Jika anda mempunyai penghala NAT, anda perlu memberitahu pelayan FileZilla alamat IP luaran anda, jika tidak, sambungan mod pasif hanya akan berfungsi dalam rangkaian tempatan:

  • Alamat IP statik boleh ditentukan dalam dialog tetapan pelayan FileZilla.
  • Jika alamat IP anda dinamik, anda mempunyai pilihan untuk membenarkan pelayan FileZilla mendapatkan alamat IP luaran pada tapak khas secara automatik setiap kali ia bermula. Tiada maklumat akan dipindahkan daripada anda ke tapak ini selain daripada versi pelayan FileZilla yang digunakan.

Jika anda tidak pasti dengan pilihan anda, gunakan pilihan kedua.

Jika anda tidak mahu membenarkan sambungan masuk pada semua port, atau komputer anda terletak di belakang penghala NAT, beritahu pelayan FileZilla untuk menggunakan julat port tertentu untuk sambungan dalam mod aktif. Julat ini juga perlu dibuka ke dinding api anda. Jika anda mempunyai penghala NAT, anda perlu memajukan port ini ke komputer tempatan yang mana pelayan FileZilla dipasang. Anda boleh memindahkan julat port, atau setiap port secara individu, ia bergantung pada model penghala anda.

Port yang tersedia berjulat dari 1 hingga 65535, port di bawah 1024 dikhaskan untuk protokol lain. Untuk mod FTP aktif, pilihan terbaik ialah nombor port sama dengan atau lebih tinggi daripada 50000. Disebabkan reka bentuk protokol TCP (protokol yang berada di bawah lapisan FTP dan digunakan untuk pemindahan data), port tidak boleh digunakan semula dengan serta-merta selepas setiap sambungan. Oleh itu, julat port tidak boleh terlalu sempit, jika tidak, anda tidak akan dapat memindahkan banyak fail kecil. Dalam kebanyakan kes, julat 50 port adalah mencukupi.

Penyelesaian masalah

Malangnya, banyak tembok api peribadi dan penghala tersuai mempunyai kelemahan mereka sendiri atau, dalam beberapa kes, malah mampu mensabotaj FTP (contohnya, SMC Barricade v1.2).

Pertama sekali, gunakan versi perisian terbaharu yang stabil, termasuk firewall dan perisian tegar penghala.

Jika ini tidak membantu, anda mempunyai pilihan untuk mencuba padam firewall anda untuk menganalisis keadaan. Hanya melumpuhkan tembok api tidak selalu membantu, kerana... Sesetengah tembok api tidak boleh dilumpuhkan sepenuhnya.

Jika boleh, cuba sambungkan ke Internet secara terus tanpa penghala.

Jika anda cuba menyediakan pelayan dan ia berfungsi dengan baik di dalam rangkaian tempatan anda, tetapi tidak boleh diakses di luarnya, cuba tukar port sambungan. Sesetengah pembekal tidak membenarkan pelanggan mereka mengehoskan pelayan dan menyekat port di bawah 1024.

Isu lain yang mungkin ialah pelayan FTP anda menggunakan port lalai 21. Mungkin terdapat tembok api di sisi ISP anda yang mungkin menukar port untuk arahan PASV secara tidak dijangka. Cuba gunakan port yang berbeza daripada port lalai untuk pelayan FTP anda.

Jika dari semasa ke semasa anda melihat mesej "tidak boleh membuka sambungan data", i.e. Pelanggan FTP dapat dengan mudah menyambung ke pelayan FTP beberapa kali sehingga anda menerima mesej ini, halangan yang mungkin boleh menjadi antivirus pada PC klien, dikonfigurasikan untuk menyekat sambungan keluar pada julat port tertentu. Apabila pelayan berjalan dalam mod pasif, port keluar klien ditentukan secara rawak, dan jika anda memilih port yang berada dalam julat yang disekat, anda akan menerima mesej ralat. Untuk diagnosis yang tepat, anda harus melihat log antivirus pada mesin pelanggan yang menerima ralat ini. Secara umum, sebarang perisian yang boleh menyekat julat port keluar boleh menyebabkan jenis masalah ini.

Tamat masa apabila memindahkan fail besar

Jika pemindahan fail kecil berlaku tanpa masalah, tetapi muat turun fail besar ditamatkan dengan tamat masa, sebab untuk ini adalah penghala dan/atau tembok api yang dikonfigurasikan dengan salah yang terletak di antara klien dan pelayan.

Seperti yang dinyatakan di atas, FTP menggunakan dua sambungan TCP: sambungan kawalan untuk menghantar arahan dan menerima respons kepada arahan, dan sambungan data. Disebabkan oleh prinsip operasi FTP, sambungan kawalan tidak digunakan semasa pemindahan fail.

Spesifikasi TCP tidak menyatakan had masa untuk menyimpan sambungan melahu. Sambungan dijangka berterusan selama-lamanya sehingga ia ditutup secara eksplisit. Walau bagaimanapun, kebanyakan penghala dan tembok api menutup sambungan terbiar secara automatik selepas satu tempoh masa. Selain itu, dalam kebanyakan kes, sambungan ditamatkan tanpa memberitahu pesertanya. Dalam kes pemindahan data berterusan melalui FTP, ini bermakna sambungan kawalan mungkin terputus, tetapi pelanggan mahupun pelayan tidak akan dimaklumkan tentang perkara ini. Oleh itu, selepas semua data telah dipindahkan, pelayan masih mengharapkan sambungan kawalan boleh digunakan dan menghantar pengesahan pemindahan kepada pelanggan melaluinya. Begitu juga, pelanggan bersedia untuk menggunakan sambungan kawalan dan sedang menunggu respons daripada pelayan. Tapi sebab sambungan kawalan telah ditutup, respons ini tidak akan dihantar sekali-kali, mengakibatkan tamat masa.

Untuk menyelesaikan masalah ini, spesifikasi TCP menyediakan cara untuk menghantar paket untuk mengekalkan sambungan yang tidak digunakan, memaklumkan peserta bahawa sambungan harus disimpan untuk kegunaan masa hadapan. Walau bagaimanapun, spesifikasi TCP secara jelas menyatakan bahawa paket tersebut boleh dihantar tidak lebih daripada sekali setiap dua jam. Untuk melakukan ini, dengan mengambil kira kelewatan rangkaian, jangka hayat sambungan yang tidak digunakan ditetapkan oleh spesifikasi pada 2 jam dan 4 minit.

Halangan untuk ini ialah banyak penghala dan tembok api memutuskan sambungan yang tidak digunakan kurang daripada 2 dan 4 minit. Tingkah laku ini melanggar spesifikasi protokol TCP; RFC 5382 menyatakan ini dengan jelas. Dengan kata lain, penghala dan tembok api yang menamatkan sambungan sebelum masa yang diperlukan tidak boleh dianggap berfungsi, kerana ia tidak boleh digunakan untuk pemindahan data jangka panjang melalui FTP. Malangnya, pengeluar penghala pengguna dan vendor tembok api tidak mengambil berat tentang memenuhi spesifikasi.

Untuk menyelesaikan masalah ini, anda perlu mengalih keluar tembok api tersebut dan menggantikan penghala yang tidak berfungsi dengan yang berkualiti tinggi.

Menyediakan pelayan FileZilla di bawah Windows Firewall

Jika anda mengalami masalah menyediakan pelayan FileZilla semasa Windows Firewall sedang berjalan (terutamanya jika pelanggan yang menyambung ke pelayan sedemikian menerima mesej ralat "Tidak dapat mendapatkan penyenaraian direktori"), anda perlu menambah pelayan FileZilla ke senarai pengecualian Windows Firewall . Untuk melakukan ini, anda perlu melakukan langkah berikut:

  • Buka Windows Firewall dari Panel Kawalan
  • Jika anda menggunakan Vista, klik "Tukar Tetapan"
  • Pilih tab "Pengecualian".
  • Klik "Tambah program.."
  • JANGAN pilih "Antara Muka Pelayan FileZilla" daripada senarai, anda perlu klik pada "Lihat..."
  • Cari direktori pemasangan pelayan FileZilla (biasanya "C:\Program Files\FileZilla Server\")
  • Pilih "FileZilla server.exe" dan klik buka (sekali lagi, JANGAN PILIH "FileZilla Server Interface.exe")
  • Pilih "FileZilla server.exe" daripada senarai dan klik "Ok"
  • Pastikan "FileZilla server.exe" berada dalam senarai pengecualian dan tandai kotak yang sesuai
  • Klik "Ok" untuk menutup tetingkap

Ini memastikan mod pasif berfungsi. Jika selepas ini anda masih mengalami masalah sambungan (di dalam atau di luar rangkaian), semak tetapan penghala anda atau cuba tambahkan nombor port dalam tetapan Windows Firewall dalam tab "Pengecualian".

Rujuk artikel Microsoft 931130 KB yang menerangkan cara FileZilla berfungsi dengan Penghalaan dan Akses Jauh atau Gerbang Tahap Aplikasi didayakan.

Protokol Pemindahan Fail, pertama kali diseragamkan pada awal 1970-an, ialah protokol lapisan aplikasi yang menggunakan protokol pengangkutan TCP untuk memindahkan data. FTP dibangunkan pada masa pelanggan dan pelayan berkomunikasi secara langsung antara satu sama lain, tanpa perantara dan dengan halangan minimum.

Masalah FTP dalam rangkaian moden

Pada rangkaian moden (NAT, tembok api, pengimbang beban), ciri FTP berikut tidak membenarkannya berfungsi dengan betul:

  1. Dua sambungan TCP/IP berasingan: untuk penghantaran data dan untuk penghantaran arahan;
  2. Sambungan data boleh diwujudkan pada nombor port rawak;
  3. Sambungan data boleh datang dari sama ada pelayan ke klien atau dari klien ke pelayan;
  4. Alamat destinasi sambungan data (pemilihan mod operasi) dirundingkan dengan cepat antara klien dan pelayan melalui sambungan arahan;
  5. Sambungan arahan melahu semasa data dipindahkan melalui sambungan data.

Masalah 1 disebabkan oleh fakta bahawa peranti penghalaan atau pengimbang mesti mengekalkan dua sambungan antara sumber dan destinasi yang sama.

Masalah 2 disebabkan oleh fakta bahawa FTP tidak boleh berfungsi jika port masuk terhad kepada hanya yang pasti diketahui. Itu. Dalam mod biasa, FTP tidak boleh berfungsi hanya dengan 21 port masuk terbuka yang digunakan oleh sambungan untuk menghantar arahan, ia juga memerlukan satu set port nilai tinggi terbuka (49152-65534) untuk memindahkan data.

Masalah 4 disebabkan oleh fakta bahawa apabila menggunakan NAT, ia perlu menukar kandungan paket sambungan dengan cepat untuk menghantar arahan supaya alamat dalaman pelayan digantikan dengan yang luar, dan juga mengalihkan paket yang tiba di luar. alamat ke alamat dalaman pelayan.

Masalah 5 disebabkan oleh fakta bahawa peranti penghalaan boleh menamatkan sambungan yang tersekat untuk menghantar arahan.

Dua mod pemindahan data dalam FTP

FTP menyokong dua mod operasi: aktif dan pasif. Mereka berbeza dalam mekanisme untuk mewujudkan sambungan untuk pemindahan data:

  • Dalam mod aktif, pelayan menyambung dari port ke-20 ke port klien yang ditentukan.
  • Dalam mod pasif, pelanggan menyambung dari port rawaknya ke port pelayan yang ditentukan.

Oleh itu, semua pelanggan FTP moden berunding dengan pelayan dari mana data sedang dipindahkan dan siapa yang memulakan sambungan. Pelanggan boleh menentukan penggunaan mod aktif dengan menghantar arahan "PORT", yang akan memberitahu pelayan untuk menyambung ke IP klien dan port tertentu dan mula menghantar data. Atau pelanggan boleh gunakan mod pasif dengan menghantar arahan “PASV” kepada pelayan, yang akan memberitahu pelayan bahawa klien sedang menunggu IP dan port pelayan untuk mula menerima data.

Memandangkan klien pada mulanya menyambung ke pelayan untuk mewujudkan sambungan untuk menghantar arahan, adalah logik jika klien juga mewujudkan sambungan data, i.e. sedang menghantar arahan PASV (sambil membetulkan masalah antara FTP dan tembok api). Walau bagaimanapun, ini tidak berlaku; atas sebab tertentu pencipta spesifikasi FTP memutuskan bahawa mod pilihan haruslah PORT, dan sokongan PASV pada bahagian klien tidak diperlukan.

FTP menyokong akses log masuk dan kata laluan, tetapi ia tidak selamat kerana... ia dihantar dalam teks yang jelas. Apabila menggunakan pelayar web, anda boleh menghantarnya terus ke URL.

Ftp:// :@:/

Contoh sesi menggunakan mod pemindahan data aktif dan pasif

Contoh mod aktif, di mana pelanggan menyambung tanpa nama dan membuat satu pemindahan data aktif (menyemak imbas direktori).

Pelanggan: PENGGUNA tanpa nama
Pelayan:
Pelanggan: LULUS NcFTP@
Pelayan: 230 Log masuk tanpa nama.
Pelanggan: PELABUHAN 192,168,1,2,7,138 Pelanggan mahu pelayan menyambung ke port 1930 dan alamat IP 192.168.1.2.
Pelayan: 200 arahan PORT berjaya.
Pelanggan: SENARAI
Pelayan: 150 Membuka sambungan data mod ASCII untuk /bin/ls. Pelayan menyambung dari port 21 ke port 1930 dan alamat IP 192.168.1.2.
Pelayan: 226 Penyenaraian selesai. Data berjaya dipindahkan.
Pelanggan: BERHENTI
Pelayan: 221 Selamat tinggal.

Contoh mod pasif

Pelanggan: PENGGUNA tanpa nama
Pelayan: 331 Log masuk tetamu ok, hantar alamat e-mel anda sebagai kata laluan.
Pelanggan: LULUS NcFTP@
Pelayan: 230 Log masuk tanpa nama.
Pelanggan: PASV Pelanggan meminta maklumat sambungan daripada pelayan.
Pelayan: 227 Memasuki Mod Pasif
(172,16,3,4,204,173)
Pelayan bertindak balas kepada pelanggan bahawa ia perlu menyambung ke port 52397 dan alamat IP 172.16.3.4.
Pelanggan: SENARAI
Pelayan: 150 Sambungan data diterima daripada
172.16.3.4:52397; pemindahan bermula.
Pelanggan disambungkan ke pelayan pada port 52397 dan alamat IP 172.16.3.4.
Pelayan: 226 Penyenaraian selesai. Data berjaya dipindahkan.
Pelanggan: BERHENTI
Pelayan: 221 Selamat tinggal.

Masalah peribadi:

    Mod PORT - Pelanggan FTP di belakang NAT atau firewall

    Masalah terbesar yang dihadapi oleh klien FTP menggunakan mod aktif ialah pelayan itu sendiri mesti menyambung ke alamat IP klien. Jika terdapat tembok api dalam laluannya yang memotong semua sambungan masuk, sesi FTP tidak akan berlaku. Masalah lain ialah jika pelanggan berada di belakang NAT dan menggunakan alamat IP dalaman. Dengan menyampaikan alamat dalamannya kepada pelayan, pelanggan mengutuknya kerana ketidakupayaan untuk menyambung.

    Penyelesaian 1: Pelanggan FTP mesti dikonfigurasikan untuk menggunakan mod pasif.

    Penyelesaian 2: Konfigurasikan NAT untuk menjejak sambungan FTP. Apabila pelanggan menggunakan mod aktif, peranti NAT mesti menulis semula alamat dalaman klien dan menggantikannya dengan alamat luaran peranti. Kemudian sambungan untuk memindahkan data dari pelayan FTP, setelah tiba di alamat NAT luaran peranti, akan dimajukan olehnya ke alamat dalaman klien FTP di belakang NAT.

    Mod PASV - Pelayan FTP di belakang tembok api

    Apabila pelayan FTP berada di belakang tembok api, pelanggan akan mengalami masalah menggunakan mod pasif untuk menyambung ke port ephemeral pelayan FTP. Masalah yang paling biasa ialah apabila tembok api di belakang tempat pelayan FTP terletak membenarkan hanya beberapa sambungan ke port yang diketahui dan menyekat yang lain.

    Penyelesaian 1: Pentadbir boleh membuka sekumpulan port pada tembok api yang melaluinya sambungan ke pelayan FTP boleh berlaku.

    Penyelesaian 2: Jika terdapat sokongan firewall, pentadbir boleh mengkonfigurasi port untuk dibuka secara automatik untuk mewujudkan sambungan pasif ke pelayan FTP. Persediaan ini serupa dengan apa yang diterangkan untuk pelanggan aktif di belakang NAT. Oleh itu, apabila tembok api memantau tindak balas pelayan FTP kepada permintaan pelanggan pasif, ia membuka port yang dinyatakan dalam respons buat sementara waktu, dan hanya untuk IP dari mana permintaan pasif itu berasal.

    Mod PASV - pelayan FTP di belakang NAT

    Dalam mod PASV FTP, pelayan bertindak balas kepada klien dengan alamat IP dalaman dan portnya, yang mengecam pelanggan kepada ketidakupayaan untuk menyambung.

    Penyelesaian 1: Konfigurasikan NAT untuk memantau sambungan data FTP. Apabila pelayan menghantar respons dalam mod pasif, peranti NAT mesti menulis semula alamat dalaman pelayan dan menggantikannya dengan alamat luaran peranti. Kemudian sambungan untuk pemindahan data daripada klien FTP, setelah tiba di alamat NAT luaran peranti, akan dimajukan olehnya ke alamat dalaman pelayan FTP di belakang NAT.

    Mod PASV - Pelayan FTP di belakang pengimbang beban

    Pengimbang mewakili satu alamat IP, sambungan yang akan diubah hala ke salah satu pelayan seimbang. Pengimbang membentangkan dua masalah untuk FTP. Yang pertama berlaku disebabkan oleh fakta bahawa beberapa sambungan diwujudkan antara pelayan FTP dan klien: satu untuk menghantar arahan dan satu atau lebih untuk menghantar data. Dalam mod pasif, pengimbang mesti mengubah hala sambungan data ke pelayan yang sama dengan sambungan arahan. Masalah kedua adalah akibat daripada yang pertama: apabila pelayan FTP bertindak balas dengan tindak balas pasif, respons ini akan mengandungi alamat dalaman pelayan FTP, dan bukan alamat luaran pengimbang.

    Penyelesaian 1. Berikan setiap pelayan FTP di belakang pengimbang alamat IP yang sah yang boleh diakses dari luar. Dalam kes ini, pelayan FTP akan dapat melayani pelanggan FTP secara bebas dalam mod pasif, memintas pengimbang.

    Penyelesaian 2: Konfigurasikan pengimbang untuk memantau sambungan FTP untuk pemindahan data. Apabila pelayan menghantar respons dalam mod pasif, pengimbang mesti menulis semula alamat dalaman pelayan dan menggantikannya dengan alamat luar pengimbang. Kemudian sambungan untuk pemindahan data dari klien FTP, setelah tiba di alamat luar pengimbang, akan dimajukan olehnya ke alamat dalaman pelayan FTP di belakang pengimbang.

    Penyelesaian 3: Konfigurasikan pelayan FTP supaya responsnya dalam mod pasif mengandungi alamat luar pengimbang, bukan pelayan, dan berharap pengimbang akan mengubah hala sambungan ke pelayan menunggu.

    Masalah yang tidak dapat diselesaikan - tembok api pada kedua-dua hujungnya

    Apabila klien dan pelayan berada di belakang tembok api yang menyekat semua sambungan masuk kecuali kepada sekumpulan port yang diketahui, masalah bermula. Pelanggan tidak boleh menggunakan mod aktif kerana pelayan tidak akan dapat menyambung kepadanya, dan tidak boleh menggunakan mod pasif, kerana tidak boleh menyambung ke pelayan FTP.
    Dalam kes ini, anda perlu menukar tetapan tembok api dan lebih baik melakukan ini di sebelah pelayan.

    Pelayan FTP pada port bukan standard

    Sesetengah peranti penghalaan mampu memproses sesi FTP hanya jika ia tiba di port standard pelayan. Oleh itu, jika pelayan FTP mendengar pada port bukan standard, anda perlu mengkonfigurasi peranti penghalaan supaya ia mengetahui bahawa terdapat pelayan FTP di belakang port ini dan memproses sambungan dengan betul.

    Tetapi walaupun begitu, tembok api sebelah pelanggan boleh menghalangnya. Ini boleh berlaku jika firewall sisi klien dengan tegas memerlukan sambungan data FTP daripada pelayan FTP berasal dari port 20 (dalam mod aktif). Jika pelayan FTP berjalan pada port N, maka mengikut spesifikasi FTP, sambungan datanya akan berasal dari port N - 1 dan akan disekat oleh firewall pelanggan.

    Masalah yang disebabkan oleh tembok api yang menamatkan sesi FTP lebih awal

    Masalah ini paling kerap berlaku apabila memindahkan fail besar. Setelah parameter sambungan telah dipersetujui dan pemindahan telah dimulakan, sambungan arahan akan mula melahu sehingga pemindahan fail selesai. Jika peranti penghalaan tidak mengetahui FTP dan pemindahan fail mengambil masa lebih lama daripada kaunter aktiviti sambungan di atasnya, sambungan dari sudut pandangan peranti penghalaan akan tamat masa dan ditamatkan dan paket yang masuk akan dibuang.

    Penyelesaian kepada masalah ini ialah peranti yang mengekalkan sambungan untuk menghantar arahan dalam keadaan aktif, walaupun tiada paket telah dihantar ke atasnya untuk masa yang lama. Pilihan lain ialah untuk mendayakan fungsi "Keep Alive" dalam susunan protokol TCP/IP pada bahagian klien atau pelayan, yang menghantar paket semakan ketersediaan pada selang masa tertentu, dan jika bahagian destinasi tidak bertindak balas, menutup sambungan secara normal. Jika pihak penerima bertindak balas, sambungan dari bahagian firewall akan dianggap aktif.

  • Gunakan mod pasif apabila boleh (ini adalah lalai dalam pelayar web)
  • Jika sambungan ke pelayan FTP berjaya, tetapi menyemak imbas direktori atau memindahkan fail berakhir dengan kegagalan sambungan, kemungkinan besar masalahnya adalah dalam pemasa aktiviti sambungan pada tembok api
  • Gunakan peranti yang menyokong ciri FTP

Sebelum menerangkan perbezaan antara mod FTP aktif dan pasif, adalah wajar untuk menentukan apakah FTP itu sendiri dan cara ia berfungsi. Singkatan bahasa Inggeris FTP bermaksud Protokol Pemindahan Fail, yang diterjemahkan ke dalam bahasa Rusia bermaksud protokol pemindahan fail. Ia direka untuk mewujudkan sambungan antara pelanggan, iaitu pengguna, dan pelayan jauh.

Protokol FTP menetapkan dua jenis sambungan antara klien dan pelayan. Salah seorang daripada mereka dipanggil sambungan kawalan dan bertujuan untuk menghantar arahan, dan yang kedua dipanggil sambungan data dan bertujuan untuk memindahkan pelbagai fail ke pelayan. Mod pengendalian FTP aktif atau pasif tidak ada kaitan dengan jenis sambungan pertama, iaitu, kawalan. Pilihan antara dua mod ini dibuat oleh pengguna semasa membuat sambungan data.

Jadi, apakah perbezaan asas?

Perbezaan utama antara mod operasi aktif dan pasif protokol FTP ialah siapa dalam sambungan pelanggan-pelayan membuat sambungan untuk pemindahan data, iaitu, secara kasarnya, siapa yang menyambung kepada siapa. Port ke mana data dipindahkan juga berbeza. Dalam mod operasi aktif, pelanggan membuat sambungan kawalan dengan pelayan, tetapi sambungan untuk pemindahan data dibuat oleh pelayan itu sendiri. Dalam mod pasif, sambungan data, serta sambungan kawalan ke pelayan, hanya dimulakan oleh pelanggan. Iaitu, dalam mod aktif, pelayan menyambung kepada klien untuk memindahkan data, dan dalam mod pasif, pelanggan menyambung ke pelayan.

Mari lihat mod ini dengan lebih jelas.

Perbezaan antara mod FTP aktif dan pasif

Mari kita periksa dalam format video bagaimana mod operasi pasif dan aktif protokol FTP berbeza antara satu sama lain.

Dalam kedua-dua mod aktif dan pasif, penubuhan sambungan bermula dengan pelanggan menghantar permintaan kepada . Pertama, sambungan kawalan diwujudkan. Untuk melakukan ini, port sementara dibuat pada klien dengan nombor dalam julat dari 1024 sebelum ini 65535 untuk mewujudkan sambungan kawalan, serta port untuk pemindahan data. Dalam mod aktif, semuanya berlaku dalam susunan berikut:

  1. 1024 65535 21 .
  2. 1036 ).
  3. Pelanggan menghantar arahan PELABUHAN, yang menunjukkan penggunaan mod FTP aktif, alamat IP anda, serta nombor port untuk mewujudkan sambungan data yang akan disambungkan oleh pelayan (dalam contoh, port 1037 ).
  4. Perintah itu disahkan oleh pelayan.
  5. Pelanggan mengeluarkan arahan kepada pelayan untuk bekerja dengan FTP.
  6. Pelayan mencipta sambungan data. Untuk melakukan ini, dia menghantar permintaan dengan 20 port ke port yang ditentukan oleh klien dalam perenggan keempat ( 1037 ).
  7. Klien menjawab permintaan.
  8. Pelayan mengesahkan sambungan dan membenarkan pelanggan memindahkan data.

Secara skematik ini boleh dinyatakan seperti berikut:

Dalam mod pasif, prosedur untuk mewujudkan sambungan data sedikit berbeza. Tindakan tersebut berlaku seperti berikut:

  1. Pelanggan menghantar dari port sementara dengan julat 1024 65535 meminta nombor port pelayan 21 .
  2. Pelayan bertindak balas kepada port sementara pelanggan (dalam contoh, port 1036 ).
  3. Pelanggan mengesahkan sambungan.
  4. Pelanggan menghantar arahan PASV, yang bercakap tentang menggunakan mod FTP pasif.
  5. Pelayan mengesahkan operasi dalam mod pasif, menghantar alamat IPnya, serta nombor port untuk mewujudkan sambungan data yang akan disambungkan oleh pelanggan (dalam contoh 2154 ).
  6. Dari port data (dalam contoh 1037 ) klien menghantar permintaan untuk mewujudkan sambungan ke port yang dikeluarkan oleh pelayan ( 2154 ).
  7. Pelayan mengesahkan sambungan.
  8. Pelanggan mewujudkan sambungan.
  9. Pelanggan mengeluarkan arahan kepada pelayan (dari port kawalan ke port 21 , dalam contoh - dari pelabuhan 1036 setiap pelabuhan 21 ), selepas itu pemindahan data boleh dilakukan.

Mari bayangkan ini dalam rajah:

Mod pasif adalah lebih selamat untuk pelanggan. Adalah disyorkan untuk menggunakannya jika anda mempunyai Firewall yang dikonfigurasikan. Menggunakan mod FTP aktif melalui Firewall boleh mengakibatkan ralat kerana Firewall tidak akan membenarkan pelayan menyambung kepada klien. Oleh itu, adalah disyorkan untuk menggunakan mod FTP pasif untuk pemindahan data bagi mengelakkan ralat tersebut.