দুর্ভাগ্যক্রমে, আপনি কোন অপারেটিং সিস্টেমটি ব্যবহার করছেন তার উপর নির্ভর করে এটি পৃথক হয়।
মাইক্রোসফ্ট উইন্ডোজে, সকেটকে ::
কেবল আইপিভি 6 পোর্টের সাথে সংযুক্ত করে বাঁধাই । সুতরাং IPv4 এবং IPv6 উভয় ক্ষেত্রেই সমস্ত ঠিকানা শোনার জন্য আপনাকে 0.0.0.0
পাশাপাশি বাঁধতে হবে ::
। নিম্নলিখিত নিষ্কাশন একটি ভিস্তার বাক্স থেকে:
C:\>netstat -an | find "445"
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
উদাহরণটি আমি দিচ্ছি 445 বন্দরটি, যখন নেটবিআইওএস ব্যবহার না করা হয় এসএমবি ট্র্যাফিকের জন্য ব্যবহৃত হয়। যেমন আপনি দেখতে পাচ্ছেন, এটি উভয়কেই বাধ্যতামূলক 0.0.0.0
এবং ::
যথাক্রমে, আইপিভি 4 এবং আইপিভি 6 ক্লায়েন্ট উভয়ই কাজ করে।
লিনাক্সে, ::
IPv4- সামঞ্জস্যপূর্ণ ঠিকানাগুলি অন্তর্ভুক্ত, আপনি যেমন সঠিকভাবে অনুমান করেছেন, তাই 0.0.0.0
পাশাপাশি বাঁধাই অপ্রয়োজনীয়। আমি একটি সাধারণ পাইথন প্রোগ্রাম লিখেছিলাম যা কেবল একটি AF_INET6
সকেটের সাথে আবদ্ধ ::
। যদিও আমি কোনও AF_INET
(আইপিভি 4) সকেটের সাথেও আবদ্ধ না হই , তবুও এটি আইপিভি 4 ক্লায়েন্টের সংযোগ গ্রহণ করে। যদি 10.1.1.3
এটির সাথে সংযোগ স্থাপন করা হয় তবে এটি থেকে সংযোগ হিসাবে প্রদর্শিত হবে ::ffff:10.1.1.3
।
চুলকানি হয়ে যায় তা বাদে । যদি /proc/sys/net/ipv6/bindv6only
সেট করা থাকে তবে উপরেরটি লিনাক্সের ক্ষেত্রে প্রযোজ্য নয় 1
, এক্ষেত্রে আচরণটি উইন্ডোজের মতো হ'ল - বাধ্যতামূলক ::
শুধুমাত্র আইপিভি 6 অনুরোধের জন্য শুনবে। আপনি যদি আইপিভি 4 অনুরোধগুলিও শুনতে চান তবে আপনার একটি AF_INET
সকেট তৈরি করতে হবে এবং এটিও শুনতে হবে 0.0.0.0
। সৌভাগ্যক্রমে, এর জন্য ডিফল্ট bindv6only
হ'ল 0
, সুতরাং এর জন্য আপনাকে খুব ঝুঁকির সুযোগ দিতে হবে (আপনি যদি ডিবিয়ান ব্যবহার করেন তবে, যা আসলেই খেলাপি bindv6only = 1
।
কোনও পরিষেবা আইপিভি 6-সক্ষম হয়েছে কিনা তা পরীক্ষা করাতে, এবং এটি আইপিভি 4-সক্ষম হয়েছে কিনা তা যাচাই করার পক্ষে এই সমস্ত কিছুই কার্যকর। এখানে আমার এসএসএইচ সার্ভারটি রয়েছে:
$ netstat -64ln | grep 22
tcp6 0 0 :::22 :::* LISTEN
যেমন আপনি দেখতে পাচ্ছেন, এসএসএইচ কেবল ::
পোর্ট ২২ এ শুনছেন । তবে এটি কেবল আইপিভি clients ক্লায়েন্টের জন্যই শোনা যাচ্ছে না - এটি আইপিভি 4-সামঞ্জস্যপূর্ণ বাধ্যবাধকতার কারণে আইপিভি 4 ক্লায়েন্টদের কাছ থেকে সূক্ষ্মভাবে কাজ করে। এটি প্রমাণ করার জন্য, আপনি যদি এটি দেখেন:
$ cat /proc/sys/net/ipv6/bindv6only
0
bindv6only
অক্ষম করা হয়েছে (ডিফল্ট)। যদি এটি সেট করা থাকে 1
, তবে আমাকে এসএসএইচটিকে 0.0.0.0
পাশাপাশি (বা পরিবর্তে) শুনতে উত্সাহিত করতে হবে।
ম্যাক ওএস এক্স বিষয়গুলির কোনও তথ্য না থাকার জন্য ক্ষমা প্রার্থনা করছি। আমি এটি অতীতে ব্যবহার করেছি তবে আমি জিনোমের নন্দনতত্বকে প্রাধান্য দিয়েছি, তাই আমি এটি খুব দীর্ঘ সময়ে ব্যবহার করি নি। তবে, আমি অনুমান করব যে আচরণটি লিনাক্সের মতো।
আশাকরি এটা সাহায্য করবে.