লিনাক্স হোস্টনাম -f কমান্ড আরএইচইএল-তে কাজ করছে না


13

আমি একটি RHEL 5.7 চালাচ্ছি এবং hostnameকমান্ডটি আমাকে সঠিক হোস্টনাম দেয়।
কিন্তু hostname -shostname -fফিরে Unknown host। কেন?


কি ডিস্ট্রো? আমার উবুন্টু 12.04 সিস্টেমে সমস্ত 3 টি কাজ করে।
অ্যান্থন

আপনি কোন অপারেটিং সিস্টেম ব্যবহার করছেন? যদি লিনাক্স, কোন বিতরণ? বিষয়বস্তু কি /etc/hostname?
টেরডন

1
hostname -fডিএনএস ব্যবহার করে, আপনার আইপি-র জন্য কি বিপরীত ডিএনএস এন্ট্রি রয়েছে?
বার্মার

@terdon আমি RHEL5 (লাল টুপি এন্টারপ্রাইজ লিনাক্স সার্ভার রিলিজ 5.7 (টিকঙ্গা) ব্যবহার করছি) এবং এরকম কোনও ফাইল নেই (/ ইত্যাদি / হোস্টনাম)
redoc

@ বারমার আমার হোস্টে ডিএনএস কনফিগার করা নেই। আমি আমার হোস্ট ফাইলে আইপি ঠিকানা এবং fqdn যুক্ত করেছি (/ ইত্যাদি / হোস্টগুলি), এই ত্রুটিটি ডিএনএস কনফিগার না হওয়ার ফলে?
redoc

উত্তর:


21

( এসএফ-তে আমার একটি উত্তর থেকে অনুলিপি করা হয়েছে )

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

এটি কীভাবে মূল্য পায় তার ব্যাখ্যাটি দুর্দান্ত! আমার 127.0.0.1 লাইনের শেষে আমার এফকিউডিএন ছিল যা প্রাথমিক হোস্টনাম লোকালহোস্ট হিসাবে ছিল। আমি কেবল এগুলি মুছে ফেলেছি এবং কেবল আসল আইপি রয়েছে এমন লাইনে FQDN রেখেছি এবং এটি হোস্টনাম -f লোকালহোস্টে ফিরে আসার সমস্যাটি স্থির করেছে।
কিওয়ার্টজগুই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.