( এসএফ-তে আমার একটি উত্তর থেকে অনুলিপি করা হয়েছে )
hostnameকমান্ড DNS এবং থেকে ফলাফল ফেরৎ /etc/hosts।
hostnameএটি সমতুল্য uname -nএবং বাক্সটির আসল "হোস্টনাম" বা "নডনাম"।
অন্যান্য সমস্ত hostnameযুক্তি তথ্য সন্ধান করার জন্য এই নডনামটি ব্যবহার করে।
সুতরাং আর কোনও আগে যাওয়ার আগে আমার /etc/hostsফাইল ফর্ম্যাটটি ব্যাখ্যা করা উচিত ।
প্রথম ক্ষেত্রটি মোটামুটি সুস্পষ্ট, এর আইপি ঠিকানাটি লাইনের সমস্ত হোস্টনামে সমাধান করা উচিত। দ্বিতীয় ক্ষেত্রটি সেই আইপির প্রাথমিক হোস্টনাম। বাকী ক্ষেত্রগুলি উপাধিগুলি।
সুতরাং আপনি যদি hostname -fএটি চালনা করেন তবে প্রথমে আপনার নোটনামের জন্য আইপি সমাধান করার চেষ্টা করবে। এই পদ্ধতিতে আপনার hosts:কনফিগার করা এন্ট্রি কীভাবে নির্ভর /etc/nsswitch.confকরবে।
- আপনার যদি এটি
/etc/resolv.confডিএনএস ব্যবহারের জন্য কনফিগার করা থাকে তবে এটি ডিএনএস থেকে কোনও আইপি ফিরে না পাওয়া পর্যন্ত এটি কনফিগার করা অনুসন্ধান ডোমেনগুলি ব্যবহার করবে ।
- যদি আপনি এটি ফাইল ব্যবহার করতে কনফিগার করেছেন তবে এটি
/etc/hostsএমন একটি লাইন সন্ধান করবে যেখানে প্রাথমিক হোস্টনাম বা উপনামের নামটি আপনার বর্তমান নডনাম ( uname -n), এবং তারপরে সেই লাইনে আইপি ঠিকানাটি ফিরিয়ে দেবে।
এটির আইপি হয়ে গেলে এটি সেই আইপিতে একটি বিপরীত অনুসন্ধান চেষ্টা করবে। আবার এটি এর জন্য ডিএনএস এবং আপনার উপর ভিত্তি করে আপনার হোস্ট ফাইল ব্যবহার করবে nsswitch.conf। আপনার হোস্ট ফাইলটি ব্যবহারের ক্ষেত্রে এটি প্রাথমিক প্রবেশ (যে ফাইলের আইপির পরে প্রথম ক্ষেত্র) ফিরিয়ে দেবে।
hostname -aকেবলমাত্র হোস্ট ফাইলের সাথে কাজ করবে যেহেতু ডিএনএসে বিপরীত অনুসন্ধান করা কেবল আপনাকে 1 টি ফলাফল দেয়। হোস্ট ফাইলের সাথে এটি ম্যাচিং লাইনে এলিজগুলি ফেরত দেয় (যা প্রথম প্রবেশের পরে সমস্ত কিছু, প্রাথমিক হোস্টনাম)।
সুতরাং সংক্ষেপে, আপনার সমস্যার সম্ভাব্য কারণ হ'ল /etc/hostsআপনার হোস্টনাম ( uname -n) থাকাতে আপনার কোনও প্রবেশ নেই ।
উদাহরণস্বরূপ
যদি আপনার নডনামটি 'ফুবার' হয় এবং আপনার প্রবেশ /etc/hostsযেমন আছে যেমন:
127.0.0.1 foobar.example.com foobar localhost.localdomain localhost
তারপরে আপনি নিম্নলিখিত কমান্ডের ফলাফল পাবেন:
# hostname
foobar
# uname -n
foobar
# hostname -f
foobar.example.com
# hostname -a
foobar localhost.localdomain localhost