পোর্টেবল বলতে ইনস্টলারকে বোঝায়, কার্নেলকে নয়। একটি ক্লায়েন্ট USB স্টিকে একক এক্সিকিউটেবল হিসেবে আসতে পারে এবং প্রথম প্যাকেট নড়ার আগেই তবুও একটি টানেল ডিভাইস, একটি রুট টেবিল এন্ট্রি এবং রিজলভারে একটি লেখার প্রয়োজন হতে পারে। লক্ষ্য মেশিন এই তিনটির মধ্যে কোনটি আপনাকে স্পর্শ করতে দেবে তা ঠিক করে সেই বিল্ডটি সেখানে আদৌ কাজ করবে কি না। নিচের পরীক্ষাগুলি প্রশ্নের উত্তর দেয় সেই ক্রমে যেভাবে ক্লায়েন্ট তাদের মুখোমুখি হবে।

পোর্টেবল তিনটি ভিন্ন প্রতিশ্রুতি কভার করে, এবং কেবল একটি বিনামূল্যে

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

ব্যয়বহুল প্রতিশ্রুতিগুলি দ্বিতীয় এবং তৃতীয়। একটি একক এক্সিকিউটেবল যার একটি অ্যাডাপ্টার, একটি রুট বা রিজলভারে লেখার প্রয়োজন, তা অপারেটিং সিস্টেমের কাছে এমন কর্তৃত্ব চায় যা পোর্টেবল লেবেল কখনও ঢাকেনি।

ক্লায়েন্ট যে বিশেষাধিকারপ্রাপ্ত সহায়ককে ডাকবে তা খুঁজুন

প্রায় কোনো VPN ক্লায়েন্ট নিজে প্যাকেট সরায় না। Windows-এ ডেটা পথ WFP ফিল্টার এবং Base Filtering Engine-এর মধ্য দিয়ে যায়, macOS-এ এমন একটি NetworkExtension প্রদানকারীর মধ্য দিয়ে যা ব্যবহারকারী সিস্টেম সেটিংসে অনুমোদন করেন, এবং Linux-এ একটি tun ডিভাইস ও রাউটিং স্ট্যাকের মধ্য দিয়ে যায়। আপনি যে বাইনারি কপি করেছেন তা সেই উপাদানগুলির জন্য একটি নিয়ন্ত্রণ পৃষ্ঠ, তাদের বিকল্প নয়। ক্লায়েন্ট কোন উপাদান প্রত্যাশা করে তা জিজ্ঞাসা করুন, তারপর নিশ্চিত করুন যে এটি ইনস্টল আছে, চলছে এবং আপনার অ্যাকাউন্ট দ্বারা ব্যবহারযোগ্য।

Linux-এ দাবিটি প্রমাণ করা সবচেয়ে সহজ, কারণ পরীক্ষাটি একটি সিস্টেম কল। /dev/net/tun খুলে কার্নেলের কাছে একটি ডিভাইস চাওয়ার জন্য CAP_NET_ADMIN প্রয়োজন, এবং কার্নেল TUN/TAP ডকুমেন্টেশন মালিকানা নিয়ম এবং সামর্থ্য উভয়ই বলে। পরীক্ষাটি সেই অ্যাকাউন্ট দিয়ে চালান যে ক্লায়েন্ট চালু করবে, root হিসেবে নয়।

ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest

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

প্রথম সংযোগের আগে রুট এবং রিজলভার পরিবর্তন পরীক্ষা করুন

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

একটি রুট প্রোবের এমন একটি গন্তব্য প্রয়োজন যা আপনার সত্যিই গুরুত্বপূর্ণ, তাই নিচের প্লেসহোল্ডারের বদলে আপনার নিজের প্রোফাইল থেকে একটি সাবনেট বসান। রুটটিকে কিছুর সাথে যুক্ত হতে ডিভাইসের নামটি থাকতেই হবে।

ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal

প্রথম লাইনটি RTNETLINK answers: Operation not permitted ফিরিয়ে দিলে বোঝায় যে অ্যাকাউন্টটি প্রোফাইল যে ব্যক্তিগত রুটটি চায় তা ইনস্টল করতে পারে না। দ্বিতীয় লাইনটি একই অধিকার উল্টো দিকে প্রমাণ করে, যা গুরুত্বপূর্ণ কারণ যে ক্লায়েন্ট রুট যোগ করতে পারে কিন্তু সরাতে পারে না সে পিছনে একটি ভাঙা টেবিল রেখে যায়। এরপর রিজলভার কোয়েরি দেখায় ব্যক্তিগত নামগুলি টানেলের মধ্য দিয়ে সমাধান হয় নাকি হোস্ট যে রিজলভারকে ইতিমধ্যে বিশ্বাস করে তার কাছে ফাঁস হয়।

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

সেশনটি কী টিকে থাকতে হবে তা ঠিক করুন

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

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

ip -brief addr show
ip route show table main
resolvectl status

দ্বিতীয় ক্যাপচারে উপস্থিত এবং প্রথমটিতে অনুপস্থিত যে কোনো কিছু একটি মালিক প্রয়োজন। হয় ক্লায়েন্ট প্রস্থানের সময় এটি সরায়, অথবা আপনি এটি সেই একই কমান্ড দিয়ে সরান যা এটি তৈরি করেছিল, এবং সেই অপসারণটি কী ঘটেছিল সে সম্পর্কে কারও স্মৃতিতে নয়, স্থাপনার নোটে থাকা উচিত। Windows-এ সমতুল্য পাঠগুলি হল Get-NetAdapter, Get-NetRoute এবং Get-DnsClientServerAddress, যেগুলির উন্নতির প্রয়োজন নেই কিন্তু একই অবশিষ্টাংশ দেখায়।

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