হোস্টনাম এবং আইপি ঠিকানা ম্যাপিং / ইত্যাদি / হোস্টগুলিতে


14

আমার লিনাক্স মেশিনে, আমি যখন চালিত করি তখন hostnameএটি প্রদর্শিত হয় mongodb, তবে যখন আমি চালাই host mongodb, এটি প্রদর্শিত হয়:

mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)

আমার /etc/hostsফাইল:

192.168.10.10   mongodb
192.168.10.10   localhost
127.0.0.1       localhost
#127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
  • আমার প্রথম প্রশ্নটি: যেহেতু /etc/hostsআইপি থেকে হোস্টনামে ম্যাপিং করা হচ্ছে, কেন এই যন্ত্রটি হোস্টনেমটি mongodbআইপি 192.168.10.10 এ সমাধান করতে পারে না ? পরিবর্তে, যখন আমি দৌড়ে যাই তখন host localhostএটি সমাধান হয়ে যায় এবং এটি প্রদর্শিত হয়:

    localhost has address 127.0.0.1
    
  • আমার অন্য প্রশ্ন: /etc/hostsফাইল অনুসারে , হোস্টনামটি localhostলুপব্যাক আইপি ঠিকানা 127.0.0.1 এর পরিবর্তে 192.168.10.10 এ সমাধান করা উচিত ছিল। কেউ আমাকে এই ব্যাখ্যা করতে পারেন?

উত্তর:


30

host(এবং nslookup) ইউটিলিটি স্পষ্টভাবে ক্যোয়ারী DNS সার্ভার, এবং সঙ্গে পরামর্শ না /etc/hostsএকটি ডিফল্ট সিস্টেম কনফিগারেশন ফাইল। আপনি যদি tracerouteবা pingসেই ঠিকানায় থাকেন তবে আপনি এটি সঠিকভাবে সমাধান করতে দেখবেন।

আপনি 127.0.0.1 ব্যতীত অন্য কোনও মানচিত্রে পরিবর্তন করতে চান নাlocalhost , এটি অনেক কিছুতে অদ্ভুত এবং সূক্ষ্ম প্রভাব ফেলতে পারে। আমি মনে করি যে /etc/hostsক্রমে লেখা হয় পার্স করা হয়, এবং আপনি যেহেতু:

192.168.10.10   localhost
127.0.0.1       localhost

.. দ্বিতীয় প্রবেশটি প্রথমটিকে ওভাররাইড করে।


5
/etc/hostsDNS সার্ভারগুলি সরাসরি জিজ্ঞাসা করার সময় DNS রেজোলিউশনে কোনও প্রভাব ফেলবে না , যা তা hostকরে। তবে অনেকগুলি সিস্টেম সরঞ্জাম এবং ইউটিলিটিগুলি সংজ্ঞাটি ব্যবহার করে localhostএটি লুপব্যাক ঠিকানা হিসাবে প্রত্যাশা করে এবং ডিএনএসে /etc/hostsকঠোরভাবে না গিয়ে নামগুলি সমাধান করার জন্য সিস্টেম নাম রেজোলিউশন (যা ডিএনএসকে জিজ্ঞাসা করার আগে দেখায় ) ব্যবহার করে, যা সর্বদা উপস্থিত নাও হতে পারে।
ডোপঘোটি

1
/etc/hostsফাইল সম্পর্কিত সমস্যাগুলির সাথেও অভিজ্ঞতা ভাগ করে নিতে পারি localhost। অতীতে আমরা এমন কিছু সফ্টওয়্যার ব্যবহার করেছি 127.0.0.2 localhostযা হোস্ট ফাইলগুলিতে একটি localhostপ্রবেশ করিয়ে দেবে এবং এটি সর্বশেষ এন্ট্রি হওয়ার কারণে এটি কার্যকর হওয়ায় সমস্ত ধরণের সফ্টওয়্যার এবং লাইসেন্সের সমস্যা দেখা দিয়েছে। সুতরাং আমার প্রস্তাবটি 127.0.0.1 localhostআপনার /etc/hostsফাইলে প্রথম এন্ট্রি হিসাবে রয়েছে এবং নিশ্চিত localhostহওয়া উচিত যে সেই ফাইলটিতে অন্য কোনও প্রবেশ নেই । এবং আমি পাশাপাশি যে কোনও আইপিভি 6 স্টাফও যাচাই করব।
26:38

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

1
@ সাইমসিবিয়ান - আপনি যা বলছেন তা সঠিক। আমি এই পেডেন্টিক কল করব না।
ডার্কহার্ট

2
এটির জন্য একটি উল্লেখযোগ্য অ-সুস্পষ্ট ব্যতিক্রম হ'ল যদি /etc/resolv.confকোনও ডিএনএস সার্ভারের দিকে আপনার পয়েন্টগুলি সরাসরি আপনার ডিভাইসে চলমান হয় (যেমন ক্যাশে করা হয় dnsmasq) এবং বলেছে যে /etc/hostsবাহ্যিক সার্ভারগুলি জিজ্ঞাসা করার আগে সার্ভারটি আপনার স্থানীয় সাথে পরামর্শ করছে । তারপরে, অপ্রত্যক্ষভাবে, এর মতো কমান্ডগুলি hostআপনার দ্বারা প্রভাবিত হবে /etc/hosts- এটি একটি অস্বাভাবিক সেটআপ, তবে আমি একটি ডিভাইস শিপ করে দেখেছি এবং এইরকম সিস্টেম ব্যবহার করে এমন কারও অভিজ্ঞতা এই উত্তরটির সাথে বিরোধী বলে মনে হতে পারে যদি কেউ এই অদ্ভুত সেটআপ সম্পর্কে অবগত না হন তবে ।
mtraceur

9

ডোপোগোতির উত্তর ছাড়াও, আপনার সমাধানের বিষয়টি পরীক্ষা করার জন্য, /etc/hostsঅগ্রাধিকারটি ইনক্লুড করে , আপনি getent hosts <some_hostname>কমান্ডটি ব্যবহার করতে পারেন ।


-3

আমি একটি ট্যাব ব্যবহার না করে আইপি এবং হোস্টনামের মধ্যে একাধিক স্পেস থাকা / ইত্যাদি / হোস্টগুলির সাথে একই রকম সমস্যা পেয়েছি। টিএবিতে পরিবর্তনের পরে হোস্টের নামটি পিংয়ের মাধ্যমে সমাধান করা যেতে পারে।

127.0.0.1        test.local
         ^^^^^^^^ → Should be a TAB not multiple spaces.

/superuser//a/938366/467479 এও দেখুন


5
এটি আমাকে অবাক করে দেয়। ম্যানপেজটি hostsবলে: Fields of the entry are separated by any number of blanks and/or tab characters. সম্ভবত আপনার ক্ষেত্রে আইপি এবং হোস্টনামের মধ্যে কিছু বহির্মুখী অ-মুদ্রণযোগ্য চরিত্র ছিল?
dr_

মুদ্রণযোগ্য কোনও অক্ষর ছিল না। আমি এখানে পোস্ট করার আগে আমি এটি যাচাই করেছিলাম;)
টমাস লরিয়া

আমার ট্যাব অক্ষর নেই, আমি এসএলইএস ১১.x চালাচ্ছি এবং ডিভিডি থেকে পরিষ্কার ইনস্টল করার পরে আমার / ইত্যাদি / হোস্ট ফাইলটি 127.0.0.17 টি স্পেস অনুসরণ করবে localhost। সুতরাং আমি একাধিক স্পেস অক্ষর এবং বিশেষত সমাধান হিসাবে ট্যাব অক্ষর ব্যবহার করে শেষ করতে সমস্যাটি পিন করতে কিছুটা দ্বিধা বোধ করব।
রবি

ট্যাব বনাম স্থানটি উল্লেখ করতে ভুলে গেছেন একটি নির্দিষ্ট সংস্করণ বা লিনাক্সের বিতরণের মধ্যেও কি ঘটতে পারে যা বাগ হতে পারে? এবং যদি এটি হয়ে থাকে তবে আপনি কোনও ট্যাব বা কোনও স্থান দিয়ে বিভিন্ন আইপি ঠিকানা / হোস্টনেম এন্ট্রি করতে সক্ষম হবেন, তবে এটি সমাধান হয়ে যায় কিনা তা দেখতে তাদের একটি পিং করুন ... শুধু এটি দিয়ে করবেন নাlocalhost
রন

দুর্ভাগ্যক্রমে আমি মনে করি না কোন মেশিনে (এবং তাই ডিস্ট্রো) আমি সমস্যাটি অনুভব করেছি ... - আমি মনে করি এটি ভার্চুয়ালবক্সিম্যাগেস // থেকে উবুন্টু 15.05 এ ছিল… আমি এটি মূল্যায়ন করতে যাচ্ছি।
থমাস লরিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.