আপনি হয়তো মনে করেছেন होंगे কিছু Windows 8 অ্যাপ (Metro apps) ইন্টারনেট দেখছে না (সার্ভারের সাথে সংযোগ ব্যর্থ, ইত্যাদি) যখন নির্দিষ্ট ধরনের VPN সংযোগ ISP-র সাথে ব্যবহার করা হয়। যাইহোক, সাধারণত এই সমস্যা সব Metro অ্যাপে হয় না। অর্থাৎ, কিছু অ্যাপ কাজ করে (সাধারণত স্ট্যান্ডার্ড Metro অ্যাপগুলো), আর কিছু করছে না। একই সাথে ক্লাসিক Windows অ্যাপ্লিকেশনগুলো ইন্টারনেটের সাথে কোনো সমস্যা ছাড়া কাজ করে।
আপনি যদি কম্পিউটারের আগে একটি হার্ডওয়ার রাউটার রাখেন যা প্রদানকারীর সাথে VPN সংযোগ শুরু করে, তাহলে সমস্যাটি হয় না। এর মানে হলো সমস্যাটি শুধুমাত্র Windows 8-এ হয় যেটি নিজে VPN টানেল সেট আপ করতে হয়।
এই সমস্যা পুরনো, কিন্তু এখনও Microsoft-এর কোনো অফিসিয়াল সমাধান নেই (কমপক্ষে আমি খুঁজে পাইনি)। এই আর্টিকেলে আমরা যেন কেন এটি হয় এবং কীভাবে সমাধান করা যায় তা আলোচনা করব।
আপনি জানেন, Modern Windows 8 Apps ক্লাসিক Windows অ্যাপ থেকে আলাদা। এই প্রসঙ্গে, আমাদের যে বিষয়টি আকর্ষণ করলো তা হলো এগুলো একটি পৃথক পরিবেশে চলেছে যেখানে loopback কম্পিউটার ইন্টারফেসে অ্যাক্সেস ডিফল্টভাবে নিষিদ্ধ। যেহেতু সব টানেল ইন্টারফেস (pptp, l2tp, pppoe), যারা VPN ব্যবহার করে, loopback ইন্টারফেস, অধিকাংশ Metro Apps নেটওয়ার্ক ট্রাফিক সেগুলোতে পাঠাতে পারে না, এবং ফলস্বরূপ ইন্টারনেট অ্যাক্সেস করতে পারে না। একই কথা লোকাল প্রক্সি সার্ভারের জন্যও প্রযোজ্য (সরল অ্যাড রিমুভার যেমন Privoxy থেকে পূর্ণাঙ্গ প্রক্সি সার্ভার পর্যন্ত)।
একটি Metro অ্যাপকে পূর্ণ নেটওয়ার্ক অ্যাক্সেস দেওয়ার জন্য APPX মেনিফেস্টে privateNetworkClientServer যোগ করতে হয়। Visual Studio-এ অ্যাপ্লিকেশন ডেভেলপ করার সময় এই অ্যাক্সেস সক্রিয় থাকে, কিন্তু অ্যাপটি Windows Store-এ পাবলিশ হওয়ার পর ডেভেলপারকে মেনিফেস্ট ফাইলে ম্যানুয়ালি এই ফিচার সক্রিয় করতে হয়।
যেহেতু Windows-এ টানেল ইন্টারফেসগুলো loopback, আপনাকে বা ডেভেলপারদের অ্যাপ মডিফাই করার জন্য বলতে হবে অথবা Metro Apps সঠিকভাবে কাজ করানোর জন্য একটি ওয়ার্কঅরাউন্ড সমাধান ব্যবহার করতে হবে।
ওয়ার্কঅরাউন্ড বাস্তবায়নের জন্য আমরা একটি ফ্রি HTTP/HTTPS প্রক্সি সার্ভার Fiddler ব্যবহার করব, যা ওয়েব অ্যাপ ডিবাগিং এবং কম্পিউটার ও ইন্টারনেট সার্ভারের মাঝপথে সকল HTTP ট্রাফিক ইন্সপেক্ট করার জন্য তৈরি (বিশেষ করে, এটি Windows Store থেকে যেকোনো Metro অ্যাপের APPX ইনস্টলেশন ফাইলের সরাসরি ডাউনলোড লিংক পাওয়ার জন্য ব্যবহার করা যায়)।
- Fiddler Web Debugger এই ওয়েবপেজ থেকে ডাউনলোড করুন (https://www.telerik.com/download/fiddler)। Windows 8 বা তার পরের সংস্করণের জন্য Fiddler for .Net 4 দরকার। (ধরে নেওয়া হয়েছে আপনার কম্পিউটারে .NET v4 Framework ইনস্টল করা আছে)
- স্ট্যান্ডার্ড সেটিংস দিয়ে Fiddler ইনস্টল করুন।
- ডিফল্টভাবে Modern Apps Fiddler দিয়ে ডিবাগ করা যাবে না, কারণ এটি আপনার কম্পিউটারে একটি লোকাল প্রক্সি সার্ভার হিসেবে কাজ করে (Metro Apps ডিফল্টভাবে লোকাল প্রক্সি ইন্টারফেসের মাধ্যমে ট্রাফিক পাঠাতে পারে না)। আপনি Fiddler এক্সটেনশন — Windows 8 AppContainer Loopback Utility (enableloopbackutility.exe) ব্যবহার করে প্রোগ্রাম কন্টেইনার AppContainers-এ একটি নির্দিষ্ট Metro অ্যাপের জন্য এই সীমাবদ্ধতা (Loopback Restriction) সরাতে পারেন। এই এক্সটেনশন ডাউনলোড ও ইনস্টল করুন।
- ইউটিলিটিগুলো ইনস্টল হলে Fiddler চালু করুন এবং Tools মেনুতে Win8 Loopback Exemptions সিলেক্ট করুন (টুলবারের প্রথম Windows 8 বাটনে ক্লিক করেও একই কাজ করা যায়)।
- পরবর্তী ধাপ করার আগে নিশ্চিত হন যে আপনার VPN প্রতিষ্ঠিত হয়েছে (অথবা লোকাল প্রক্সি সার্ভার চালু আছে)।
- Windows 8 Metro অ্যাপগুলো সিলেক্ট করুন যাদের ট্রাফিক Fiddler-এর মাধ্যমে যাবে এবং loopback অ্যাক্সেস সীমাবদ্ধতা সরানো হবে। আপনি যদি সব অ্যাপ সিলেক্ট করতে চান, Exempt All ক্লিক করুন এবং কনফিগারেশন সেভ করুন (Save Changes)।
টিপ. আপনি দেখতে পাচ্ছেন, এই উইন্ডোতে বলা হয়েছে সিকিউরিটি এবং विश्वস্ততার কারণেই Windows Metro অ্যাপগুলাকে লোকাল কম্পিউটারে নেটওয়ার্ক ট্রাফিক পাঠানো থেকে ব্লক করে। AppContainer Loopback Exemption Utility ডিবাগিং ও টেস্টের জন্য এই সীমাবদ্ধতা নিষ্ক্রিয় করে। - Fiddler মিনিমাইজ করুন (বন্ধ করবেন না!) এবং Metro অ্যাপগুলো থেকে নেটওয়ার্ক অ্যাক্সেস চেক করুন।
Fiddler কিছু অসুবিধার কারণে কর্পোরেট পরিবেশে প্রোডাক্টিভ ব্যবহার উপযোগী নয়। কিন্তু VPN কনফিগারেশনে Metro অ্যাপlarla কাজ করার একটি ওয়ার্কঅরাউন্ড সমাধান হিসেবে এটি কাফি উপযোগী।
তাহলে, আমরা দেখেছি কীভাবে Fiddler ব্যবহার করে যেকোনো VPN সংযোগ বা লোকাল প্রক্সি সার্ভারের মাধ্যমে Metro অ্যাপগুলকে ইন্টারনেট অ্যাক্সেস দেওয়া যায়।