সাধারণ hostname
কমান্ডের অনুরোধের বিপরীতে , অনুরোধটি hostname --fqdn
আরও কয়েকটি জিনিস করার চেষ্টা করবে, যার ফলস্বরূপ কিছু ডিএনএস লুকআপ হবে।
উদাহরণস্বরূপ নিম্নলিখিত (সফল) প্রার্থনাটি নিন (এটি একটি রেড হ্যাট বাক্স থেকে, তবে আমি ধারণা করব উবুন্টুর ক্ষেত্রে এটি একই হওয়া উচিত):
# hostname --fqdn --verbose
gethostname()=`myserver.example.com'
Resolving `myserver.example.com' ...
Result: h_name=`myserver.example.com'
Result: h_addr_list=`10.1.2.3'
myserver.example.com
খুব সহায়ক --verbose
বিকল্পটি নোট করুন ।
সংক্ষেপে, একটি সাধারণ ব্যতীত অন্য কিছু hostname
সম্ভবত আপনার প্রত্যাশার চেয়ে বেশি কাজ করছে। এখানে অন্য একটি উদাহরণ:
# hostname --ip --verbose
gethostname()=`myserver.example.com'
Resolving `myserver.example.com' ...
Result: h_name=`myserver.example.com'
Result: h_addr_list=`10.1.2.3'
10.1.2.3
এবং এটি বন্ধ করে দিতে:
# hostname --verbose
gethostname()=`myserver.example.com'
myserver.example.com
মনে রাখবেন যে কোনও সিস্টেমের হোস্ট-নেম (যেমন গেথোস্টনাম দ্বারা ফিরিয়ে দেওয়া) আমাকে একটি অযোগ্য হোস্টনাম যেমন কেবল 'মাইসারভার' হিসাবে দিতে পারে। এজন্য আপনি যে প্রোগ্রামটি ইনস্টল করতে চান সেটি hostname --fqdn
পরিবর্তে ব্যবহার করছে ।
ত্রুটি বার্তা hostname: Name or service not known
থেকে আসে সমাধানকারী ফাংশন: এই যে নামের ও ঠিকানার (সাধারণত নাম ও IP ঠিকানা DNS) মধ্যে অনুবাদ সিস্টেম লাইব্রেরির অংশ আছে।
আসলে, সমাধানকারী কেবল ডিএনএসের চেয়ে বেশি কিছু করে না (এবং হোস্টনাম এবং আইপি ঠিকানাগুলির মধ্যে কেবল অনুবাদ করার চেয়ে বেশি); এর আচরণটি ফাইলের দ্বারা কিছু অংশে কনফিগার করা হয়েছে /etc/nsswitch.conf
এবং সাধারণত এটি নিম্নলিখিতটির সাথে আলোচনা করে সাধারণত এই ক্রমে:
- 'হোস্ট' (লিনাক্সে, মানে / ইত্যাদি / হোস্টগুলি)
- (কখনও কখনও) এনএসসিডি (নাম-পরিষেবা ক্যাচিং ডেমন)
- 'DNS'
(দ্রষ্টব্য, আপনি উপরের পয়েন্টের জন্য ডিএনএসম্যাসকিড --- এর মতো ক্যাশিং ডিএনএস সার্ভারও রাখতে পারেন, এটি এখনও 'ডিএনএস' প্রক্রিয়াধীন)।
এটি উল্লেখ করার মতো যে ডিগ , হোস্ট এবং শ্রদ্ধেয় এনএসলুকআপের মতো সরঞ্জামগুলি এই ক্রমটি অনুসরণ করে না; তারা স্পষ্টতই ডিএনএস অনুসন্ধানের সরঞ্জাম। এর অর্থ হ'ল আপনি যদি তাদের উপর নির্ভর করেন (উদাহরণস্বরূপ কোনও স্ক্রিপ্টে) আপনি নিয়মিত ক্লায়েন্ট প্রোগ্রামগুলি (যা সিস্টেম রিসলভার ব্যবহার করে) তার চেয়ে আলাদা ফলাফল পেতে পারে। এই কারণে, স্ক্রিপ্টগুলিতে জেন্টেন্ট প্রোগ্রামটি ব্যবহার করুন , বিশেষত যদি আপনার কোনও এনএসসিডি চালনার মতো ক্যাচিং উপাদান থাকে।
# getent hosts myserver.example.com
10.1.2.3 myserver.example.com
সুতরাং এখানে কী গ্রহণযোগ্যতাটি হ'ল ক) আপনার / মেশিনগুলির জন্য একটি এন্ট্রি সহ / ইত্যাদি / হোস্টগুলি ভালভাবে কনফিগার করা থাকলে এবং খ) আপনার /etc/nsswitch.conf এর স্বাভাবিক কনফিগারেশন রয়েছে - hosts: files dns
সেই ক্রমে, তারপর সি) এমনকি আপনার পরিবেশে যদি ডিএনএসকে ভালভাবে কনফিগার করা না থাকে তবে hostname --fqdn
কাজ করা উচিত।
একটি কনফিগার করা ডিএনএসে আপনার একটি 'বিপরীত' ঠিকানা (একটি "পিটিআর রেকর্ড") পাওয়া যাবে যা আপনার সার্ভারের 'ক্যানোনিকাল' নাম দেয় এবং সেই নামটিও সন্ধান করতে সক্ষম হওয়া উচিত (একটি " একটি আইপিভি 4 রেকর্ড)।
সংক্ষিপ্ত সংস্করণ: যোগ --verbose
; এটি আপনার অভাবের দিকে নির্দেশ করবে।
আশা করি এটি আপনাকে কী হতে চলছে তা বুঝতে সহায়তা করে।