OpenVPN Connect বনাম OpenVPN GUI: Windows প্রোফাইল কোথায় রাখে
দুটি Windows ক্লায়েন্ট, দুটি প্রোফাইল মডেল: GUI একটি ফোল্ডার থেকে .ovpn ফাইল তালিকাভুক্ত করে, Connect একটি আমদানি স্টোর রাখে। তারপর সঠিকভাবে সরান বা আমদানি করুন।
Windows-এ "আমার OpenVPN প্রোফাইল কোথায়" প্রশ্নের দুটি ভিন্ন উত্তর আছে, আর ভুলটি বেছে নিলে একটি দুপুর নষ্ট হয়। কমিউনিটি OpenVPN GUI একটি ডিরেক্টরিকে তার প্রোফাইল তালিকা হিসেবে ধরে: কনফিগার করা ফোল্ডারের প্রতিটি .ovpn ফাইল ট্রে মেনুতে দেখা যায়, আর সেই ফোল্ডার থেকে সরানো ফাইল অদৃশ্য হয়ে যায়। OpenVPN Connect একটি আমদানি স্টোর থেকে কাজ করে, তাই ডিস্ক থেকে আপনি যে প্রোফাইল মুছেছেন সেটি সে রাখে এবং আপনি যে ফাইল কপি করেছেন সেটি উপেক্ষা করে। নিচের তুলনাটিই আমি ব্যবহার করি—কিছু স্পর্শ করার আগে কোন ফোল্ডার খুলব তা ঠিক করতে।
ফোল্ডার তালিকা বনাম আমদানি স্টোর
কমিউনিটি GUI শুরুতে ফাইল গণনা করে: ইনস্টলের সময় বেছে নেওয়া একটি কনফিগারেশন ডিরেক্টরি পড়ে, আর সেখানে থাকা .ovpn ফাইলই একটি প্রোফাইল। ক্লায়েন্ট বন্ধ করুন, সেই ফোল্ডারে একটি ফাইল কপি করুন, আবার চালু করুন—এন্ট্রিটি মেনুতে থাকবে।
Connect বরং আমদানির সময় লেখা রেকর্ড থেকে তার তালিকা তৈরি করে, তাই কপি করা ফাইল অদৃশ্য থাকে, অথচ আমদানি করা প্রোফাইল মূল ডাউনলোড মুছে ফেলার পরেও টিকে থাকে। এই একটিমাত্র পার্থক্যই বেশিরভাগ অভিযোগ ব্যাখ্যা করে যে দুটি ক্লায়েন্ট প্রোফাইল ভিন্ন জায়গায় রাখে, কারণ সত্যিই তা করে।
কমিউনিটি GUI: আসলে কোন ফোল্ডার ব্যবহৃত হচ্ছে
দুটি ফোল্ডার গুরুত্বপূর্ণ। প্রতি-ব্যবহারকারী ইনস্টল %USERPROFILE%\OpenVPN\config পড়ে; সব-ব্যবহারকারী ইনস্টল C:\Program Files\OpenVPN\config, অথবা ক্লায়েন্ট 32-bit হলে x86 পথ পড়ে। কোনো প্রোফাইল যদি কেবল একটি Windows অ্যাকাউন্টে দেখা যায়, তাহলে তা প্রতি-ব্যবহারকারী ফোল্ডারে আছে এবং অন্য অ্যাকাউন্ট কখনও তা দেখবে না।
ইনস্টলার থেকে পথ অনুমান করবেন না। GUI একটি --config_dir আর্গুমেন্ট নেয় এবং যে ডিরেক্টরি দিয়ে শুরু হয়েছিল তা মনে রাখে, তাই একটি শর্টকাট সম্পূর্ণ অন্য জায়গায় নির্দেশ করতে পারে। কোনো ফাইল তৈরির আগে শর্টকাটের টার্গেট ও Start in ফিল্ড, বা GUI সেটিংস দেখুন।
সরানো মানে ফাইল সরানো। আগে GUI বন্ধ করুন যাতে এটি এন্ট্রিটি মেমোরিতে না রাখে, .ovpn-এর পাশে রাখা যেকোনো সার্টিফিকেট বা কী ফাইলসহ সেটি মুছুন, তারপর ক্লায়েন্ট আবার চালু করুন।
সব-ব্যবহারকারী ফোল্ডারে উন্নীত মুছে ফেলা দরকার। সেখানে নীরবে কিছু না করা মোছা UAC, ক্লায়েন্টের বাগ নয়।
Connect: আমদানি স্টোর ও দ্বিগুণ AppData ফাঁদ
বর্তমান 2.x ও 3.x বিল্ড %APPDATA%\OpenVPN Connect\profiles-এর অধীনে প্রোফাইল রাখে। 2.5-এর আশপাশের বিল্ড এর বদলে %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile ব্যবহার করত, তাই পুরোনো ও নতুন ফোরামের উত্তর পরস্পরবিরোধী মনে হয়। জায়গায় আপগ্রেড করা মেশিনে এখনও দুটোই থাকতে পারে।
পথগুলো মুখে বলার সময় বিকৃত হয়। %AppData% আগেই AppData\Roaming-এ রিজলভ হয়, তাই %AppData%\Roaming\OpenVPN Connect\profiles লিখলে তা AppData\Roaming\Roaming-এ প্রসারিত হয় এবং কিছুই নির্দেশ করে না। ভেরিয়েবল বা আক্ষরিক পথ ব্যবহার করুন, দুটোর মিশ্রণ কখনও নয়।
ক্লায়েন্টের মাধ্যমে মুছুন: Profiles খুলুন, পেন্সিল আইকন ব্যবহার করুন, Delete বেছে নিন। এটি রেকর্ড ও সংরক্ষিত কপি একসঙ্গে সরায়। Connect চলাকালীন ফোল্ডার সরালে এমন রেকর্ড থেকে যেতে পারে যা কিছুই খোলে না—এটাই "profile still shows up" অভিযোগের অন্য রূপ।
আমদানি করা কপিটাই ক্লায়েন্ট চালায়। Downloads-এ পড়ে থাকা .ovpn সম্পাদনা করলে কিছুই বদলায় না, কারণ Connect তার সংরক্ষিত কপি পড়ে; remote বা cipher বদলাতে হলে ক্লায়েন্টের ভেতরে প্রোফাইল সম্পাদনা করুন, অথবা ফাইলটি সম্পাদনা করে আবার আমদানি করুন ।
মুছে ফেলা প্রোফাইল কেন ফিরে আসে
একই ক্লায়েন্ট পরিবারের দুটি ইনস্টল সাধারণ কারণ। প্রতি-ব্যবহারকারী GUI ও সব-ব্যবহারকারী GUI-এর আলাদা কনফিগারেশন ডিরেক্টরি থাকে, তাই একটিতে মুছলে অন্যটি অক্ষত থাকে এবং ট্রে এখনও নামটি দেখায়। দুটোই ইনস্টল আছে কিনা তা Programs and Features-এ নিশ্চিত করুন।
দ্বিতীয় কারণ হলো এমন প্রোফাইল যা আপনি যে ফোল্ডার পরীক্ষা করেছেন সেখানে কখনও ছিল না। নেটওয়ার্ক শেয়ার বা Downloads ফোল্ডার থেকে একবার .ovpn খুললে তা প্রতি-ব্যবহারকারী কনফিগ ডিরেক্টরিতে কপি হতে পারে, আর আমদানি করা Connect প্রোফাইল কেবল AppData-তে থাকে। কিছু সম্পাদনার আগে %USERPROFILE% ও %APPDATA% দুটোর অধীনেই ফাইলের নাম খুঁজুন। প্রোফাইল ফোল্ডারে সাধারণত .ovpn-এর পাশে প্রাইভেট কী থাকে, তাই কোন প্রোফাইল সরিয়েছেন তা প্রমাণ করতে ফোল্ডারটি কখনও টিকিট বা চ্যাটে পেস্ট করবেন না—বরং ফাইলের নাম ও টাইমস্ট্যাম্প লিখুন।
পুরোনো GUI বিল্ড ক্লায়েন্ট পছন্দ রেজিস্ট্রিতেও রাখে। ফাইল চলে যাওয়ার পরেও ট্রে নাম দেখালে এবং কেবল একটি ইনস্টল থাকলে, ক্লায়েন্ট একবার পুনরায় চালু করুন এবং রেজিস্ট্রি কী স্পর্শ করার কথা ভাবার আগে শর্টকাটের কনফিগ ডিরেক্টরি আবার যাচাই করুন।
একসঙ্গে দুটি টানেল: আগে অ্যাডাপ্টার, তারপর রুট
GUI একাধিক সংযোগ রাখতে পারে, প্রতিটি ভার্চুয়াল অ্যাডাপ্টারের জন্য একটি; Start মেনুর যে এন্ট্রি TAP-Windows6 ইনস্টল করে তা থেকে অ্যাডাপ্টার যোগ করুন, তারপর Network Connections-এ সংখ্যা নিশ্চিত করুন, কারণ দুটি একসঙ্গে চলা টানেলের জন্য দুটি অ্যাডাপ্টার দরকার এবং দুটোই স্বয়ংক্রিয়ভাবে ঠিকানা নেওয়া উচিত। রাউটিং আরও কঠিন সীমা। যে দুটি প্রোফাইল প্রত্যেকে সব ট্র্যাফিক ঘুরিয়ে দেয় তারা ডিফল্ট রুটের জন্য প্রতিযোগিতা করে, আর কেবল একটি তা মালিকানা নিতে পারে, তাই দুটি কাজ করা টানেলের বদলে মাঝে মাঝে ব্যর্থতা পাবেন। একটি পূর্ণ টানেল রাখুন এবং দ্বিতীয়টিকে এমন split-tunnel প্রোফাইল দিন যা কেবল নিজের সাবনেট পুশ করে।
ওভারল্যাপিং প্রাইভেট রেঞ্জ অ্যাডাপ্টার যোগ করে ঠিক করা যায় না। দুটি সার্ভারই যদি 10.8.0.0/24 দেয়, দ্বিতীয় টানেল ঠিকানা স্তরে সংঘর্ষ করে এবং কোনো ক্লায়েন্ট কনফিগারেশনই তাদের আলাদা করতে পারবে না।
অ্যাডাপ্টারের নামই বলে দেয় আপনি কী দেখছেন। PowerShell-এ Get-NetAdapter TAP-Windows অ্যাডাপ্টার ও Wintun অ্যাডাপ্টার নাম দিয়ে তালিকা করে, যা ভুল অ্যাডাপ্টারে টানেল উঠলে Network Connections-এ আইকন গোনার চেয়ে দ্রুত।
স্ক্রিপ্ট থেকে নামযুক্ত প্রোফাইল শুরু করা
GUI তার কনফিগারেশন ডিরেক্টরির সাপেক্ষে প্রোফাইলের নাম নেয়, তাই লঞ্চার এমন দেখায়: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn"। নিখুঁত পথ, বা ভিন্ন ওয়ার্কিং ডিরেক্টরিতে শুরু করা প্রসেস নীরবে ব্যর্থ হয়, তাই ডাবল-ক্লিকে কাজ করা শর্টকাট Task Scheduler-এর অধীনে ভেঙে যায়।
আশা না করে ওয়ার্কিং ডিরেক্টরি সেট করুন। AutoHotkey লঞ্চারে সেটি SetWorkingDir, C:\Program Files\OpenVPN\config; Task Scheduler-এ সেটি অ্যাকশনের Start in ফিল্ড। একই পথ দিয়ে --config_dir পাঠালে লঞ্চার দুটোরই ওপর নির্ভরশীল থাকে না।
শেষ করার আগে প্রোফাইলটি এক্সপোর্ট করুন, এর অ্যাডাপ্টার, সাবনেট ও যে সাবনেটে রাউট করে তা লিখে রাখুন, এবং প্রতিটি গ্রাহকের সার্টিফিকেট তার নিজের সাবফোল্ডারে রাখুন। তারপর নিশ্চিত করুন যে ফোল্ডারটি আসলে আপনি যে ক্লায়েন্ট চালান তারই, এবং সেই ক্লায়েন্টের আমদানি স্টোর থাকলে ক্লায়েন্টের মাধ্যমে মুছুন। এই ক্রমেই করলে পরের রিবুটের পর একই প্রোফাইল আবার দেখা যাওয়া বন্ধ হয়।