আমার উবুন্টু কম্পিউটারে কেন "হোস্টনাম --fqdn" কাজ করে না?


10

আমি উবুন্টু 10.04 LTS ব্যবহার করছি, এবং যখন আমি কমান্ড টাইপ hostname --fqdn, আমি বার্তা পাবেন: hostname: Name or service not known

এ কারণে, আমি globalসফলভাবে ইনস্টল করতে পারি না , এবং চেষ্টা করার পরে নিম্নলিখিত ত্রুটিটি পাই:

Setting up global (5.7.1-1) ...
hostname: Name or service not known
dpkg: error processing global (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 global
E: Sub-process /usr/bin/dpkg returned an error code (1)

আমার /etc/nsswitch.confনীচে।

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

এর অর্থ কী এবং কীভাবে আমি এটি ঠিক করতে পারি সে সম্পর্কে কারও কি কোনও ধারণা আছে?


1
আপনি কেন এফকিউডিএন চান? যদি আপনাকে জিজ্ঞাসা করতে হয়, আপনি সম্ভবত একটি চান না বা একটি বা উভয় ব্যবহার করতে পারবেন না।
এমএসডব্লিউ

উত্তর:


11

আপনি কি সামগ্রী সরবরাহ করতে পারেন /etc/nsswitch.conf?

দেখে মনে হচ্ছে /etc/nsswitch.conf এর "হোস্ট" লাইনের খারাপ মান রয়েছে। এটি "ফাইল" দিয়ে শুরু হয়?

অন্যথায় এফকিউডিএন সেট করা হয় / ইত্যাদি / হোস্টগুলি সম্পাদনা করে এবং হোস্টনামটি প্রদর্শিত হবে এমন লাইনে FQDN স্থাপন করে। ধরুন আপনার কাছে একটি হোস্টনাম "foo" রয়েছে এবং আপনি একটি লাইন খুঁজে পেয়েছেন:

127.0.0.1 foo

আপনি এটির মতো এডিট করবেন:

127.0.0.1 foo.localdomain foo

foo.localdomain আপনার নতুন এফকিউডিএন হবে।


আপনি যেই ফাইলটি চেয়েছিলেন আমি সেই বিষয়বস্তুগুলিকে অন্তর্ভুক্ত করেছি! জবাবের জন্য ধন্যবাদ!! :)
RadiantHex

@ রাপেল আমি / ইত্যাদি / হোস্ট ফাইল পরিবর্তন করেছি তবে এটি নাম রেজোলিউশনে আমাকে অস্থায়ী ব্যর্থতা দেওয়া শুরু করে। কোন ধারণা কেন এটি ঘটছে?
মুহাম্মদ আদিল জাহিদ

6

আপনার এফকিউডিএন যুক্ত করতে সম্পাদনা / ইত্যাদি / হোস্টগুলি

সিনট্যাক্স সম্পর্কিত তথ্য এখানে অবস্থিত: http://www.faqs.org/docs/securing/chap9sec95.html

আপডেট: আপনার প্রশ্নটি পড়ার পরে এটি প্রায় মনে হচ্ছে আপনার নিজের পথটি সঠিকভাবে সেট করা নেই, বা হোস্টনেম প্রোগ্রামে কিছু সমস্যা আছে।

'কোন হোস্টনেম' কর

এটি '/ বিন / হোস্টনাম' দিয়ে ফিরে আসা উচিত

যদি এটি কাজ করে আবার কমান্ডটি চেষ্টা করে,

'/ বিন / হোস্ট-নেম --fqdn'


ধন্যবাদ !!! আমি যদি এটি জিজ্ঞাসা করি তবে দুঃখিত, তবে আমি কীভাবে আমার FQDN সন্ধান করব?
RadiantHex

1
ভাল এটি এর অর্থ 'সম্পূর্ণ যোগ্য ডোমেন নেম' সুপারসার ডটকম একটি এফকিউডিএন। যদি আপনার কোনও ডোমেন থাকে তবে আপনি এটি ব্যবহার করতে পারবেন, অন্যথায় আপনি যদি অভ্যন্তরীণ নেটওয়ার্কে থাকেন তবে আপনি কিছু তৈরি করতে পারেন।
মুডফ্লাই

1
ধন্যবাদ @ মুডফ্লাই! আমি আপনার নির্দেশাবলীর চেষ্টা করেছি, শেষ কমান্ডগুলি "হোস্টনাম: নাম বা পরিষেবাটি জানা যায়নি" ফেরত দেয়!
RadiantHex

আরও তথ্য ছাড়াই আপনার সমস্যার পরিস্থিতি জানা শক্ত। ইজি: এটি কি কোনও স্থানীয় ইনস্টল, আপনি কি এসএসএস-এর মাধ্যমে লগইন করেছেন, আপনি কোনও ব্যবহারকারী অ্যাকাউন্ট ব্যবহার করছেন বা মূলটিতে লগ ইন করেছেন? আপনি ubuntuforums.org দেখতে এবং অনুরূপ সমস্যা সমাধান করেছেন এমন অন্যদের সন্ধান করতে পারেন।
মুডফ্লাই

1
এটি এখানে একটি বুনো লাফিয়ে নিচ্ছে তবে, উবুন্টু মূল ব্যবহারের জন্য সুডো ব্যবহারের পক্ষে। শেলটি সঠিকভাবে সেটআপ করা সম্ভব নয়। এটি পরীক্ষা করা খুব সহজ। প্রথমে আপনি 'ls -al / root /' করতে পারেন এবং দেখতে পারেন যে আপনি একটি .Bashrc দ্বিতীয় দেখতে পাচ্ছেন কিনা আপনার কাছে .bashrc যদি স্কেল থেকে এটি অনুলিপি না করে থাকে 'সিপি /etc/skel/.bashrc ./' আপনি করতে পারেন এটি আপনার কাছে ইতিমধ্যে ফাইল থাকলেও। আপনার বাশ চলছে কিনা তা নিশ্চিত করতে তৃতীয়টি '/ বিন / বাশ' করুন। অবশেষে আপনার আসল কমান্ডটি আবার চেষ্টা করুন, আপনার পুরোপুরি কনফিগার করা বাশ শেলের মধ্যে চলছে।
মুডফ্লাই

0

সাধারণ 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; এটি আপনার অভাবের দিকে নির্দেশ করবে।

আশা করি এটি আপনাকে কী হতে চলছে তা বুঝতে সহায়তা করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.