আভিহি: পিং হোস্টনেম সমাধান করতে পারে না, তবে এনএসলুকআপ পারে


41

pingআমাকে বলে যে এটি কোনও ইউআরএলে কিছু হোস্টনাম ("পিং: অজানা হোস্ট ডোমেন ডটকম.লোকাল") সমাধান করতে পারে না তবে আমি যখন কমান্ড লাইনে hostবা nslookupএকই কম্পিউটারে ব্যবহার করি তখন রেজোলিউশনগুলি ঠিক কাজ করে (যেমন এটি দ্রুত এবং নির্ভরযোগ্য) )।

কি এই সৃষ্টি হতে পারে?

আরও পরীক্ষা: ফায়ারফক্স wgetএবং pingএকই সমস্যা রয়েছে। আইপি অ্যাড্রেস পিংিং কাজ করে।

ওএস: লিনাক্স (উবুন্টু 13.04)

সম্পাদনা আমার /etc/resolv.confলেখা আছে:

nameserver 127.0.1.1
search domain.company.local

netstat রিপোর্ট:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               

সুতরাং এই বন্দরে কিছু চলছে ( nslookupএটি 127.0.1.1ডিএনএস সার্ভার হিসাবে ব্যবহার করে এমনও প্রতিবেদন করে )।

কোনও নেই /etc/*inetd.conf, সুতরাং আমি নিশ্চিত নই যে কোন অ্যাপ্লিকেশনটি এই বন্দরটিতে কাজ করে।

এটি dnsmasqব্যবহার করা হয় বলে মনে হয়:

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces
   --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1
   --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec
   --enable-dbus=org.freedesktop.NetworkManager.dnsmasq
   --conf-dir=/etc/NetworkManager/dnsmasq.d

সমস্ত কনফিগার ফাইল এবং ফোল্ডার খালি are যেহেতু nslookupএটি বলছে এটি 127.0.1.1#53আমার অনুমান ব্যবহার dnsmasqকরে তা এটি কোনও কনফিগারেশন ছাড়াও কাজ করে। তবে এটি কীভাবে জানতে পারে যে কোন পিতামাতাকে ডিএনএস জিজ্ঞাসা করবে?

EDIT2 হ্যারিমিকেরdnsmasq পরামর্শ অনুসারে অক্ষম করা কোনও উপকারে আসেনি। সুতরাং আমি দৌড়েছি strace pingযা আমাকে এই বিজোড় আউটপুট দিয়েছে (কেবল আকর্ষণীয় অংশ):

open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4
read(4, "127.0.0.1\tlocalhost\n#127.0.1.1\ta"..., 4096) = 613
...
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\f\0\0\0\0\0\0"..., 832) = 832
...
mmap(NULL, 2105560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f7829b00000
...
socket(PF_FILE, SOCK_STREAM, 0)         = 4
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
fcntl(4, F_GETFL)                       = 0x2 (flags O_RDWR)
fstat(4, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f782a4f8000
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(4, "RESOLVE-HOSTNAME-IPV4 domain.com"..., 44) = 44
read(4, "-15 Timeout reached\n", 4096)  = 20

তাই pingদেখায় /etc/hostsযা জ্ঞান করে তোলে। তারপর এটি লোড করে এবং mmap()গুলি /lib/libnss_mdns4_minimal.so.2যা পাশাপাশি জ্ঞান করে তোলে।

তবে তারপরেই তা অবাহির সাথে কথা বলে !?

যা আমাকে এই ফোরাম পোস্টে নিয়ে গেছে: পিং কোনও ডিএনএস অনুরোধ করে না

আমার /etc/nsswitch.confমধ্যে এই লাইনটি রয়েছে:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

যদি আমি pingএকটি কাজের ঠিকানা, আমি দেখতে পাচ্ছি যে প্রক্রিয়াটি লোড হয় /lib/libnss_mdns4_minimal.so.2তবে তারপরে, এটি পোর্ট 53 এর মাধ্যমে একটি ডিএনএস কোয়েরি করে।

সুতরাং আমার অনুমানটি এখন /lib/libnss_mdns4_minimal.so.2একরকম লক্ষ্য করছে যে আইপি ঠিকানাটি শেষ হয় .localএবং সাথে হয় না .comএবং তারপরে [NOTFOUND=return]ট্রিগার হয়।

আমি কিভাবে এটা ঠিক করব?


তোমার কি আছে /etc/resolv.conf?
জোসেফ আর।

কোনটি সঠিক এবং কোনটি ভুল? উচিত হোস্ট-নেম মীমাংসা বা এটা না? আপনার দুটি সম্পূর্ণ ভিন্ন সমস্যার মধ্যে কোনটি আমাদের জানাননি। (এবং যদি এটি সমাধান করা উচিত , তবে কীভাবে এবং কেন সমাধান করা উচিত তার যথাসম্ভব বিশদ দিয়ে ব্যাখ্যা করুন, এটি সম্ভবত এটি কেন হয় না তার ব্যাখ্যা হতে পারে))
ডেভিড শোয়ার্জ

... এবং আপনার HTTP প্রক্সি সেটিংস ক্রোম, ফায়ারফক্স এবং এর জন্য wget
জেডিবিপি

@ ডেভিডশওয়ার্টজ: আমি রেজুলেশন কাজ করার আশা করছি। সিস্টেমের নাম nslookupবা hostঅন্য যে কোনও কিছুই কীভাবে সমাধান করা যায় বা কী তা আমি বুঝতে পারি না।
অ্যারন দিগুল্লা

1
আপনি যদি কম্পিউটারের মাধ্যমে অন্য ডিভাইস বা ভিএম এর সাথে সংযোগ ভাগ করে না নিচ্ছেন তবে আপনি নেটওয়ার্ক ম্যানেজারে ডিএনএসমাস্ক বন্ধ করতে পারেন। লাইনটি সম্পাদনা করুন /etc/NetworkManager/NetworkManager.confএবং মন্তব্য করুন dns=dnsmasq(এর সামনে একটি # রাখুন) তারপরে একটি করুন sudo restart network-manager। এটি স্থানীয় রিসলভারটি বন্ধ করে দেবে। ( উত্স )
harrymc

উত্তর:


33

এই ব্লগ পোস্টে বিশদ বর্ণনা হিসাবে , আপনি সম্পাদনা করতে হবে /etc/avahi/avahi-daemon.conf:

[server]
domain-name=.alocal

এটি ডিমনটিকে .alocalডিফল্টের পরিবর্তে ডোমেনে আবদ্ধ করে .local

এবং দিয়ে ডিমনটি পুনরায় আরম্ভ করুন:

sudo service avahi-daemon restart

ব্লগ পোস্ট থেকে নোট:

আপনার ডিএনএস, এমডিএনএস এবং সমাধানকারী ক্যাশে ফ্লাশ করার পাশাপাশি আপনার ওয়েব ব্রাউজারগুলির অভ্যন্তরীণ ক্যাশে সাফ করার জন্য পুনরায় চালু করতে হবে need

এর পরে, pingএবং nslookupএকমত হতে শুরু করে।

আমাকে সঠিক ট্র্যাকে পাওয়ার জন্য হ্যারিএমসিকে ধন্যবাদ ।


1
এছাড়াও নোট করুন, pingএনএসএস ব্যবহার করবে, nslookupনা। (এটি কোনও সমাধানকের সাথে সরাসরি কথা বলার জন্য লুইস এবং ভাল, বাঁধাই ব্যবহার করে)
রিকি বিম

আমার কাছে এটি স্থানীয়ভাবে এটি অক্ষম করার পরিবর্তে এটি কনফিগার করা আরও বোধগম্য।
কেইকি

@ ওটাকুন 85: এবং আমি কীভাবে এটি করব?
অ্যারন দিগুলা

@ অ্যারোনডিগুল্লা আপনি এটিটি কনফিগার করেছেন এবং বর্তমানের সর্বোচ্চ ভোট প্রাপ্ত উত্তর এটি স্থানীয়র জন্য অক্ষম করেছে।
কেইকি

2
এটা চমৎকার. অনেক ধন্যবাদ. এই পোস্টটি সন্ধানের আগে কয়েক ঘন্টা ধরে এটির সাথে জড়িত।
fpghost


8

সহজ কাজ: সম্পাদনা করুন /etc/default/avahi-daemon

লাইনটি পরিবর্তন করুন:

AVAHI_DAEMON_DETECT_LOCAL=1

প্রতি

AVAHI_DAEMON_DETECT_LOCAL=0

পুনরায় চালু করুন avahi-daemon, বা এটি হত্যা করুন।

আমি অবাহিকে পছন্দ করি না এবং এর কোনও বৈশিষ্ট্য আমি ব্যবহার করি না। আপনি যদি সত্যই অবহিকে অক্ষম করতে চান /etc/init/avahi-daemon.confতবে নীচের মতোই সংশোধন করুন :

start on (never 
          and filesystem
      and started dbus)
stop on stopping dbus

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

7

মনে হয়। স্থানীয় ঠিকানা উবুন্টুতে অ্যাক্সেস হতে পারে না।

একটি সমাধান হ'ল /etc/nsswitch.confএই লাইনটি সম্পাদনা এবং পরিবর্তন করা:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

এটা দ্বারা :

hosts:          files dns

এই ধরণের কাজ আমার জন্য। আমার ক্ষেত্রে, হোস্ট লাইনটিতে "ফাইলগুলি সমাধান [[UNAVAIL = ফেরত]] mdns4_ মিনিমেল [NOTFOUND = ফেরত] ডিএনএস" ছিল এবং এটিকে "ফাইল এমডিএনএস 4_মিনিমাল [নটফাউন্ড = রিটার্ন] ডিএনএস" কাজ করে। সঠিক দিক নির্দেশকের জন্য ধন্যবাদ।
Andorbal

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

3

আপনি যদি কম্পিউটারের মাধ্যমে অন্য ডিভাইস বা ভিএম এর সাথে সংযোগ ভাগ করে না নিচ্ছেন তবে আপনি নেটওয়ার্ক ম্যানেজারে ডিএনএসমাস্ক বন্ধ করতে পারেন।

/etc/NetworkManager/NetworkManager.confলাইনটি সম্পাদনা করুন এবং মন্তব্য করুন (এর সামনে একটি # রাখুন):

dns=dnsmasq

তারপরে:

sudo restart network-manager

এটি স্থানীয় রিসলভারটি বন্ধ করে দেবে।

উত্স: উবুন্টু 12.04 এ ডিএনএস


2

সুতরাং আমার অনুমান এখন /lib/libnss_mdns4_minimal.so.2 একরকম বিবেচনা করে দেখা যাচ্ছে যে IP ঠিকানাটি .local দিয়ে শেষ হয় এবং .com দিয়ে নয় এবং তারপরে [নটফাউন্ড = রিটার্ন] ট্রিগার হয়।

আমি কিভাবে এটা ঠিক করব?

খুব ভাল অনুমান, তবে অন্যান্য উত্তরগুলি ওভারকিল। সহজ সমাধান, বিট যে প্রকৃতপক্ষে সূত্রপাত হয় অপসারণ অর্থাত অপসারণ করা হয় মাত্র [NOTFOUND=return]

এটি অপসারণের অর্থ হ'ল যদি mdns4_minimalপ্রত্যাবর্তন NOTFOUNDহয় তবে সমাধানকারী তালিকার পরবর্তী প্রবেশিকাটি ব্যবহৃত হবে। এটি স্বাভাবিক আচরণ; [NOTFOUND=return]অজানা নামগুলিতে দ্রুত ব্যর্থ হওয়ার একটি অপ্টিমাইজেশন তবে এটি ধরে নেয় যে সমস্ত .localনাম এমডিএনএসে রয়েছে।


1

একই লক্ষণগুলির সাথে আমার একটি আকর্ষণীয় কেস হয়েছে (পিং, মাউন্ট ইত্যাদি কাজ করছে না, তবে হোস্ট, ডিগ ওয়ার্কিং)। /Etc/resolv.conf ফাইলে অনুমতি পরীক্ষা করুন। আমার ক্ষেত্রে, কেউ এটি পরিবর্তন করেছে এবং আমার এটি পড়ার অধিকার নেই (যদিও cat /etc/resolv.confফাইলটি সম্পাদনা এবং কাজটি ভাল কাজ করেছে)।

যাইহোক, স্ট্রেসটি দেখাচ্ছে:

open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)

এবং ফলস্বরূপ, এটি রেজোলভ.কনফ ফাইল থেকে নেমসারভারের আইপি পরিবর্তে লোকালহোস্ট (127.0.0.1) কে জিজ্ঞাসা করার চেষ্টা করছিল:

socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])

এবং tcpdump পিং করার সময় কোনও ডিএনএস ট্র্যাফিক দেখাচ্ছে না। অনুমতি ফিক্সের পরে সকলেই কাজ করছেন:

# chmod 644 /etc/resolv.conf
# ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 111 Oct  3 09:54 /etc/resolv.conf

আরেকটি সমস্যা হতে পারে ফাইলের বৈশিষ্ট্য বা অন্য কোনও অ্যাক্সেস সমস্যার বর্ধিত। সেক্ষেত্রে কেবল /etc/resolv.conf ফাইলটি মুছুন এবং এটিকে স্ক্র্যাচ থেকে পুনরায় তৈরি করুন।


আমার আরও একটি সমস্যা ছিল যে আমার একটিতে একটি সার্ভার ছিল যে সমস্ত মূল ফোল্ডারগুলি তাদের xপতাকাটি হারিয়েছিল এবং এইভাবে প্রচুর বাইনারি সঠিকভাবে আচরণ করে না। ঠিক ছিল chmod +x /*
সাইলেক্স

0

আর একটি কারণ এর বিন্যাস /etc/hosts। আইপি এবং হোস্ট নামের মধ্যে কোনও ফাঁকা স্থান রয়েছে তা নিশ্চিত করুন, পরিবর্তে একটি ট্যাব ব্যবহার করুন। টিএবিতে পরিবর্তনের পরে হোস্টের নামটি পিংয়ের মাধ্যমে সমাধান করা যেতে পারে।

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

এটি একটি উত্তর হতে পারে তবে এটি মন্তব্য হিসাবে ফর্ম্যাট করা হয়েছে ...
ফ্রান্সিসকো তপিয়া

-1

উবুন্টুতে অ্যাভিহি-ডেমন সেটআপ করুন যাতে আপনি ubuntu.localহোস্ট ওএস থেকে হোস্ট-নেমে পৌঁছাতে পারেন

sudo apt-get avahi-daemon avahi-আবিষ্কার avahi-utils libnss-mdns mdns-scan


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