OpenVPN চালু হলো কিন্তু কিছু ছাপল না: আগে log-append দেখুন
হাতে চালু করলে নীরবতা মানে ব্যর্থতা নয়। লোড হওয়া প্রোফাইলে log ও log-append পড়ুন, তারপর ফাইল ও তার সময়কে প্রক্রিয়ার সঙ্গে মেলান।
আপনি কনফিগারেশন ফাইল দিয়ে শেল থেকে OpenVPN চালু করেন, আর টার্মিনাল কোনো আউটপুট ছাড়াই বসে থাকে। কোনো ব্যানার নেই, কোনো ত্রুটি নেই, কোনো প্রম্পট নেই। সহজাত প্রবৃত্তি বলে চালু করা ব্যর্থ হয়েছে, তাই আপনি আরেকটি অনুলিপি চালু করেন, তারপর আরও একটি, আর মেশিনে কয়েকটি অর্ধ-কনফিগার করা ইনস্ট্যান্স থেকে যায়। এসবের আগে প্রোফাইলে এমন নির্দেশনা খুঁজুন যা ইতিমধ্যে লগকে অন্য কোথাও পাঠিয়েছে। নীরবতা কনসোলের বৈশিষ্ট্য, প্রক্রিয়ার নয়।
নীরবতার দুটি সম্পূর্ণ ভিন্ন ব্যাখ্যা আছে
প্রথমটি হলো প্রক্রিয়াটি ঠিকঠাক চলছে এবং এমন ফাইলে লিখছে যা আপনি দেখছেন না। দ্বিতীয়টি হলো এটি সেই একই ফাইলে লিখিত ত্রুটি নিয়ে সঙ্গে সঙ্গে বেরিয়ে গেছে।
দুটিই একটি খালি টার্মিনাল রেখে যায়, আর একটি প্রশ্ন তাদের আলাদা করে: এখন কোনো প্রক্রিয়া আছে কি, এবং যে ফাইলে লিখতে বলা হয়েছিল তাতে কী আছে। আবার কনফিগারেশনে হাত দেওয়ার আগে এর উত্তর দিন। আউটপুট পেতে পুনরায় চালু করাই দুটি ইনস্ট্যান্সকে একটি টানেল ডিভাইস ও একই পোর্ট নিয়ে লড়তে বাধ্য করে, যা মূল সমস্যার সঙ্গে সম্পর্কহীন ত্রুটি তৈরি করে।
নির্দেশনাটি খুঁজুন, তারপর প্রক্রিয়াটি খুঁজুন।
ps -o pid,args= -C openvpn
grep -nE '^\s*(log|log-append|cd|daemon|verb)\b' /etc/openvpn/server/server.conf
চলমান প্রক্রিয়া যে গন্তব্য ব্যবহার করে তা খুঁজুন
প্রক্রিয়াটি আসলে যে প্রোফাইল দিয়ে চালু হয়েছিল তা পড়ুন, আপনি যেটি সম্পাদনা করেছেন সেটি নয়। পরিষেবা-পরিচালিত ইনস্ট্যান্স সাধারণত ভিন্ন পথ লোড করে এবং ভিন্ন কার্যডিরেক্টরিতে চলে, তাই আপেক্ষিক ফাইলের নাম এমন জায়গায় সমাধান হয় যা আপনি আশা করেননি।
স্পষ্ট cd নির্দেশনা এই পার্থক্যকে আরও তীক্ষ্ণ করে, কারণ আপেক্ষিক পথ ডিরেক্টরি পরিবর্তনের সঙ্গে সরে যায়। আপনি যদি এই কনফিগারেশন উত্তরাধিকারে পান, ফাইলটি এমন জায়গায় থাকতে পারে যেখানে এখন কেউ খুঁজবে না।
ফাইলের পরিবর্তনের সময় আপনার চালুর মুহূর্তের সঙ্গে মিলিয়ে দেখুন। গত সপ্তাহের লগ গত সপ্তাহের প্রমাণ। তারপর যে ফাইলটি বদলেছে তার শেষ লাইনগুলো পড়ুন, আর সেখানে যা আছে তা আপনার মিস করা স্টার্টআপ বার্তা হিসেবে ধরুন।
log বনাম log-append: প্রমাণ ও মুছে ফেলা
log-append ফাইলে যা আছে তার সঙ্গে যোগ করে। log ফাইলটি লেখার জন্য খোলে এবং তা কেটে দেয়, তাই দুটির মধ্যে বদল করলে যে চালানোটি আপনি পড়তে যাচ্ছিলেন তা মুছে যেতে পারে।
কেউ যদি ডিবাগ করার সময় নির্দেশনাটি বদলে দেয়, আগের প্রমাণ ইতিমধ্যে চলে গেছে এবং ফাইলের আকার সন্দেহজনকভাবে ছোট দেখাবে। দুটি চালানো তুলনা করে কিছু বদলেছে বলে সিদ্ধান্ত নেওয়ার আগে এটি জানা ভালো। লগ ইচ্ছাকৃতভাবে মুছুন, বা রাখুন, তবে আপনি কোনটি করলেন তা জানুন। ইচ্ছাকৃতভাবে সরানো প্রমাণ দুর্ঘটনায় হারানো প্রমাণের চেয়ে সহজে ব্যাখ্যা করা যায়।
দুটির কোনোটিই অনুপস্থিত মূল ডিরেক্টরি তৈরি করে না, আর কোনোটিই ফাইলসিস্টেম অনুমতি বা পরিষেবা স্যান্ডবক্সের মাধ্যমে প্রবেশাধিকার দেয় না। কনফিগারেশনে সঠিক দেখানো একটি পথ এখনও যে অ্যাকাউন্টে ডিমন চলে তার জন্য অলেখযোগ্য হতে পারে, তখন ডিমন কিছু জানানোর আগেই ব্যর্থ হতে পারে। ফাইলের নামটাই সমস্যা ধরে নেওয়ার আগে ডিরেক্টরিটি আছে কি না এবং তার মালিক কে তা দেখুন।
যখন পরিষেবা মোড়ক আউটপুট ধরে নেয়
systemd-এর অধীনে স্ট্যান্ডার্ড আউটপুট ও ত্রুটি জার্নালে যায়, যদি না স্পষ্ট ফাইল নির্দেশনা অগ্রাধিকার পায়, আর ভেন্ডর মোড়ক সেগুলো সম্পূর্ণ অন্য জায়গায় ধরে নিতে পারে।
এই কারণেই একই প্রোফাইল শেল থেকে ও ইউনিট থেকে ভিন্ন আচরণ করে। ইউনিটের পরিবেশ, তার কার্যডিরেক্টরি ও তার স্ট্যান্ডার্ড স্ট্রিম আপনার ইন্টারঅ্যাকটিভ শেল থেকে আলাদা। একটি আপেক্ষিক পথ এক প্রেক্ষাপটে সমাধান হতে পারে আর অন্যটিতে কোথাও না পৌঁছাতে পারে। দুটি যখন মেলে না, প্রোফাইল নয়, ইউনিটের সংজ্ঞা পড়ুন।
একটি ভেঙে গেছে বলে সিদ্ধান্ত নেওয়ার বদলে দুটি চালুর ব্যবস্থা তুলনা করুন। ইউনিটের কমান্ড লাইন ও তার পরিবেশ পড়ুন, তারপর একই সময়সীমার জার্নাল পড়ুন। মোড়ক যদি আউটপুট নিজের ফাইলে পাঠায়, সেই ফাইলই এখন আপনার লগ, আর বার্তাগুলো কোথায় গেল তা নিয়ে OpenVPN নির্দেশনাগুলো অপ্রাসঙ্গিক।
পড়তে পারার পরেই শব্দবাহুল্য বাড়ান
গন্তব্য খোঁজার আগে শব্দবাহুল্য বাড়ালে শুধু এমন জায়গায় বেশি লেখা তৈরি হয় যা আপনি দেখছেন না।
আউটপুট কোথায় পড়ে তা জানার পর, মাঝারি মাত্রা দেখায় প্রোফাইল পার্স হচ্ছে ও সংযোগের চেষ্টা হচ্ছে। স্টার্টআপ সমস্যার জন্য দুই বা তিন যথেষ্ট। উচ্চতর মাত্রা তখনই মূল্যবান যখন ব্যর্থতা আলোচনার সূক্ষ্ম বিবরণ, আর সেগুলো ফাইলকেও দ্রুত বাড়ায়।
তারপর প্রকৃত ত্রুটিটি পড়ুন। নীরব টার্মিনাল টানেল উঠল কি না তা প্রমাণ করে না, আর ফাইলে লিখিত ব্যর্থতাই ঠিক করার যোগ্য।