VPN অ্যাপ সরানোর পরে Ubuntu-তে ইন্টারনেট নেই
পরিষ্কার করা VPN ক্লায়েন্ট NetworkManager প্রোফাইল ও একটি ডামি ইন্টারফেস রেখে যেতে পারে। ওই অনাথ জিনিসগুলো একটি ডিফল্ট রুট বা ফায়ারওয়াল নীতি চালু রাখে।
VPN ক্লায়েন্ট আনইনস্টল করা, রিবুট করা, তারপর ব্রাউজার কিছুই লোড করতে পারছে না দেখতে পাওয়া Ubuntu-তে একটি সাধারণ ঘটনাক্রম। টানেল চলে গেছে, কিন্তু যে নীতি ট্রাফিককে তার দিকে পাঠাত তা যায়নি, আর Ubuntu-তে ওই অবশিষ্টাংশ সাধারণত প্যাকেজে নয়, NetworkManager-এ থাকে। চালুর সময় তৈরি একটি সংযোগ প্রোফাইল ও ডামি ইন্টারফেস কোনো প্যাকেজের নয়, তাই প্যাকেজ সরালে সেগুলো সরে না।
টানেল নেই, নীতি আছে
একটি কিল সুইচ টানেল ছাড়া নেটওয়ার্ক অচল করে কাজ করে। ক্লায়েন্ট সরানো হলে যখন সেই অবস্থা সক্রিয়, তখন তা বন্ধ করার কেউ থাকে না। ফলটি দেখতে হুবহু নষ্ট নেটওয়ার্ক অ্যাডাপ্টারের মতো, আর সাধারণত এটি রুট ধরে রাখা একটি প্রোফাইল।
এই কারণেই পুনরায় ইনস্টল কখনো সংযোগ ফিরিয়ে দেয়: এটি সেই প্রক্রিয়াটি নতুন করে তৈরি করে যা নিজের নীতি ফিরিয়ে নিতে জানে। যে ক্লায়েন্ট সরানো হয়েছে তার সুইচ সক্রিয় থাকা অবস্থায়, সে এমন অবস্থা রেখে গেছে যা পরিষ্কার করার কেউ নেই।
প্যাকেজ যে বস্তুগুলোর মালিক ছিল না সেগুলো পড়ুন
পরিবর্তনের আগে অবস্থাটি পড়ুন। ডিভাইস, সক্রিয় সংযোগ ও দুটি রাউটিং টেবিল তালিকাভুক্ত করুন, তারপর এমন ডামি ডিভাইস খুঁজুন যা সংযুক্ত বলে জানায় বা তার দিকে নির্দেশ করা ডিফল্ট রুট খুঁজুন। IPv4 ও IPv6 আলাদাভাবে ব্যর্থ হয়, তাই নাম রেজোলিউশন নষ্ট থাকা ঠিকানায় সফল ping মৃত রুটের চেয়ে ভিন্ন বস্তুকে নির্দেশ করে। ডিফল্ট রুট ধরে রাখা একটি ডামি ডিভাইস একাই পুরো বিভ্রাট ব্যাখ্যা করে।
nmcli device status
nmcli connection show --active
ip -4 route
ip -6 routeযা পান লিখে রাখুন, কারণ সমাধান হলো একটি নির্দিষ্ট বস্তু মুছে ফেলা, সব কিছু রিসেট করা নয়। এর চেয়ে বড় যেকোনো পদক্ষেপ দ্বিতীয় বিভ্রাটির ঝুঁকি নেয়। এটাই মেরামত আর অনুমানের পার্থক্য।
সংযুক্ত ডিভাইসসহ খালি রাউটিং টেবিল ভিন্ন ত্রুটি, আর এটি অবশিষ্ট প্রোফাইলে নয়, DHCP-তে নির্দেশ করে। কিছু সম্পাদনার আগে লিজটি পড়ুন।
প্রোফাইল মুছুন, কীফাইল নয়
কীফাইল সরানোর বদলে NetworkManager দিয়ে প্রোফাইলটি মুছুন। ফাইলটি মুছলে ইন-মেমরি প্রোফাইল পরের রিস্টার্ট পর্যন্ত সক্রিয় থাকে, যা সঠিক মেরামতকে অবিশ্বাস্য দেখায়। তারপর সার্ভিসটি রিস্টার্ট করুন এবং ডিভাইস তালিকা আবার পড়ুন। রিস্টার্টই মুছে ফেলাকে বাস্তব করে।
sudo nmcli connection delete pvpn-killswitch
sudo systemctl restart NetworkManagerযদি ডামি লিংক টিকে থাকে, সেই লিংকও সরান, তারপর ঠিকানা ও নাম আলাদাভাবে পরীক্ষা করুন। পরিষ্কার রাউটিংয়ের সঙ্গে ব্যর্থ নাম DNS-কে নির্দেশ করে, আর ব্যর্থ ঠিকানা রুট বা ফায়ারওয়ালকে।
পুনরাবৃত্তির আগে বুট-সময়ের হুক পরীক্ষা করুন
কিছু অবশিষ্টাংশ প্রতি বুটে নিজেদের পুনরায় ইনস্টল করে। হাতে লেখা ইউনিট বা ফায়ারওয়াল নিয়ম যোগ করা if-up স্ক্রিপ্ট প্যাকেজ চলে যাওয়ার পরেও তা করে, তাই বিভ্রাট ফিরে আসে আর আগের মেরামত ভাগ্য বলে মনে হয়। আবার রিবুট করার আগে ইউনিট ফাইল ও নেটওয়ার্ক হুক খুঁজুন। ইউনিটের নামই সাধারণত সূত্র দেয়।
systemctl list-unit-files | grep -i vpn
grep -rl -i vpn /etc/systemd/system /etc/network/if-up.dনির্দিষ্ট ফাইলটি সরান বা মাস্ক করুন, তারপর একবার রিবুট করুন এবং নিশ্চিত করুন যে টানেল-মুক্ত অবস্থাই আপনি চান। শেষ রিবুটটাই পরীক্ষা, কারণ যে সমাধান কেবল পরের বুট পর্যন্ত টেকে তা সমাধান নয়। পরে নোটটি মেশিনের সঙ্গে রাখুন। nmcli রেফারেন্স উপরে ব্যবহৃত ডিভাইস ও সংযোগ কমান্ডগুলো কভার করে।