পুরোনো অ্যাপটি নেই, অথচ স্প্লিট-টানেল তালিকায় এখনও তার একটি এন্ট্রি আছে। দৃশ্যত কিছুই ভাঙে না, তাই এটি মাসের পর মাস সেখানেই থাকে। তারপর কেউ একই ফোল্ডারে অন্য একটি প্রোগ্রাম ইনস্টল করে, অথবা কোনো ম্যানেজড প্রোফাইল প্রতিবার পুনঃসংযোগে নিয়মটি পুনরুদ্ধার করে, আর ট্রাফিক এমন পথে যেতে শুরু করে যা কেউ পরিকল্পনা করেনি। বাদ দেওয়াটি তার কারণের চেয়ে বেশি দিন টিকে গেল।

এটি পরিষ্কার করা মূলত পরিচয় নিয়ে: নিয়মটি এখন কীসের দিকে নির্দেশ করে, এবং তালিকাটির মালিক কে।

উপসর্গ: এমন বাদ দেওয়া যা কিছুর সঙ্গে মেলে না

পুরোনো এন্ট্রিটি স্বাভাবিক ব্যবহারে অদৃশ্য থাকে। এটি তিনভাবে দৃশ্যমান হয়: যে অ্যাপটি টানেলের মধ্য দিয়ে যাবে বলে আপনি আশা করেছিলেন সেটি সরাসরি যায়, নতুন কোনো প্রোগ্রাম পুরোনো ব্যতিক্রম উত্তরাধিকারসূত্রে পায়, অথবা ম্যানেজড প্রোফাইল সেটি উপর লিখে দেওয়ায় ক্লায়েন্ট সম্পাদনা সংরক্ষণ করতে অস্বীকার করে। তিনটিই আলাদা বাগের মতো দেখায়, আর তিনটিই আসলে একই হিসাবরক্ষণের সমস্যা। প্রতিটির যাচাই সস্তা, কিন্তু ভুল রোগনির্ণয় ব্যয়বহুল।

নিয়মটি মুছে ফেলার বদলে পড়ে দেখা দিয়ে শুরু করুন।

নিয়মটি কী শনাক্ত করে তা জেনে নিন

স্প্লিট-টানেল বাস্তবায়নগুলো বিভিন্ন জিনিসের উপর বাদ দেওয়া নির্ভর করে: একটি এক্সিকিউটেবল পাথ, একটি প্যাকেজের নাম, একটি বান্ডেল আইডেন্টিফায়ার বা একটি রুট। পাথভিত্তিক নিয়ম এমন একটি ফাইলের দিকে নির্দেশ করে যা আর নাও থাকতে পারে, বা এখন ভিন্ন কোনো ফাইল হতে পারে। প্যাকেজভিত্তিক নিয়ম এমন একটি পরিচয়ের দিকে নির্দেশ করে যা নতুন ইনস্টল পুনরায় ব্যবহার করতে পারে। আপনি যে ক্ষেত্রটি দেখছেন সে সম্পর্কে ক্লায়েন্টের ডকুমেন্টেশন পড়ুন, কারণ একই টেক্সট বাক্স বিভিন্ন পণ্যে ভিন্ন অর্থ বোঝায়। প্যাকেজভিত্তিক ক্ষেত্রে Android-এর VpnService গাইড হলো রেফারেন্স।

প্রদর্শিত নামটি এন্ট্রির সবচেয়ে অবিশ্বস্ত অংশ, আর মানুষ ঠিক সেই অংশটিই পড়ে।

পাথের নিয়ম ও প্যাকেজের নিয়ম ভিন্নভাবে আচরণ করে

আনইনস্টলের পরেও টিকে থাকা পাথের নিয়ম সাধারণত নিষ্ক্রিয় হয়ে যায়, আর নিষ্ক্রিয় হওয়াই ভালো ফল। খারাপ ফল হলো এমন পাথ যা পুনরায় ব্যবহৃত হয়, কারণ নতুন এক্সিকিউটেবলটি নিঃশব্দে ব্যতিক্রমটি উত্তরাধিকারসূত্রে পায়। প্যাকেজের নিয়ম আবার ভিন্নভাবে আচরণ করে: কোনো পণ্য অনুপলব্ধ প্যাকেজ উপেক্ষা করতে পারে, প্রত্যাখ্যান করতে পারে, অথবা নতুন কিছু ওই নাম দাবি করলে নাম দিয়েই মেলানো চালিয়ে যেতে পারে।

এক ক্লায়েন্টের অনুমান অন্য ক্লায়েন্টে বহন করবেন না। অনুপস্থিত লক্ষ্যের সঙ্গে আপনার ক্লায়েন্টটি আসলে কী করে তা যাচাই করুন, আদর্শভাবে একটি পরীক্ষা মেশিনে পরিস্থিতিটি ইচ্ছাকৃতভাবে তৈরি করে এবং কোন প্রক্রিয়া ব্যতিক্রমটি উত্তরাধিকারসূত্রে পায় তা দেখে।

মালিকের মাধ্যমে এটি সরান

তালিকাটি কোনো ম্যানেজড প্রোফাইল থেকে এলে, এটি স্থানীয়ভাবে সম্পাদনা করা একটি সাময়িক পরিবর্তন যা পরবর্তী পুনঃসংযোগে পুনরুদ্ধার হবে। প্রোফাইলটি পরিবর্তন করুন, বা যার মালিকানা আছে তাকে জিজ্ঞাসা করুন, এবং সম্পাদনাটি পুনঃসংযোগের পরেও টেকে কি না নিশ্চিত করুন। তালিকাটি স্থানীয় হলে, এন্ট্রিটি সরান এবং দেখুন ক্লায়েন্টটি পুরোনোটি মেমরিতে রাখার বদলে তার কনফিগারেশন নতুন করে লিখেছে কি না।

খালি তালিকা লক্ষ্য নয়। লক্ষ্য হলো এমন তালিকা যার এন্ট্রিগুলো এখনও বাস্তব চাহিদার সঙ্গে মেলে।

এরপর দুই দিকই পরীক্ষা করুন

পরিষ্কারের পর এমন একটি অ্যাপ পরীক্ষা করুন যা এখনও বাদ থাকা উচিত, এবং এমন একটি অ্যাপ যা এখন টানেলের মধ্য দিয়ে যাওয়া উচিত। DNS-এর আচরণ আলাদাভাবে যাচাই করুন, কারণ রিজলভার নীতি বাদ দেওয়ার তালিকা থেকে ভিন্ন একটি নিয়ন্ত্রণ। তারপর একবার পুনঃসংযোগ করে আবার পরীক্ষা করুন, কারণ পুনরুদ্ধার হওয়া প্রোফাইলই হলো সবচেয়ে সাধারণ উপায় যাতে একটি পরিষ্কার-পরিচ্ছন্নতা চুপচাপ নিজেই বাতিল হয়ে যায়।

প্রতিটি অবশিষ্ট ব্যতিক্রমের পাশে এক লাইনের উদ্দেশ্য রাখুন। সেই লাইনটিই তালিকাটিকে জাদুঘরে পরিণত হওয়া থেকে আটকায়, আর পরবর্তী পরিষ্কারকে পাঁচ মিনিটের কাজ বানিয়ে দেয়।

সম্পর্কিত নিবন্ধ