আপনি যখন লিনাক্সে একটি পরিষেবার সাথে সংযোগ করার চেষ্টা করছেন, তখন "হোস্ট করার জন্য কোন রুট নেই" আপনি শুনতে চান এমন শেষ জিনিসগুলির মধ্যে একটি। এটি একটি বিস্তৃত বার্তা যার মানে আপনার কম্পিউটার লক্ষ্য সার্ভারে পৌঁছাতে পারে না, আপনার সিস্টেমে চলমান স্থানীয় সার্ভার ডেমন হোক বা দূরবর্তী সার্ভার যা আপনি যে কোনও কারণে অ্যাক্সেস করতে পারবেন না। এখানে আমরা আপনাকে দেখাবো কিভাবে লিনাক্সে "নো রুট টু হোস্ট" সংযোগ ত্রুটি ঠিক করতে হয়।
আমি কেন "হোস্ট করার জন্য কোন রুট" ত্রুটি পাচ্ছি?
আপনি যে ত্রুটি পেতে পারেন কেন অনেক কারণ আছে. লিনাক্সে নেটওয়ার্কিং একটি কিছুটা জটিল স্ট্যাক যা বেশ জটিল, এবং ফলস্বরূপ, সমস্যাটি ঠিক কোথায় তা নির্ধারণ করা কঠিন।
হোস্ট অফলাইন/পরিষেবা চলছে না
এটি বেদনাদায়কভাবে সুস্পষ্ট বলে মনে হতে পারে, তবে আপনাকে প্রথমে পরীক্ষা করা উচিত যে আপনি যে সার্ভারের সাথে সংযোগ করার চেষ্টা করছেন সেটি এমনকি অনলাইনে রয়েছে। এটি রক্ষণাবেক্ষণের জন্য নামিয়ে নেওয়া হতে পারে বা সমস্যার সম্মুখীন হতে পারে৷
৷পরিষেবা নিজেই শুরু করা যেতে পারে না. যদি এটি আপনার সার্ভার হয়, আপনি পরিষেবাটি শুরু হয়েছে এবং সঠিকভাবে চলছে কিনা তা দেখতে পারেন। Systemd এর সাথে এটি করতে, নিম্নলিখিত কমান্ডটি চালান।
sudo systemctl status SERVICENAME
ভুল পোর্ট
আপনি হয়তো ভুল পোর্টে সংযোগ করার চেষ্টা করছেন। অনেক সিস্টেম অ্যাডমিনিস্ট্রেটর বিভিন্ন পোর্টে SSH-এর মতো সাধারণভাবে টার্গেট করা পরিষেবাগুলি চালানোর জন্য বেছে নেয় যাতে আক্রমণকারীদের বাধা দেওয়া যায়৷
সার্ভারটি আপনার নিজের না হলে, উপলব্ধ ডকুমেন্টেশন দেখুন বা তাদের সহায়তা পরিষেবার সাথে যোগাযোগ করুন৷
৷আপনার নিজের সার্ভারের জন্য, আপনি কোথায় আপনার পরিষেবা শুরু করেছেন তা বের করতে আপনি NMAP ব্যবহার করে দেখতে পারেন৷
sudo nmap -sS your.server.ip
আপনি যদি মনে করেন যে আপনি সত্যিই একটি অস্পষ্ট পোর্ট ব্যবহার করেছেন, আপনি -p-
ব্যবহার করতে পারেন তাদের সব স্ক্যান করতে পতাকা. যদিও একটু সময় লাগবে।
Iptables সংযোগ ব্লক করছে
আপনি ঘটনাক্রমে সেই পোর্টে সংযোগগুলি ব্লক করতে iptables কনফিগার করেছেন। আপনি সার্ভারে বা আপনার ডেস্কটপে iptables কনফিগার করেছেন কিনা আপনি একই বার্তা পাবেন, তাই উভয়ই পরীক্ষা করা মূল্যবান। আপনার iptables নিয়মগুলি দেখতে, নিম্নলিখিত কমান্ডটি চালান৷
৷sudo iptables -S
আপনার DNS ভুলভাবে কনফিগার করা হয়েছে
অন্য সব ব্যর্থ হলে, আপনার ping
করার চেষ্টা করা উচিত আপনি যে আইপি ঠিকানার সাথে সংযোগ করতে চাইছেন। এটি হতে পারে যে আপনার কম্পিউটার সঠিকভাবে একটি DNS সার্ভারের সাথে সংযোগ করছে না৷
ping -c3 your.server.ip
যদি পিং কাজ করে কিন্তু একটি ডোমেন নাম সংযোগ না করে, তাহলে আপনি একটি DNS সমস্যা দেখছেন।
সিস্টেমড ব্যবহারকারীরা systemd-resolve --status
চালাতে পারেন আপনার সিস্টেম যে DNS সার্ভারগুলি ব্যবহার করছে তা পরীক্ষা করতে। এটি ইন্টারফেস দ্বারা বিভক্ত, তাই আপনি যেটির মাধ্যমে সংযোগ করার চেষ্টা করছেন তা পরীক্ষা করে দেখুন৷
বেশিরভাগ ক্ষেত্রেই আপনার কম্পিউটার DHCP-এর উপর প্রাসঙ্গিক DNS তথ্য আবিষ্কার করবে। আপনি যদি স্ট্যাটিক আইপি ব্যবহার করেন বা আপনার নেটওয়ার্কে কিছু ভিন্নভাবে কনফিগার করা হয়, তাহলে আপনাকে আপনার DNS ম্যানুয়ালি সেট করতে হতে পারে।
"/etc/systemd/resolved.conf" খুলুন। সেই ফাইলে, DNS
আনকমেন্ট করুন লাইন এবং হয় আপনার রাউটারের আইপি বা অন্য পরিচিত DNS সার্ভার যোগ করুন। Systemd-এর জন্য ডিফল্ট ফলব্যাক DNS হল Google-এর DNS সার্ভারগুলি FallbackDNS
-এর অধীনে তালিকাভুক্ত .
DNS=192.168.1.1
আপনি যদি OpenRC বা অন্য Systemd বিকল্প ব্যবহার করেন, তাহলে আপনি "/etc/resolv.conf" এ আপনার DNS তথ্য খুঁজে পেতে পারেন৷
nameserver 192.168.1.1
যদি সেখানে কিছু না থাকে, তাহলে আপনার রাউটারের IP ঠিকানা বা অন্য কোনো পরিচিত DNS সার্ভার লিখুন যা আপনি ব্যবহার করতে চান।
পরে, হয় নেটওয়ার্কিং বা আপনার সম্পূর্ণ কম্পিউটার পুনরায় চালু করুন।
GUI উপায়
আপনি যদি নেটওয়ার্ক ম্যানেজারের সাথে একটি গ্রাফিকাল ডেস্কটপ ব্যবহার করেন তবে আপনি আপনার সংযোগের তথ্য সেভাবে সম্পাদনা করতে পারেন। অ্যাপলেট খুলুন বা আপনার সিস্টেম সেটিংস মাধ্যমে যান. আপনার সংযোগ নির্বাচন করুন এবং "IPv4" ট্যাব খুঁজুন। সংযোগটি "ম্যানুয়াল"-এ স্যুইচ করুন এবং ম্যানুয়ালি আপনার কম্পিউটারের IP ঠিকানা এবং গেটওয়ে হিসাবে আপনার রাউটারের IP প্রবেশ করুন৷ তারপর, নীচের DNS ক্ষেত্রে, আপনার রাউটারের IP বা অন্য DNS সার্ভারের IP লিখুন৷
ভুল নেটওয়ার্ক বা হোস্ট কনফিগারেশন
অন্য অনেক কনফিগারেশন অপশন আছে যা ভুল হতে পারে। তাদের যেকোনও সার্ভারের সাথে সংযোগ করা আপনার কম্পিউটারের পক্ষে অসম্ভব করে তুলবে।
প্রথমে নিশ্চিত করুন যে আপনার কম্পিউটারের নেটওয়ার্ক কনফিগারেশন সঠিক। কনফিগারেশন ফাইলগুলি নিজেরাই দুবার চেক করুন এবং অবশ্যই, আপনি অন্য উপায়ে ইন্টারনেটের সাথে সংযোগ করতে পারেন কিনা তা দেখুন৷
আপনি যদি সংযোগের জন্য একটি নির্দিষ্ট হোস্টনাম ব্যবহার করেন বা আপনি সার্ভার বা ক্লায়েন্টে নির্দিষ্ট হোস্ট সেট আপ করে থাকেন তবে আপনাকে নিশ্চিত করতে হবে যে উভয় মেশিন একে অপরের সাথে সংযোগ করতে পারে। “/etc/hosts,” “/etc/hosts.allow,” এবং “/etc/hosts.deny” এর কনফিগারেশন পরীক্ষা করুন।
অবশেষে, আপনার সার্ভার কনফিগারেশন পরীক্ষা করুন. সার্ভারে কিছু ভুলভাবে কনফিগার করা হতে পারে, যা ক্লায়েন্টদের সঠিকভাবে সংযোগ করতে বাধা দেয়।
আশা করি, এই টিপসগুলি ব্যবহার করার ফলে আপনি যে সমস্যাগুলি ঘটছিল তা ঠিক করার অনুমতি দিয়েছে যা "হোস্ট করার জন্য কোন রুট" ত্রুটির কারণ হয়েছিল৷ ইতিমধ্যে, আপনি Linux-এ আপনার Wi-Fi নেটওয়ার্ক নিয়ন্ত্রণ করতে শিখতে পারেন বা আপনার ফায়ারওয়াল কোনো ইনকামিং এবং আউটগোয়িং সংযোগ ব্লক করছে কিনা তা পরীক্ষা করে দেখতে পারেন।