سؤال لماذا يتعذر على "ping" حل اسم عندما تعمل "nslookup" بشكل جيد؟


في محطة عمل Windows XP ، يمكنني العثور على الجهاز الذي أرغب في الاتصال به في DNS nslookup:

nslookup wolfman
Server: dns.company.com
Address: 192.168.1.38

Name: wolfman.company.com
Address: 192.168.1.178

ولكن عندما أحاول الاتصال بهذا الجهاز ، تظهر لي رسالة خطأ تفيد بأن الجهاز لا يمكن العثور عليه (أي لا يمكن البحث عنه في نظام أسماء النطاقات):

C:\> ping wolfman
Ping request could not find host wolfman. Please check the name and try again.

يمكنني الاتصال إذا كنت أستخدم عنوان IP مباشرةً:

C:\> ping 192.168.1.178

Pinging 192.168.1.178 with 32 bytes of data:

Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=44ms TTL=126
Reply from 192.168.1.178: bytes=32 time=38ms TTL=126

يمكنني العمل حول هذا عن طريق إضافة إدخال إلى بلدي hosts ملف ، لكنني أفضل معرفة سبب حدوث ذلك. المشكلة عابرة ، معظم اليوم يمكنني الاتصال بالجهاز على ما يرام.

كيف يكون هذا ممكنا؟

ETA: لقد تركت هذا للإيجاز ، ولكن تم طرح السؤال التالي:

C:\> ping wolfman.company.com
Ping request could not find host wolfman.company.com. Please check the name and try again.

ETA: تحصل التطبيقات الأخرى على نفس النتائج. حاولت فقط بينغ لتبسيط. لا يمكن الاتصال telnet ، تطبيقات Cygwin طباعة رسالة "wolfman host غير معروف".

تحديث: باستخدام wireshark ، وجدت أن محطة العمل الخاصة بي لا تحاول البحث عن DNS. إنها مجرد الإبلاغ عن رسالة الخطأ "تعذر العثور على المضيف".


123
2017-10-29 19:11


الأصل


ماذا يحدث إذا كنت ping wolfman.company.com؟ - SLaks
هل لديك تثبيت wireshark؟ يمكنك معرفة ما إذا كان ping يستخدم شيئًا آخر عند محاولة حل المضيف. هل جربت telnet و ftp أيضًا؟ - ott--
يمكنك إضافة لاحقة DNS افتراضية لـ .company.com. - billc.cn
@ billc.cn لدي بالفعل لاحقة DNS. - skiphoppy
نسخة محتملة من: superuser.com/questions/220471/... - Der Hochstapler


الأجوبة:


أعتقد أن nslookup يفتح اتصال winsock على منفذ DNS ويصدر استعلامًا ، بينما يستخدم ping خدمة عميل DNS. يمكنك محاولة إيقاف هذه الخدمة ومعرفة ما إذا كان هذا يحدث فرقًا.

بعض الأوامر التي ستعيد تهيئة حالات الشبكة المختلفة:

إعادة تعيين إدخالات WINSOCK إلى افتراضيات التثبيت: netsh winsock reset catalog
إعادة تعيين مكدس TCP / IP إلى افتراضيات التثبيت: netsh int ip reset reset.log
مسح ذاكرة التخزين المؤقت لمحلل DNS: ipconfig /flushdns
تجديد تسجيل عميل DNS وتحديث عمليات تأجير DHCP: ipconfig /registerdns
جدول التوجيه تدفق: route /f  (إعادة تشغيل المطلوبة)


95
2017-11-20 08:40



أراهن على أنه من المحتمل أن يكون Active Directory نشطًا ، لكني لا أعرف كيفية الاختبار. - skiphoppy
أنا تعطيل خدمة عميل DNS ، ويبدو أن المشكلة تختفي! لست متأكدا حتى الآن إذا كان حظ. المشكلة لم تعود عندما أعدت تشغيل الخدمة. - skiphoppy
في بعض الأحيان ، يعمل مجرد إيقاف الخدمة وإعادة تشغيلها على إصلاح مشكلات DNS (لا تسألني لماذا). السؤال هو كم من الوقت سيستمر هذا. بعض الناس المحظوظين بحاجة لتكرار ذلك مراراً وتكراراً. - harrymc
SFC / SCANNOW في حالة ملفات نظام خدمة العميل DNS فاسدة بمهارة؟ لقد رأيت أيضًا بعض الأشخاص الذين يعانون من مشكلات مشابهة ناجمة عن فيروس. - Jon Kloske
ما كان في عداد المفقودين بالنسبة لي في هذا الجواب كان ipconfig /registerdns (لقد شرحت في جوابي أدناه) - Mick Halsband


جرب ping باستخدام اسم المضيف متبوعًا بنقطة. لذا بدلا من ping wolfman استعمال ping wolfman.

من المفترض أن يؤدي ذلك إلى حل المشكلة دون الاضطرار إلى إجراء حلول بديلة مع ملف المضيفين ، وما إلى ذلك.


26
2018-05-05 01:08



كان هذا هو الحل بالنسبة لي. - IAmTheSquidward
نجاح باهر ، وهذا عمل بالنسبة لي كذلك. تخميني هو أن شيئًا ما يتوقع اسم نطاق لم يتم تكوينه - user1190
حسنا ، هذا يعمل ... لماذا؟ - Daniel B.
أي اقتراحات لماذا هذا العمل وكيفية استخدام الأسماء المحلية بدلاً من النقاط الخلفية؟ - Ruberoid
Ruberoid يرجى الاطلاع إجابتي لكيفية القيام بذلك تلقائيا. - Frederik Aalund


محاولة ipconfig /displaydns وابحث عن wolfman. إذا تم تخزينها مؤقتًا نظرًا لأن "الاسم غير موجود" (ربما بسبب البحث الفاشل السابق المتقطع) ، فيمكنك مسح ذاكرة التخزين المؤقت باستخدام ipconfig /flushdns.

nslookup لا يستخدم ذاكرة التخزين المؤقت ، بل يستعلم ملقم DNS مباشرة.


16
2017-11-19 21:57



لقد حاولت: لم يتم تخزينها مؤقتًا. ومسح ذاكرة التخزين المؤقت لا يحل المشكلة أيضًا. - skiphoppy
يمكنك نشر مخرجات nslookup -all؟ هو novc المدرجة في البورصة؟ - craig65535


حاول إضافة . إلى لاحقات DNS لهذا الاتصال. I.e ، انتقل إلى:

  1. حالة إيثرنت
  2. انقر فوق خصائص
  3. إصدار بروتوكول الإنترنت 4
  4. انقر فوق خصائص
  5. انقر فوق خيارات متقدمة
  6. إلحاق هذه DNS كاف (بالترتيب)
  7. إضافة . كلاحقة.

يتم توضيح نفس الخطوات في لقطة الشاشة التالية:

هذا يجب أن يجعل ping wolfman عمل.

تفسير

nslookup wolfman (اسم خادم البحث: wolfman) يرسل اسم المضيف (wolfman) إلى DNS (نظام اسم المجال) للحصول على عنوان IP المقابل. هذا هو الغرض الوحيد من nslookup أمر. هذا يعمل بالفعل ، لذلك تحققنا من أن DNS يعمل وهذا wolfman بالفعل يتوافق مع عنوان IP.

في المقابل، ping wolfman يحتاج إلى القيام بأمرين:

  1. الحصول على IP الذي اسم المضيف (wolfman) يتوافق مع.
  2. إرسال الحزم إلى IP والاستماع للاستجابة

في Windows (حتى الإصدارات الحديثة مثل Windows 10) ، يمكن أن تفشل الخطوة الأولى بسهولة. من أجل التوافق مع الإصدارات السابقة ، يدعم Windows أساليب مختلفة لتحليل اسم المضيف (ملف المضيفين ، DNS ، NetBIOS / WINS ، ملف LMHOST).

لسوء الحظ ، يبدو أن ويندوز " ping لا يحاول الأمر دائمًا البحث عن DNS. لا أعرف الشروط المحددة التي تسبب هذا السلوك.

لحسن الحظ ، يمكننا إجبار Windows على إجراء بحث DNS باستخدام FQDN (اسم المجال المؤهل بالكامل). في الممارسة العملية ، نقوم بذلك عن طريق إضافة لاحقة . نقطة إلى اسم المضيف: wolfman.. محاولة ping wolfman. وتحقق من أنه يعمل.

تتمثل الخطوة الأخيرة في فرض Windows على إلحاق هذه النقطة نفسها. لقد أظهرت بالفعل كيفية القيام بذلك في بداية هذه الإجابة.


11
2017-10-09 11:51



هذا في مهب ذهني! - djsmiley2k
فقط أريد أن أقول إن هذا كان العامل الذي نجح في آلة كنت أعمل عليها. غبي على الرغم من أنه يبدو. وليس فقط من أجل ping ، ولكن للتطبيقات الأخرى أيضًا. لست متأكدًا من تفسيرك لما جربته عندما يكون صحيحًا تمامًا (لكنك تقر بأنك غير متأكد من ذلك). لكن زائد كبير للإشارة إلى أن هذا الفشل يمكن تشخيصه بسهولة من خلال محاولة استخدام ping مع اسم النطاق مع إضافة لاحقة يدوياً. - gwideman


nslookup يعمل مختلفًا عن الأوامر الأخرى عند حل أسماء / عناوين IP على Windows.

ال طريقة القرار العادي على ويندوز على النحو التالي:

  1. يتحقق العميل لمعرفة ما إذا كان الاسم المستعلم هو نفسه.
  2. ثم يقوم العميل بالبحث في ملف Hosts محلي ، وقائمة بعنوان IP والأسماء المخزنة على الكمبيوتر المحلي.
  3. يتم الاستعلام عن خوادم نظام اسم المجال (DNS).
  4. إذا لم يتم حل الاسم بعد ، يتم استخدام تسلسل تحليل اسم NetBIOS كنسخة احتياطية. يمكن تغيير هذا الترتيب عن طريق تكوين نوع عقدة NetBIOS للعميل.

nslookup من ناحية أخرى تستخدم ل اختبار خوادم اسم المجال.


10
2017-11-19 21:29



هل هناك أي إعدادات يمكنها نقل استعلام NetBIOS إلى الأعلى في تلك القائمة؟ لدي الشعور الغريزي بأن بحث NetBIOS متورط بطريقة ما ، ولكن بما أن استعلام DNS يعمل بالتأكيد ، لا أستطيع أن أرى كيف سيصل إلى هذه الخطوة ، إذا كان التسلسل أعلاه غير قابل للتغيير. - skiphoppy


لقد واجهت مشكلة مماثلة وقد جربت الحل المقترح من قبلharrymc. لقد وجدت ما يبدو في النهاية (على الأقل إلى حد ما) العمل في منتدى Microsoft technet (يعمل NSLOOKUP ولكن أي شيء آخر لديه DNS على Win7 الكمبيوتر مستقل)

وهنا الاقتباس:

... حاول استخدام الأمر أدناه لمسح واستعادة ذاكرة التخزين المؤقت لمحلل العميل للاختبار.

إيبكونفيغ / فلوشدس

ipconfig / registerdns

يرجى الرجوع إلى الرابط أدناه لمزيد من التفاصيل.    http://jefferyland.wordpress.com/2011/07/28/quick-review-of-flushdns-registerdns-and-dns-queries/

لذلك ما كان في عداد المفقودين بالنسبة لي كان ipconfig /registerdns


8
2017-09-22 08:32



الجواب الأصلي من قبلharrymc الآن يعكس المفقود /registerdns أمر - Mick Halsband
كنت ألعب لعبة whack-a-mole مع هذه المشكلة على Win10 لمدة عام تقريبًا. عندما يستيقظ الكمبيوتر المحمول الخاص بي لا يمكن العثور على أي خوادم corp ، ولكن تعمل المواقع الخارجية مثل microsoft.com. يبدو أنه يحدث عند تغيير شبكات WiFi (المنزل / VPN مقابل المكتب). flushdns يحل المشكلة في بعض الأحيان ولكن ليس دائما. اليوم جربت السجلات و التي صححت المشكلة على الفور. غدا سأحاول إضافة. إلى نهاية اسم (ولكن فشل ping بالفعل مع FQDN للخوادم الداخلية). إنه محبط للغاية. وإلى الأعلى - إذا انتظرت بعض الوقت ستحل المشكلة نفسها. - ripvlan


اليوم فقط كان لدينا المشكلة نفسها، لكن ال كان الحل مختلفا. لذا فكرت ، أود إضافته كمرجع لأن هذه كانت أعلى نتيجة بحث.

  • مشكلة: ping لن يحل اسم المضيف ، ولكن nslookup يستطيع. (تمت المشاهدة على مضيفين مختلفين لنظام التشغيل Windows Server 2012 R2.)
  • سبب: (لكل مضيف) المضيف لديه أكثر من NIC متصل وهناك عبارات افتراضية متعددة تكوين.
  • حل: (لكل مضيف) قم بإزالة العبارة الافتراضية من تكوين كافة NIC ولكن واحد ، لذلك هناك remains عبّارة افتراضية واحدة فقط.

6
2018-04-28 08:41



آه فعلت هذا بالنسبة لي. في احسن الاحوال. - IAmTheSquidward
قصيرة وبسيطة - Frank Fu


ربما يتم سرد wolfman.company.com في C: \ Windows \ system32 \ drivers \ etc \ hosts؟

NSLOOKUP يتجاوز هذا الملف ويسأل دومًا DNS ، بينما يبحث بينغ والأدوات الأخرى أولاً في ملف "المضيفين" ، ثم في DNS.


5
2017-11-19 20:04



تفكير جيد! ولكني تحققت ، ولم يتم سرد أيٍّ من الأجهزة التي شاهدت هذه المشكلة معها في المضيفين. - skiphoppy


واجهت نفس المشكلة في نظام Windows 2012R2 (= 8.1) ، وحاولت جميع الاقتراحات الواردة أعلاه ، ولكن لا أحد منهم سيصلحها:
- تنفيذ الأمر pinging المؤهل بالكامل.
- الأزيز اسم غير المؤهل لم يفعل ذلك.
- كلاهما عمل على العديد من الأنظمة الأخرى ، التي كان لها نفس نظام التشغيل وعلى ما يبدو نفس التكوين.
- كل سلاسل البحث الضرورية كانت هناك.
(لاحظ أن بعض الإصلاحات المقترحة ، مثل الحل البديل للاستعلامات متعددة العلامات ، تكون غير ذات صلة بشكل واضح ، لأن الاسم غير المؤهل له جزء واحد فقط.)

ثم لاحظت أن النظام المستهدف الذي كنت أحاول اختبار الاتصال به لم يكن يحتوي على عنوان IPv6. لذلك حاولت "بينغ -4 unqualified_name"، وبنغو! هذا عمل.
لذلك لسبب ما ، في هذا النظام فقط ، حاول ping فقط حل العنوان غير المؤهل-> عنوان IPv6 ، وليس الاسم غير المؤهل-> IPv4.
بالنسبة لي كان الإصلاح تعطيل IPv6 تمامًا حيث لا أحتاجه على الإطلاق. ولكني سأكون مهتمًا حقاً بإيجاد طريقة أكثر لطافة لإخبار ping (أو يفترض أنه خدمة عميل DNS) لمحاولة حل عناوين IPv4 و IPv6.


5
2018-04-09 16:18





إضافة إدخال في الملف c:/windows/system32/drivers/etc/hosts قد إصلاحه.


2
2017-11-23 05:38



سيصلح ذلك ، لكنه لن يحل مشكلته على هذا الجهاز ، لكنه لن يساعده على أجهزة أخرى. تذكر Hosts> DNS Resolver> خادم DNS> اسم NetBIOS. - The Dude


كنت أحاول معرفة لماذا على جهاز كمبيوتر واحد الفوز 7 يمكنني استخدامها ping server الذي يعمل ، والآخر لا يمكن حلها server. ومع ذلك يمكن أن كلا بينغ server.lan التي لم أفهمها تمامًا.

تبين أنني قد أفسدت مع بعض الإعدادات (لاحقات DNS) لعدم الحاجة إلى استخدام FQDN أثناء استخدام VPN العمل. اضطررت للذهاب إضافة المحلية بلدي .lan إلى تلك اللواحق من أجل الحصول على كلا الجهازين يتصرفان بنفس الطريقة.

انتقل إلى لوحة التحكم> الشبكة والإنترنت> اتصالات الشبكة وانقر بزر الماوس الأيمن على اتصال الشبكة واضغط على الخصائص. انقر فوق Internet Protocol الإصدار 4 واضغط الزر Properties. ثم زر Advanced ... في هذه النافذة الجديدة. انتقل إلى علامة التبويب DNS ، حيث كنت قد أضفت لاحقة DNS لعملي ولكنها تحتاج أيضًا إلى اتصال منزلي عادي.

Advanced TCP/IP Settings


2
2018-01-01 16:01



واجهت وضعا مماثلا على الخادم مع عنوان IP ثابت. كان الإدخال الأول في "إلحاق لاحقات DNS هذه" فارغة وكان فارغة "لاحقة DNS لهذا الاتصال". خوادم أخرى حيث تعمل كان لها نفس "إلحاق لاحقات DNS" هذه ولكن تم نشر "لاحقة DNS لهذا الاتصال". - Tim Lewis