বিমান মোডে VPN Connecting-এ আটকে আছে: আপলিঙ্কটি খুঁজুন
বিমান মোডে Connecting-এ পড়ে থাকা ক্লায়েন্টের হয়তো কোনো আপলিঙ্কই নেই। রেডিওর অবস্থা, অ্যাসোসিয়েশন, পোর্টাল সাইন-ইন আর ব্লকিং নীতি আলাদা করুন।
ফোনে বিমান আইকন দেখাচ্ছে, VPN ক্লায়েন্ট দুই মিনিট ধরে Connecting-এ আছে, আর প্রোফাইল ঠিকই আছে। এক ঘণ্টা আগে একই ভবনে এটি কাজ করছিল। কিছুই ভাঙেনি: VPN হলো অন্য নেটওয়ার্ক বহন করা একটি সংযোগ, আর বিমান মোড সেই বহনকারী নেটওয়ার্কটিই সরিয়ে দিয়েছে। ক্লায়েন্ট বারবার চেষ্টা করে যাচ্ছে, কারণ আপলিঙ্ক ছাড়া সে এটাই করে।
বিভ্রান্তিকর ব্যাপার হলো, বিমান প্রতীক আপনাকে বলে না Wi-Fi আছে কি নেই, আর Connecting বলে না ক্লায়েন্ট প্রমাণীকরণ করছে নাকি শুধু অপেক্ষা করছে। এই দুটি পাঠ আলাদা করুন, রোগনির্ণয়ে এক মিনিট লাগবে।
বিমান প্রতীক রেডিওর রিপোর্ট নয়
সমর্থিত Android ডিভাইসে বিমান মোডে Wi-Fi আর Bluetooth চালু থাকতে পারে, আর ডিভাইস আপনার শেষবারের পছন্দ মনে রাখে। Google-এর Pixel বিমান মোড নির্দেশিকা ঠিক সেই আচরণই বর্ণনা করে। তাই আইকনটির অর্থ শুধু এই হতে পারে যে সেলুলার বন্ধ, আর কিছু নয়।
গ্লিফ নয়, প্রকৃত অবস্থাটি যাচাই করুন। adb shell settings get global airplane_mode_on মোডটির জন্য 0 বা 1 ফেরত দেয়, আর adb shell dumpsys connectivity ডিভাইসের বর্তমান নেটওয়ার্কগুলো তাদের যাচাইকরণ অবস্থাসহ তালিকা করে। এই দুটি আউটপুট একসঙ্গে সেই প্রশ্নের উত্তর দেয় যা আইকন দিতে পারে না।
Wi-Fi বন্ধ থাকলে, বা চালু কিন্তু কিছুতে অ্যাসোসিয়েট না থাকলে, VPN এন্ডপয়েন্ট পর্যন্ত কোনো পথ নেই এবং যতবারই পুনঃসংযোগ করা হোক তা পথ তৈরি করবে না। এই কেসটিই প্রথমে বাদ দেওয়া উচিত, কারণ এটিই একমাত্র কেস যেখানে সঠিক সমাধান VPN অ্যাপের বাইরে।
Connecting আসলে কী বোঝায়
ক্লায়েন্ট একটি সংরক্ষিত প্রোফাইল ধরে রাখতে, তার নাম দেখাতে এবং কোনো কিছুর সঙ্গে যোগাযোগ না করেই একটি স্পিনার দেখাতে পারে। কনফিগারেশন স্থানীয়। টানেল তৈরি করতে প্রয়োজন একটি পৌঁছানোযোগ্য সার্ভার, সম্পূর্ণ হওয়া হ্যান্ডশেক আর রাউট করার একটি ইন্টারফেস। কেবল শেষ অংশটির জন্যই কাজ করা নেটওয়ার্ক দরকার, তাই রেডিও বন্ধ থাকলেও প্রথম দুটি সফল দেখাতে পারে।
সুতরাং স্পিনারটি অন্তত তিনটি ভিন্ন পরিস্থিতির সঙ্গে মেলে: কোনো আপলিঙ্কই নেই, এমন আপলিঙ্ক যা এন্ডপয়েন্টে পৌঁছাতে পারে না, এবং এমন আপলিঙ্ক যা পৌঁছায় কিন্তু প্রমাণীকরণে ব্যর্থ হয়। স্ক্রিনে তারা একই রকম দেখায়, লগে সম্পূর্ণ আলাদা। তাই এসব ক্ষেত্রে প্রথম কাজের উপকরণ হলো লগ, আরেকবার চেষ্টা নয়।
Android-এর নিজস্ব VPN ডকুমেন্টেশন সংযোগ স্থাপন আর আলাদা অলওয়েজ-অন ও ব্লকিং নীতির মধ্যে একই রেখা টানে। এই আলাদা করাই ব্যাখ্যা করে কেন একটি ফোন অফলাইনে সুরক্ষিত দেখাতে পারে অথচ তার কোনো টানেল নেই।
আলাদা করার মতো চারটি অবস্থা
নিচের চারটি অবস্থার নাম দেওয়া উচিত, কারণ স্ক্রিন এদের একইভাবে দেখায়।
| State | What you will see | What to do |
|---|---|---|
| Airplane mode, Wi-Fi off | No networks in dumpsys, VPN retries forever | Turn Wi-Fi on, or accept that the tunnel cannot exist |
| Wi-Fi on, not associated | Interface exists, no default network | Join the access point |
| Associated, not validated | Network listed, captive-portal flag set | Complete the portal sign-in, then reconnect |
| Validated, tunnel down | Internet works, VPN fails or blocks | Debug the tunnel, not the radio |
তৃতীয় সারিটি হোটেল ও বিমানবন্দরে বেশিরভাগ মানুষকে ধরে ফেলে। অ্যাসোসিয়েশন মানেই প্রবেশ নয়: যে পোর্টাল ফোনটিকে ছাড়েনি সে Wi-Fi পাসওয়ার্ড সানন্দে গ্রহণ করবে, তারপর VPN এন্ডপয়েন্টে ট্রাফিক পাঠাতে অস্বীকার করবে। টানেল বন্ধ থাকা অবস্থায় আগে ব্রাউজার দিয়ে সাইন-ইন করাই সাধারণত একমাত্র পথ।
ব্লকিং কেন আরও খারাপ দেখায়
যদি অলওয়েজ-অন VPN আর VPN ছাড়া সংযোগ ব্লক দুটোই চালু থাকে, তবে টানেল না উঠলে প্রতিটি আওতাভুক্ত অ্যাপ ব্লক হয়। এটি ফিচারটির কাজ করা, দ্বিতীয় কোনো ত্রুটি নয়। উপসর্গ একটি অ্যাপ ব্যর্থ হওয়া থেকে সবকিছু ব্যর্থ হওয়ায় বদলে যায়, যা অনেক বড় সমস্যা বলে মনে হয়।
এটি সেই ক্রমটিও ব্যাখ্যা করে যা মানুষ ভুল পড়ে: বিমান মোড চালু, আপলিঙ্ক নেই, অ্যাপ ব্লক, VPN বলছে connecting। ব্লকটিই ছিল নীতির কাজ করা। আপলিঙ্ক পরীক্ষা করতে নীতি বন্ধ করা সেই সুরক্ষাই সরিয়ে দেয় যা আপনি নিশ্চয়ই চেয়েছিলেন, আর আপনাকে কিছুই শেখায় না।
বরং পরিধি যাচাই করুন। কোন অ্যাপ আওতাভুক্ত, কোনগুলো বাদ, আর প্রোফাইলটি ব্যবহারকারীভিত্তিক না ডিভাইসব্যাপী। Wi-Fi দেখা দেওয়ামাত্র VPN অ্যাপ চালু করা একটি ট্রিগার, এটি কোনো গ্যারান্টি নয় যে চালুর আগে কোনো প্যাকেট বের হয়নি।
অনুমান শেষ করা একটি রোগনির্ণয়ের ক্রম
নিচ থেকে উপরে কাজ করুন। মোড নিশ্চিত করুন, নেটওয়ার্ক আছে নিশ্চিত করুন, তা যাচাই হয়েছে নিশ্চিত করুন, তা স্থানীয় সাবনেটের বাইরে কিছুতে পৌঁছাতে পারে নিশ্চিত করুন, আর কেবল তখনই ক্লায়েন্টের দিকে তাকান। adb shell ping -c 3 1.1.1.1 একটি মোটা পরীক্ষা, কিন্তু এটি অনুপস্থিত পথকে টানেল অসন্তুষ্ট থাকা অবস্থায় বিদ্যমান পথ থেকে আলাদা করে।
নেটওয়ার্ক তালিকাভুক্ত থাকা অবস্থায় ping ব্যর্থ হলে সমস্যা VPN-এর আগে, আর কোনো ক্লায়েন্ট সেটিং তা ঠিক করবে না। ping সফল হয়েও টানেল না উঠলে সেই মুহূর্তে ক্লায়েন্টের লগ সংরক্ষণ করুন: ত্রুটিটি টাইমআউট আর প্রমাণীকরণ প্রত্যাখ্যানের পার্থক্য দেখাবে, আর এই দুটির মধ্যে মিল নেই।
শেষ করুন অভীষ্ট অবস্থা ফিরিয়ে এনে: যদি এটি আপনার স্বাভাবিক সেটআপ হয় তবে বিমান মোডে Wi-Fi অনুমোদিত, পোর্টাল সম্পন্ন, আর ব্লকিং নীতি আবার চালু। তারপর একবার পুনঃসংযোগ করুন এবং টানেল নিজে থেকেই উঠছে কি না নিশ্চিত করুন, কারণ যে কনফিগারেশন কেবল হাতে বারবার চেষ্টার পরে কাজ করে তা পরের বুটেই আবার ব্যর্থ হবে।