লিনাক্স হোস্টনেম কী নির্ধারণ করে?


13

কয়েক বছরে আমি লিনাক্সকে আমার প্রধান সিস্টেম হিসাবে ব্যবহার করেছি, বিশেষত ফেডোরা, আমি সর্বদা আমার হোস্টনামটি কেবলমাত্র "লোকালহোস্ট" এ সেট করে দেখেছি, যখন আমি কিছু নেটওয়ার্কের সাথে সংযোগ স্থাপন করি এবং এটি আমার আইপি হয়ে যায়। আজ আমি নীচের আচরণটি অনুভব করেছি যা বুঝতে যদিও আমার সমস্যা হচ্ছে।

আমি আমার ল্যাপটপের অন্য একটি বিভাগে একটি উবুন্টু ইনস্টলেশন সেটআপ করেছি, উবুন্টু ইনস্টলের সময় একটি কম্পিউটারের নাম / হোস্টনাম সেট করি। আমি আবার ফেডোরার মধ্যে পুনরায় বুট করলে, ফেবারার আমার হোস্টনামটি উবুন্টু ইনস্টলে সেট করা নামটিতে আপডেট করেছিলাম।

আমি সবসময় ভেবেছিলাম যে হোস্ট-নেমটি ডিগ্রো ইনস্টলেশনের পার্টিশনে কনফিগার করা এবং সংরক্ষণ করা হয়েছে, এবং সত্যই ফেডোরার / etc / হোস্টনেমের বিষয়বস্তু এখনও "লোকালহস্ট.লোকাল্ডোমাইন" পড়ে, তবে hostnameকমান্ডটি চালিয়ে নতুন হোস্ট-নেম দেখায়। উভয় ইনস্টলই একটি এফআই বুট পার্টিশন ভাগ করে, তবে অন্যথায় পৃথক। আমি ভাবছি কোথায় থেকে এবং কেন ফেডোরা ইনস্টলটি নতুন হোস্টনামটি পড়ছে?


hosts:/Etc/nsswitch.conf- এ আপনার প্রবেশিকাটি কী ?
কাটরেটজম

@ কুত্রেজজমhosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
ফেডোরা

উত্তর:


12

hostnameপ্রোগ্রাম, একটি uname প্রাপ্ত syscall সঞ্চালিত হিসাবে চলমান থেকে দেখা যায়:

strace hostname
...
uname({sysname="Linux", nodename="my.hostname.com", ...}) = 0
...

আনম সিস্কেল ম্যান পৃষ্ঠা থেকে এটি বলে যে সিস্কেল কার্নেল থেকে নিম্নলিখিত কাঠামোটি পুনরুদ্ধার করে:

  struct utsname {
               char sysname[];    /* Operating system name (e.g., "Linux") */
               char nodename[];   /* Name within "some implementation-defined
                                     network" */
               char release[];    /* Operating system release (e.g., "2.6.28") */
               char version[];    /* Operating system version */
               char machine[];    /* Hardware identifier */
           #ifdef _GNU_SOURCE
               char domainname[]; /* NIS or YP domain name */
           #endif
           };

সুতরাং ডোমেনের নামটি এনআইএস / ওয়াইপি সিস্টেম থেকে আসে, যদি আমরা মন্তব্যটি বিশ্বাস করি। সম্ভবত সম্ভাবনার চেয়ে আরও বেশি, আপনার নেটওয়ার্কে এমন একটি এনআইএস / ওয়াইপি পরিষেবা থাকতে পারে যা আপনাকে উবুন্টু ওএস দ্বারা সেট করা নামটি ফিরে পাবে।


5
এটি সত্য নয়, hostname(1)ম্যান পৃষ্ঠাটি দেখুন যা হোস্টনামটি কীভাবে সেট এবং ফিরে আসবে তা ব্যাখ্যা করে। নামের সাথে সাদৃশ্য থাকা সত্ত্বেও এনআইএস / ওয়াইপি ডোমেন নামের এফকিউডিএন / ডিএনএস ডোমেন নামটির সাথে কোনও সম্পর্ক নেই যা রেজোলভার দ্বারা ফিরে আসে। আপনি যদি এনআইএস / ওয়াইপি কনফিগার না করে থাকেন তবে এনআইএস / ওয়াইপি ডোমেন নামটি আনসেট করা হবে।
বোডজিট

"নোডনাম" আপনার ক্ষেত্রটি কি যত্নশীল? ইউনিক্স নস্টালজির সাথে তাল মিলিয়ে আইপি নেটওয়ার্কগুলি এখনও একটি toচ্ছিক এবং বাস্তবায়ন সংজ্ঞায়িত জিনিস হিসাবে বিবেচনা করবে :)
রেক্যান্ডবোনম্যান

5

একটি লিনাক্স সিস্টেমে হোস্টনামের দুটি স্বতন্ত্র (!) ধারণা রয়েছে।

কার্নেল স্থানীয় হোস্টের নামটিকে যেকোন নেটওয়ার্ক সংযোগ থেকে মুক্ত হিসাবে (গেথোস্টনাম / আনাম এবং সেটহোস্টনাম সিস্টেম কল দ্বারা পরিচালিত) বিবেচনা করে - সেখানে যদি টিসিপি / আইপি নেটওয়ার্কিংয়ের কোনও ক্ষমতা না রেখে আপনি একটি কার্নেল তৈরি করেন তবে এই যান্ত্রিকগুলি এখনও উপস্থিত থাকবে।

এক বা একাধিক হোস্টের নাম রয়েছে যা আসলে টিসিপি / আইপি (বা অন্যান্য নেটওয়ার্ক স্ট্যাকের সাথে সংযুক্ত) - বিশ্বের সমস্ত নেটওয়ার্কিং আইপি নয়! হোস্টের ঠিকানাগুলি, এবং এগুলি রিসলভার লাইব্রেরি ফাংশনগুলির মাধ্যমে ইউজার স্পেসে পরিচালিত হয় (এর অংশ) libc), যা যথাযথ কনফিগারেশন ফাইলগুলিতে (/etc/nsswitch.conf, / ইত্যাদি) আপনি তাদের যে নিয়মগুলি দিয়ে থাকেন সে অনুসারে উত্স (স্থানীয় / ইত্যাদি / হোস্ট ফাইল, ডিএনএস, এনআইএস ....) ব্যাখ্যা করে এই জাতীয় নাম নির্ধারণ করবে /host.conf ইত্যাদি ...)।


3

সম্ভবত উবুন্টু ইনস্টলেশনের সময় আপনার হোম রাউটারের মাধ্যমে ইন্টারনেটে সংযুক্ত। এটি করার জন্য, এটি রাউটারটিতে এর হোস্টনামটি জানিয়েছে এবং একটি অস্থায়ী স্থানীয় আইপি পেয়েছে।

আপনি এখন ফেডোরায় পুনরায় বুট করার সময় এটির আইপি ঠিকানা পেতে এটি একই রাউটারের সাথে সংযুক্ত হবে তবে উবুন্টুর জন্য নির্মিত পুরানো ইজারাটি এখনও বৈধ। এটি একই নেটওয়ার্ক কার্ড এবং একই হার্ডওয়্যার ম্যাক ঠিকানা সহ একই মেশিন হিসাবে, এটি একই ইজারা পুনরায় ব্যবহার করবে।

আমার অনুমান যে রাউটারটি হোস্টনামটি প্রেরণ করে যার উপরে আইপি ইজারা নিবন্ধিত হয়েছিল এবং ফেডোরা সেটিকে তুলে ধরেছে।

দুর্ভাগ্যক্রমে আমার উত্তর সমর্থন করার মতো আমার কাছে কোন প্রমাণ বা উদ্ধৃতি নেই, আমি উইন্ডোজের সাথে ডুয়াল-বুটে উবুন্টু ইনস্টল করার ব্যক্তিগত অভিজ্ঞতার সাথে কথা বলতে পারি। এরপরে, উবুন্টু আমি উইন্ডোতে যেভাবে ব্যবহার করেছি সেটি ইনস্টলের সময় একই হোস্টনামটি সেট করতে অস্বীকৃতি জানিয়েছিল, কারণ এটি দাবি করেছে যে নামটি নেটওয়ার্কটিতে উপস্থিত ছিল না বলেই ছিল। সম্ভবত আমাদের এখানেও কিছু একই ঘটনা ঘটছে।

আমার অনুমান যা আপনার অবস্থার সাথেও প্রযোজ্য কিনা তা যাচাই করতে, আপনার রাউটারের কনফিগারেশন ইন্টারফেসে আপনার আইপি লিজটি প্রত্যাহার করুন এবং তারপরে ফেডোরা পুনরায় বুট করুন। এটি যদি উবুন্টুর হোস্ট নেমটি আর না নেয় তবে আমার সঠিক হওয়া উচিত।


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