উত্তর:
সক্রিয় এবং প্যাসিভ হ'ল এফটিপি যে দুটি মোড চালাতে পারে।
পটভূমির জন্য, এফটিপি আসলে ক্লায়েন্ট এবং সার্ভারের মধ্যে দুটি চ্যানেল ব্যবহার করে , কমান্ড এবং ডেটা চ্যানেলগুলি, যা আসলে পৃথক টিসিপি সংযোগগুলি।
কমান্ড চ্যানেলটি কমান্ড এবং প্রতিক্রিয়ার জন্য যখন ডেটা চ্যানেলটি আসলে ফাইল স্থানান্তর করার জন্য for
কমান্ড তথ্য এবং ডেটা পৃথক চ্যানেলে পৃথক করে বর্তমান ডাটা ট্রান্সফারটির অপেক্ষা না করে সার্ভারে কমান্ড প্রেরণে সক্ষম হওয়ার এক নব্বই উপায়। আরএফসি অনুসারে, এটি কেবলমাত্র কমান্ডের সাবসেটের জন্য বাধ্যতামূলক, যেমন প্রস্থান করা, বর্তমান স্থানান্তর বাতিল করা এবং স্থিতি পাওয়া।
ইন সক্রিয় মোড, ক্লায়েন্ট কমান্ড চ্যানেল স্থাপন কিন্তু সার্ভার ডেটা চ্যানেল প্রতিষ্ঠার জন্য দায়ী। এটি আসলে একটি সমস্যা হতে পারে যদি, উদাহরণস্বরূপ, ক্লায়েন্ট মেশিনটি ফায়ারওয়াল দ্বারা সুরক্ষিত থাকে এবং বাহ্যিক পক্ষগুলি থেকে অননুমোদিত অধিবেশন অনুরোধের অনুমতি না দেয়।
ইন প্যাসিভ মোড, ক্লায়েন্ট স্থাপন উভয় চ্যানেল। আমরা ইতিমধ্যে জানি এটি সক্রিয় মোডে কমান্ড চ্যানেলটি প্রতিষ্ঠিত করে এবং এটি এখানে এটি করে।
তবে এটির পরে সার্ভারকে (কমান্ড চ্যানেলে) ক্লায়েন্টের সাথে সংযোগ স্থাপনের পরিবর্তে কোনও পোর্টে (সার্ভারের বিবেচনার ভিত্তিতে) শোনার জন্য অনুরোধ করা হয়েছে।
এর অংশ হিসাবে, সার্ভার ক্লায়েন্টটি শুনতে পোর্টটি এটি চয়ন করার জন্য বেছে নিয়েছে, যাতে ক্লায়েন্ট কীভাবে এটির সাথে সংযোগ স্থাপন করতে পারে তা জানতে পারে।
ক্লায়েন্টটি এটি জানার পরে, এটি সফলভাবে ডেটা চ্যানেলটি তৈরি করতে এবং চালিয়ে যেতে পারে।
আরএফসিতে আরও বিশদ পাওয়া যায়: https://www.ietf.org/rfc/rfc959.txt
আমি সম্প্রতি আমার কাজের জায়গায় এই প্রশ্নটি চালিয়েছি যাতে আমার মনে হয় এখানে আরও কিছু বলা উচিত। পূর্ববর্তী উত্তরের জন্য কীভাবে অতিরিক্ত উত্স হিসাবে FTP কাজ করে তা বোঝাতে আমি চিত্রটি ব্যবহার করব।
সক্রিয় মোড:
প্যাসিভ মোড:
একটি সক্রিয় মোড কনফিগারেশনে, সার্ভারটি এলোমেলো ক্লায়েন্ট-সাইড পোর্টের সাথে সংযোগ স্থাপনের চেষ্টা করবে। সম্ভাবনা রয়েছে, সেই বন্দরটি পূর্বনির্ধারিত বন্দরগুলির মধ্যে একটি হবে না। ফলস্বরূপ, এটির সাথে সংযোগ স্থাপনের একটি প্রচেষ্টা ফায়ারওয়াল দ্বারা অবরুদ্ধ হয়ে যাবে এবং কোনও সংযোগ স্থাপন করা হবে না।
প্যাসিভ কনফিগারেশনটিতে এই সমস্যা থাকবে না যেহেতু ক্লায়েন্টই সংযোগের সূচনা করবে। অবশ্যই সার্ভারের পক্ষে ফায়ারওয়াল থাকাও সম্ভব। তবে, যেহেতু সার্ভারটি ক্লায়েন্টের তুলনায় সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক অনুরোধ পেয়েছে, তাই সার্ভার অ্যাডমিনের পক্ষে পরিস্থিতিটির সাথে খাপ খাইয়ে নেওয়া এবং প্যাসিভ মোড কনফিগারেশনগুলিকে সন্তুষ্ট করার জন্য পোর্টগুলির একটি নির্বাচন উন্মুক্ত করা যুক্তিযুক্ত হবে be
আপনার পক্ষে প্যাসিভ মোড এফটিপি সমর্থন করার জন্য সার্ভারটি কনফিগার করা ভাল। যাইহোক, প্যাসিভ মোড আপনার সিস্টেমে আক্রমণগুলিতে ঝুঁকিপূর্ণ করে তুলবে কারণ ক্লায়েন্টদের র্যান্ডম সার্ভার পোর্টগুলির সাথে সংযোগ স্থাপন করার কথা। সুতরাং, এই মোডটি সমর্থন করার জন্য, কেবল আপনার সার্ভারকে একাধিক পোর্ট উপলব্ধ থাকতে হবে না, আপনার ফায়ারওয়ালকে সেই সমস্ত পোর্টের সাথে সংযোগগুলিও মঞ্জুর করতে হবে!
ঝুঁকিগুলি হ্রাস করতে, একটি ভাল সমাধান হ'ল আপনার সার্ভারে পোর্টের একটি ব্যাপ্তি নির্দিষ্ট করা এবং তারপরে কেবল আপনার ফায়ারওয়ালে কেবলমাত্র পঞ্জির পরিসরকেই অনুমতি দেওয়া।
আরও তথ্যের জন্য, দয়া করে অফিসিয়াল ডকুমেন্টটি পড়ুন ।
আমার নিবন্ধের এফটিপি সংযোগ মোডের সক্রিয় সংস্করণ (অ্যাক্টিভ বনাম প্যাসিভ) :
এফটিপি সংযোগ মোড (সক্রিয় বা প্যাসিভ), কীভাবে ডেটা সংযোগ স্থাপন করা হয় তা নির্ধারণ করে। উভয় ক্ষেত্রেই, কোনও ক্লায়েন্ট একটি এফটিপি সার্ভার কমান্ড পোর্ট 21-তে একটি টিসিপি নিয়ন্ত্রণ সংযোগ তৈরি করে। এটি অন্য কোনও ফাইল ট্রান্সফার প্রোটোকল (এসএফটিপি, এসসিপি, ওয়েবডিএভি) বা অন্য কোনও টিসিপি ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন ওয়েব ব্রাউজার) এর মতো এটি একটি প্রমিত আউটগোয়িং সংযোগ is )। সুতরাং, সাধারণত নিয়ন্ত্রণ সংযোগটি খোলার সময় কোনও সমস্যা হয় না।
অন্যান্য ফাইল ট্রান্সফার প্রোটোকলগুলির সাথে তুলনা করার ক্ষেত্রে এফটিপি প্রোটোকল আরও জটিল, ফাইল স্থানান্তর। অন্যান্য প্রোটোকলগুলি সেশন নিয়ন্ত্রণ এবং ফাইল (ডেটা) স্থানান্তর উভয়ের জন্য একই সংযোগ ব্যবহার করার সময়, এফটিপি প্রোটোকল ফাইল স্থানান্তর এবং ডিরেক্টরি তালিকার জন্য একটি পৃথক সংযোগ ব্যবহার করে।
ইন সক্রিয় মোড, ক্লায়েন্ট সার্ভার থেকে আগত তথ্য সংযোগের একটি র্যান্ডম পোর্টে শোনার শুরু (ক্লায়েন্ট এফটিপি কমান্ড পাঠায়PORT
সার্ভার পোর্ট তে এটি শুনছে অবহিত)। আজকাল, এটি সাধারণ যে ক্লায়েন্টটি ফায়ারওয়ালের (যেমন অন্তর্নির্মিত উইন্ডোজ ফায়ারওয়াল) বা NAT রাউটারের (যেমন ADSL মডেম) পিছনে রয়েছে, আগত টিসিপি সংযোগগুলি গ্রহণ করতে অক্ষম।
এই কারণে প্যাসিভ মোড চালু হয়েছিল এবং বর্তমানে বেশিরভাগ ক্ষেত্রেই ব্যবহৃত হয়। প্যাসিভ ব্যবহার মোডটি করা পছন্দনীয় কারণ বেশিরভাগ জটিল কনফিগারেশনটি কেবলমাত্র সার্ভারের পাশে অভিজ্ঞ প্রশাসক দ্বারা, ক্লায়েন্টের পক্ষ থেকে পৃথক পৃথক পৃথক পরিবর্তে (সম্ভবত) অনভিজ্ঞ ব্যবহারকারী দ্বারা করা হয়।
ইন প্যাসিভ মোড, ক্লায়েন্ট নিয়ন্ত্রণ সংযোগ ব্যবহার একটি পাঠাতেPASV
সার্ভারে কমান্ড এবং তারপর সার্ভার, যা ক্লায়েন্ট তারপর সার্ভার IP ঠিকানা এবং সার্ভারে কোনও ডেটা সংযোগ খুলতে ব্যবহার থেকে একটি সার্ভার IP ঠিকানা এবং সার্ভারের পোর্ট সংখ্যা গ্রহণ করে পোর্ট নম্বর প্রাপ্ত
সঙ্গে প্যাসিভ মোডে, কনফিগারেশন বোঝা অধিকাংশ সার্ভার দিকে থাকে। সার্ভার প্রশাসকের নীচে বর্ণিত হিসাবে সার্ভার সেটআপ করা উচিত।
এফটিপি সার্ভারের পাশের ফায়ারওয়াল এবং নাটকে কেবল এফটিপি পোর্ট ২১-এ আগত সংযোগগুলিকে অনুমতি / রুট করার জন্যই নয়, আগত ডেটা সংযোগের জন্য একাধিক পোর্টের কনফিগার করতে হবে। সাধারণত, এফটিপি সার্ভার সফ্টওয়্যারটিতে পোর্টগুলির একটি পরিসর সেটআপ করার জন্য একটি কনফিগারেশন বিকল্প রয়েছে, সার্ভারটি ব্যবহার করবে। এবং একই পরিসরটি ফায়ারওয়াল / NAT এ খুলতে / রাউটে করতে হয়।
যখন এফটিপি সার্ভারটি একটি NAT এর পিছনে থাকে, তখন এটির বাহ্যিক আইপি ঠিকানাটি জানতে হবে, সুতরাং এটি PASV
কমান্ডের প্রতিক্রিয়াতে ক্লায়েন্টকে সরবরাহ করতে পারে ।
সঙ্গে সক্রিয় মোড, কনফিগারেশন বোঝা অধিকাংশ ক্লায়েন্ট দিকে থাকে।
আগত ডেটা সংযোগের জন্য ক্লায়েন্টের পক্ষের ফায়ারওয়াল (যেমন উইন্ডোজ ফায়ারওয়াল) এবং NAT (যেমন এডিএসএল মডেম রাউটিং বিধি) কনফিগার করতে হবে / পোর্টের একটি পরিসরকে অনুমতি দিতে। উইন্ডোজে পোর্টগুলি খুলতে কন্ট্রোল প্যানেল> সিস্টেম ও সুরক্ষা> উইন্ডোজ ফায়ারওয়াল> অ্যাডভান্সড সেটিংস> ইনবাউন্ড বিধি> নতুন নিয়মে যান । NAT এ পোর্টগুলি রাউটিং করার জন্য (যদি থাকে), এর ডকুমেন্টেশনটি দেখুন।
আপনার নেটওয়ার্কে NAT থাকলে এফটিপি ক্লায়েন্টকে তার বাহ্যিক আইপি ঠিকানা জানতে হবে যা উইনসিসিপি PORT
কমান্ড ব্যবহার করে এফটিপি সার্ভারকে সরবরাহ করতে হবে । যাতে সার্ভারটি সঠিকভাবে ক্লায়েন্টের সাথে ডেটা সংযোগটি খোলার জন্য আবার সংযোগ করতে পারে। কিছু এফটিপি ক্লায়েন্ট বাহ্যিক আইপি অ্যাড্রেসটি স্বয়ংক্রিয়ভাবে সনাক্ত করতে সক্ষম, কিছুকে ম্যানুয়ালি কনফিগার করতে হবে।
কিছু ফায়ারওয়াল / নাটগুলি এফটিপি নিয়ন্ত্রণ সংযোগ পরিদর্শন করে এবং / অথবা নিয়ন্ত্রণ সংযোগ ট্র্যাফিকে ডেটা সংযোগ আইপি ঠিকানাগুলি অনুবাদ করে ডেটা পোর্টগুলি স্বয়ংক্রিয়ভাবে খুলতে / বন্ধ করার চেষ্টা করে।
যেমন একটি ফায়ারওয়াল / NAT দিয়ে, উপরের কনফিগারেশনটি সরল আনইনক্রিপ্ট করা FTP- র জন্য প্রয়োজনীয় নয়। তবে এটি এফটিপিএসের সাথে কাজ করতে পারে না, কারণ নিয়ন্ত্রণ সংযোগ ট্র্যাফিক এনক্রিপ্ট করা হয়েছে এবং ফায়ারওয়াল / এনএটি এটি পরীক্ষা বা পরিবর্তন করতে পারে না।
অ্যাক্টিভ মোড: -সভারটি সংযোগটি শুরু করে।
প্যাসিভ মোড: -গ্রাহক সংযোগটি শুরু করে।
অ্যাক্টিভ মোড client ক্লায়েন্ট সার্ভারকে একটি পোর্ট কমান্ড জারি করে যে এটি ক্লায়েন্টের কাছে ডেটা সংযোগটি খোলার জন্য "সক্রিয়ভাবে" একটি আইপি এবং পোর্ট নম্বর সরবরাহ করবে।
প্যাসিভ মোড client ক্লায়েন্ট একটি আইপি এবং পোর্ট নম্বর সরবরাহ করার জন্য সার্ভারের জন্য "প্যাসিভলি" অপেক্ষা করবে তা বোঝাতে একটি প্যাসভি কমান্ড জারি করে, তারপরে ক্লায়েন্টটি সার্ভারে একটি ডেটা সংযোগ তৈরি করবে।
উপরে অনেকগুলি ভাল উত্তর রয়েছে, তবে এই ব্লগ পোস্টটিতে কিছু সহায়ক গ্রাফিক্স অন্তর্ভুক্ত রয়েছে এবং এটি একটি দুর্দান্ত দৃ explanation় ব্যাখ্যা দেয়: https://titanftp.com/2018/08/23/ কি-is-tif--between-active- এবং -passive-FTP /