Android হটস্পট পোর্ট ফরওয়ার্ডিং: তিনটি প্রবেশ বিন্দুর ব্যাখ্যা
ফোন, ক্যারিয়ারের পথ ও VPN এক্সিট আলাদা সীমানা দেখায়। পোর্ট খোলার আগে কোন মেশিন শোনা সকেট ধরে আছে তা জেনে নিন।
হটস্পট চালু করেছেন, VPN সংযুক্ত করেছেন, অ্যাপে একটি পোর্ট খুলেছেন, তবুও অন্য ডিভাইসটি সংযোগ করতে পারছে না। অনুপস্থিত অংশটি প্রায় কখনও পোর্ট নিজে নয়, বরং কোন মেশিন শোনা সকেটটির মালিক এবং অন্য ডিভাইসের কোন ঠিকানায় পৌঁছানোর কথা। আমি ফোন থেকে বাইরের দিকে এগোই, কারণ যে স্ক্রিনে আছেন তা বলবে তিনটি প্রবেশ বিন্দুর কোনটি আপনি সত্যিই পরীক্ষা করছেন।
সেবাটি যেখানে সত্যিই চলে সেখান থেকে শুরু করুন
যে অ্যাপটি সংযোগ গ্রহণ করার কথা সেটি খুলে তার নিজের অবস্থা পাতা পড়ুন। শুনছে বলে থাকলে যে ঠিকানায় বাঁধা পড়েছে তা লিখে রাখুন, কারণ এই একটি খুঁটিনাটিই নিচের বেশিরভাগ ক্ষেত্র ঠিক করে দেয়। 127.0.0.1 এ বাঁধা অ্যাপ কেবল ফোন থেকেই পৌঁছানো যায়, এবং হটস্পট ক্লায়েন্ট, ক্যারিয়ার ম্যাপিং বা VPN এক্সিট কিছুই বদলাবে না।
তারপর নিশ্চিত করুন কোন ডিভাইস সেবাটি চালায়। ফোন হলে সকেটটি ওই অ্যাপের; হটস্পটের পেছনে ল্যাপটপ হলে শ্রবণকারী ও ফায়ারওয়াল ল্যাপটপের, ফোন কেবল প্যাকেট এগিয়ে দেয়। এগুলি ভিন্ন নকশা, আর মিশিয়ে ফেলাই এক জায়গায় খোলা পোর্ট অন্য জায়গায় কিছু না করার কারণ।
ডিবাগযোগ্য বিল্ডে adb shell /proc/net/tcp দিয়ে সকেট তালিকা করে, তবে বেশিরভাগের জন্য অ্যাপের নিজের অবস্থাই সৎ উৎস।
প্রথম প্রবেশ বিন্দু: হটস্পটে থাকা অন্য ডিভাইস
এটি স্থানীয় ক্ষেত্র এবং সবচেয়ে সহজ। অন্য ডিভাইসটি ফোনকে যে ঠিকানায় নিজের গেটওয়ে হিসেবে দেখে সেখানে, অ্যাপ যে পোর্টে শোনে সেখানে পৌঁছায়, এবং হটস্পটের বাইরে কিছুই লাগে না। ক্যারিয়ার ম্যাপিং বা প্রোভাইডার সুবিধা দরকার নেই, কারণ ট্রাফিক স্থানীয় সেগমেন্ট ছাড়ে না।
দুটি জিনিস এটি ভাঙে: অ্যাপটি লুপব্যাকে বাঁধা, বা ফোনের ক্লায়েন্ট নীতি স্থানীয় সংযোগ অনুমোদন করে না। অ্যাপ প্রমাণীকরণ করলে তার নিজের প্রোটোকল দিয়ে পরীক্ষা করুন, কারণ গ্রহণ করে পরে প্রত্যাখ্যান করা শ্রবণকারী দূর থেকে বন্ধ পোর্টের মতো দেখায়।
সেবাটি সংযুক্ত ল্যাপটপে চললে ফোনের হটস্পট ঠিকানা মোটেই গন্তব্য নয়; ল্যাপটপের হটস্পট ইন্টারফেসের ঠিকানা ও সেখানে শ্রবণকারী দরকার।
দ্বিতীয় প্রবেশ বিন্দু: ক্যারিয়ারের পথ
মোবাইল নেটওয়ার্ক থেকে ফোনে পৌঁছানো আলাদা সমস্যা, এবং বেশিরভাগ সময় IPv4 এর জন্য কাজ করে না। ক্যারিয়াররা হ্যান্ডসেট শেয়ার করা অনুবাদের পেছনে রাখে, তাই RFC 6598 ঠিক এই বিন্যাসের জন্য একটি শেয়ার করা ঠিকানা পরিসর রেখেছে। অনুরোধ না করা অন্তর্গামী সংযোগের আসার মতো কোনো ম্যাপিং নেই, আর স্থানীয় কনফিগারেশন একটি তৈরি করে না, কারণ অনুবাদক আপনার ডিভাইস নয়।
রুট অ্যাক্সেসও এটি বদলায় না; এটি ফোনের স্ট্যাকের নিয়ন্ত্রণ দেয়, ক্যারিয়ারের অনুবাদকের নয়। ক্যারিয়ার পাবলিক IPv6 উপসর্গ দিলে অন্তর্গামী পথ থাকতে পারে, তবে শ্রবণকারী ও ফায়ারওয়াল তবুও স্পষ্ট অনুমতি চায়।
তৃতীয় প্রবেশ বিন্দু: VPN এক্সিট
টানেল চালু থাকা অবস্থায় ওয়েবসাইট যে ঠিকানা জানায় তা আচ্ছাদিত বহির্গামী ট্রাফিকের এক্সিট ঠিকানা। এটি আপনার হয়ে অন্তর্গামী সংযোগ গ্রহণকারী ঠিকানা নয়। অন্তর্গামীভাবে ব্যবহার করতে প্রোভাইডার সত্যিই যে সুবিধা দেয় তা দরকার, যেমন ফরওয়ার্ড করা পোর্ট, সাথে এক্সিট থেকে ক্লায়েন্ট পর্যন্ত কাজ করা পথ।
স্থানীয় অনুমতি নিয়ম সেই ম্যাপিং তৈরি করতে পারে না। এটি অ্যাপের উত্তরগুলি যে পথ নেয় তা বদলায়, যা গুরুত্বপূর্ণ যখন অ্যাপ টানেল থেকে বাদ থাকে: অনুরোধ ও উত্তর ভিন্ন নেটওয়ার্ক প্রসঙ্গে পড়তে পারে এবং সংযোগ ফায়ারওয়াল সমস্যার মতো ব্যর্থ হয়।
একটি পথ শুরু থেকে শেষ পর্যন্ত পরীক্ষা করুন, তারপর মালিকের নাম দিন
পরীক্ষার আগে লিখুন: অভীষ্ট উৎস, গন্তব্য ঠিকানা, পরিবহন, পোর্ট এবং শোনা সকেটের মালিক মেশিন। কোনো উপাদান অনুমান হলে পরীক্ষা উপকারী কিছু বলবে না।
তারপর সেই একটি অনুমোদিত পথ অ্যাপের প্রমাণীকরণ অক্ষত রেখে পরীক্ষা করুন। অস্পষ্ট ঠিকানা যাচাইয়ের উত্তর পেতে প্রশস্ত শ্রবণকারী প্রকাশ বা অপ্রাসঙ্গিক নিয়ন্ত্রণ বন্ধ করবেন না, কারণ দুটোই পরীক্ষার পরে থাকে।
Android এর টিথারিং উপব্যবস্থা নিম্নগামী ট্রাফিক নিজের পথে পাঠায়, সাধারণ অ্যাপ VPN ক্যাপচার থেকে আলাদা, তাই সংযুক্ত ল্যাপটপে চলা ব্রাউজার ফোনের সেবায় অন্তর্গামী প্রবেশ সম্পর্কে কিছুই বলে না। কাজ করে বলার আগে:
- শ্রবণকারী অভীষ্ট প্রতিপক্ষের পৌঁছানো যায় এমন ঠিকানায়, লুপব্যাকে নয়।
- প্রতিপক্ষ ওই প্রবেশ বিন্দুর ঠিকানা ব্যবহার করে, অবস্থা পাতার এক্সিট ঠিকানা নয়।
- ক্যারিয়ার বা প্রোভাইডারের দিকে থাকা ম্যাপিং সমর্থিত সুবিধা, স্থানীয়ভাবে যোগ করা নিয়ম নয়।
- অনুরোধ ও উত্তর একই নেটওয়ার্ক প্রসঙ্গ দিয়ে যায়, এবং প্রমাণীকরণ পাস করে।