OpenVPN জানায় ইনিশিয়ালাইজেশন সম্পূর্ণ হয়েছে: প্রম্পট ফিরে আসে না কেন
লগের শেষ লাইনটি প্রোগ্রামের নয়, স্টার্টআপের শেষ বোঝায়। ফোরগ্রাউন্ড ডিবাগিং, সার্ভিস ইউনিট আর ডেমন মোডের মধ্যে বেছে নিন।
শেষ লগ লাইনের পরে টার্মিনাল নীরব হলে কিছুই আটকে যায় না। ফোরগ্রাউন্ড ক্লায়েন্টের জন্য এটাই প্রত্যাশিত রূপ: সে চালু হওয়া শেষ করেছে এবং এখন সেখানেই বসে ট্রাফিক বহন করছে। শেল প্রম্পট দেখতে যতটা সফলতার চিহ্ন মনে হয়, তেমন নয়।
বার্তাটিকে স্টার্টআপ আর স্থির অবস্থার সীমারেখা হিসেবে ধরুন, কারণ সে ঠিক সেটাই নির্দেশ করে।
বার্তাটি প্রক্রিয়ার নয়, স্টার্টআপের শেষ নির্দেশ করে
OpenVPN ডিভাইস খোলা, ইন্টারফেস কনফিগার করা, রুট ইনস্টল করা আর পিয়ারের সঙ্গে TLS বিনিময় শেষ করার পর সেই লাইনটি ছাপে। এরপর প্রক্রিয়াটি চলতে থাকে, কারণ তার কাজ টানেল খোলা রাখা এবং প্যাকেট এগিয়ে দেওয়া। ফোরগ্রাউন্ড প্রোগ্রাম সেই কাজ করতে করতে প্রম্পটে ফিরে যায় না। এরপর নীরব আউটপুট স্বাভাবিক, কারণ ক্লায়েন্ট কেবল কিছু বদলালেই কথা বলে।
লাইনটি দেখা দিলে আর সংযোগ পরে মরে গেলে, সেটি আলাদা ঘটনা, এবং লগ পরে সেটাই জানাবে।
Ctrl+C একটি সিদ্ধান্ত, সমাধান নয়
Ctrl+C চাপলে একটি ইন্টারাপ্ট যায়, যা ক্লায়েন্ট বন্ধ করার অনুরোধ হিসেবে নেয়। প্রম্পট ফিরে আসে, টানেল চলে যায়, এবং এটি ব্যবহার করা যেকোনো সেশন শেষ হয়। এটি অগ্রগতির মতো দেখায় আর আসলে তার উল্টো। লক্ষ্য যদি স্থায়ী সংযোগ হয়, উত্তর হলো প্রক্রিয়াটিকে এমন জায়গায় সরানো যেখানে আপনার টার্মিনাল ছাড়াই চলতে পারে, তাকে বাধা দেওয়া নয়।
ডিবাগ করার সময় এটিকে ফোরগ্রাউন্ডে রাখাই সঠিক, কারণ পরের ত্রুটিগুলো একই উইন্ডোতে দেখা যায়। এক মিনিটের নীরবতা কোনও দিকেই কিছু প্রমাণ করে না; আউটপুট দেখার বদলে টানেল দিয়ে একটা রিসোর্স পরীক্ষা করুন।
বার্তাটি যা প্রমাণ করে না
সম্পূর্ণতা ক্লায়েন্টের নিজের সেটআপ সম্পর্কে একটি স্থানীয় বিবৃতি। এটি বলে না যে অপর প্রান্ত উত্তর দেয়, যে ইনস্টল করা রুটগুলো আপনার প্রয়োজনের সঙ্গে মেলে, বা যে টানেল দিয়ে নাম সমাধান কাজ করে। স্প্লিট টানেল প্রোফাইল পুরোপুরি ইনিশিয়ালাইজ হতে পারে, অথচ কোম্পানির শেয়ার নাগালের বাইরে থাকে, কারণ রুট বা DNS নীতি সেটিকে কখনও ঢাকেনি। সার্ভার-সাইড ইনস্ট্যান্স ক্লায়েন্ট নিতে প্রস্তুত হলে একই ধরনের লাইন ছাপে, যা কোনো ক্লায়েন্ট সংযুক্ত থাকার সমান নয়।
‘সার্ভার চালু হয়েছে’ আর ‘ল্যাপটপটি শেয়ার খুলতে পারে’ দুটি আলাদা জায়গার পর্যবেক্ষণ, আর এগুলো মিশিয়ে ফেললে আপনি ভুল হোস্ট ডিবাগ করতে যান।
টার্মিনাল ছাড়া এটি চালানো
স্থায়ী স্থাপনার জন্য প্ল্যাটফর্ম যে সার্ভিস ব্যবস্থা সমর্থন করে তা ব্যবহার করুন। systemd হোস্টে সেটি openvpn-client@office ইনস্ট্যান্স, প্রোফাইলটি /etc/openvpn/client-এ, রিবুটেও টিকে থাকার জন্য চালু ও সক্রিয় করা। Community OpenVPN --daemon-ও দেয়, --log বা --log-append-এর সঙ্গে, যা প্রক্রিয়াটিকে আলাদা করে আউটপুট ফাইলে পাঠায়। দুই পদ্ধতিই প্রক্রিয়া কীভাবে চলে তা বদলায়; কোনওটিই রুট ঠিক করে না বা দূরের অ্যাপ্লিকেশনকে সুস্থ করে না।
আপনি এমন একটি ইনস্ট্যান্সের পাশে দ্বিতীয়টি চালু করছেন কি না দেখে নিন যা ইতিমধ্যে একটি সার্ভিস পরিচালনা করছে। একই প্রোফিল দাবি করা দুটি ক্লায়েন্ট বিভ্রান্তিকর লগ আর আপনার অনিচ্ছাকৃত একটি টানেল তৈরি করে।
কাজের সঙ্গে মেলে এমন ব্যবস্থা বেছে নিন
রোগনির্ণয়ের জন্য ফোরগ্রাউন্ড, সেশনের পরে টিকতে হবে এমন সবকিছুর জন্য সার্ভিস, আর নির্ভর করার মতো সার্ভিস ম্যানেজার না থাকলে ডেমন মোড। এই তিনটি সাধারণ ক্ষেত্রগুলো ঢাকে, আর প্রত্যেকের থাকার স্পষ্ট কারণ আছে। ভুলে একটি বেছে নেওয়াই ‘উইন্ডো বন্ধ হওয়ার আগ পর্যন্ত কাজ করে’ প্রতিবেদনটি তৈরি করে।
টানেল থাকার কথা হলে, পরে নিশ্চিত করুন যে রিবুটের পর তা ফিরে আসে এবং তার লগ আপনি যে জায়গায় তাকাবেন সেখানে জমা হয়। ইনিশিয়ালাইজেশনের লাইনটিও ওই লগেই দেখা যায়, তখন আর কারও তার জন্য টার্মিনাল দেখার দরকার নেই।