سؤال يستضيف ملف المضيفين ، وكيفية استكشاف؟


يتم استخدام ملف المضيفين على أجهزة كمبيوتر Windows لربط سلاسل أسماء معينة بعناوين IP محددة لتجاوز طرق تحليل الاسم الأخرى.

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

عند مواجهة مشكلة Windows في تجاهل ملف مضيف ، ما هو بروتوكول استكشاف الأخطاء وإصلاحها الشامل الذي يمكن اتباعه؟


يحتوي هذا السؤال على تكرار على SO ، مثل يتم تجاهل ملف HOSTS 

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


122
2017-11-26 16:28


الأصل


أيضًا ، نظرًا لأن شخصًا ما نشر في مكان آخر ، لا تستخدم "nslookup" لاختبار ذلك لأن هذا الأمر يتجاهل ملف المضيفات. بدلا من استخدام "بينغ". - LatinSuD


الأجوبة:


استنادًا إلى تجربتي الخاصة وما واجهته أثناء استخدام Google ، إليك بعض الأمور التي يمكنك تجربتها:

1. هل تأكدت من أنه يعمل بشكل صحيح؟

يجب أن تصبح التغييرات على المضيفين سارية المفعول فوراً ، ولكن تخزين بيانات تحليل أسماء الذاكرة مؤقت Windows لذا قد يتم استخدام السجلات القديمة لبعض الوقت. افتح سطر الأوامر (Windows + R ، cmd، أدخل) واكتب:

ipconfig /flushdns

لإسقاط البيانات القديمة. للتحقق مما إذا كان يعمل ، استخدم (بافتراض أن لديك إدخال ipv4 في المضيف الخاص بك للموقع www.example.com ، أو إدخال ipv6 في المضيفات الخاصة بك لـ ipv6.example.com):

ping www.example.com -n 1
ping -6 ipv6.example.com -n 1

ومعرفة ما إذا كان يستخدم IP الصحيح. إذا كانت الإجابة بنعم ، فإن ملف المضيفين على ما يرام والمشكلة في مكان آخر.

يمكنك أيضًا إعادة ضبط ذاكرة التخزين المؤقت لـ NetBios مع (افتح وحدة التحكم كمسؤول أو سيفشل):

nbtstat -R

يمكنك التحقق من البيانات الحالية في ذاكرة التخزين المؤقت لنظام أسماء النطاقات مع:

ipconfig /displaydns | more

2. أساسيات

  • هل ملف المضيفات الخاص بك مسمى بشكل صحيح؟ يجب أن يكون hosts و لا hostوما إلى ذلك
  • هل التمديد صحيح؟ لا ينبغي أن يكون لها امتداد (hosts ليس hosts.txt) - كن حذرًا إذا قمت بتكوين إطارات لإخفاء الامتدادات المعروفة ، تحقق من الخصائص للتأكد: سيظهر نوع الملف المضيف الصحيح على أنه "ملف" فقط.
  • هل اتبعت بناء صحيح؟ هل بادئة بالخطأ الخطوط مع تجزئة (#) مما يدل على التعليقات؟
  • هل تعتني بجميع المتغيرات (www.example.com و example.com - الأكثر أمانا لإضافة كل من)؟

3. المسافة البيضاء

التنسيق لكل سطر هو IP address، ثم علامة تبويب أفقية (رمز الهروب \tوآسكي HTعرافة 0x09) أو مساحة واحدة (ست عشري 0x20) ، ثم اسم المضيف ، أي. www.example.com، ثم في النهاية عودة carriage متبوعًا تغذية سطر (رموز الهروب \r\nوآسكي CRLFعرافة 0x0d 0x0a).

إدخالات نموذج ، باستخدام صور تحكم Unicode للإشارة إلى أحرف التحكم. (لا تنسخ وتلصقها في ملف المضيف!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

قد يتم عرض وحدات البايت الفردية في المفكرة ++ مع ال عرافة محرر البرنامج المساعد. ستعرض Notepad ++ أيضًا أحرفًا خاصة (View -> Show Symbol) حتى تتمكن من فحص عدد ونوع المسافات البيضاء بسهولة.

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

لتكون في الجانب الآمن ، تأكد من استخدام جميع الأسطر في ملف المضيفات لديك إما علامات تبويب أو مسافات ، وليس كلتيهما.

وأخيرًا ، قم بإنهاء الملف بخط فارغ.

4. مفتاح التسجيل

يوجد مفتاح تسجيل يحدد موقع ملف المضيفات. من المفترض أن Windows لا يدعم بالفعل وضع ملف المضيفين في مواقع أخرى ، ولكن قد ترغب في التحقق. المفتاح هو:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

يجب أن يكون الإدخال:

%SystemRoot%\System32\drivers\etc

5. أذونات

أحيانًا تكون هناك مشكلات في الأذونات على الملف وسمات الملف والأشياء المشابهة. لإعادة إنشاء الملف بأذونات افتراضية:

  1. قم بإنشاء ملف نصي جديد على سطح المكتب الخاص بك.
  2. قم بنسخ محتويات ملف المضيفات الحالية ولصقها في هذا الملف في برنامج Notepad.
  3. احفظ الملف النصي الجديد وأعد تسميته hosts.
  4. نسخة (لا تتحرك) الملف الخاص بك %SystemRoot%\System32\drivers\etc الدليل ، والكتابة فوق الملف القديم.

النقطة الأخيرة مهمة: نسخ الأعمال ، لا تتحرك.

المحلي Users الحساب يجب أن يكون قادراً على قراءة ملف المضيفين. للتأكد (في Windows 7):

  1. انتقل إلى %SystemRoot%\System32\drivers\etc في مستكشف Windows.
  2. إذا كنت لا تستطيع رؤية hosts ملف، تأكد من أنك تستطيع رؤية الملفات المخفية والنظام.
  3. انقر بزر الماوس الأيمن على hosts ملف وحدد Properties من قائمة السياق.
  4. في ال hosts Properties نافذة ، انقر على Security التبويب.
  5. افحص قائمة الأسماء في Group or user names: صندوق. إذا %COMPUTERNAME%\Users موجود ، انقر عليه لعرض الأذونات.
  6. إذا Users غير موجود ، أو موجود ولكنه ليس موجودًا Read إذن ، انقر فوق Edit....
  7. إذا Users غير موجود ، انقر فوق Add...، نوع Users، انقر Check Names، وانقر فوق موافق أو اضغط على Enter.
  8. تحديد Usersوتأكد Read & execute يتم فحص في Allow عمود. انقر فوق موافق. اذا كان Windows Security صندوق الإنذار للملوثات العضوية الثابتة ، اختر Yes لاستكمال.
  9. انقر فوق موافق لإغلاق hosts Properties نافذة او شباك.
  10. انتقل إلى القسم 1 من هذه الإجابة واتبع التعليمات للتحقق مما إذا كانت تعمل الآن.

6. ترميز

يجب أن يتم ترميز ملف المضيفين في ANSI أو UTF-8 بدون BOM. يمكنك القيام بذلك باستخدام File -> Save As.

7. وكلاء

إذا كان لديك وكيل تكوين ، قد يتجاوز ملف المضيفين. الحل هو عدم استخدام البروكسي ، أو تهيئته لعدم القيام بذلك.

للتحقق ، انتقل إلى Internet Explorer -> خيارات الإنترنت -> اتصالات -> إعدادات LAN. إذا كان كل شيء فارغًا وتم تحديد "اكتشاف الإعدادات تلقائيًا" ، فأنت لا تستخدم الخادم الوكيل.

إذا كنت تعتمد على وكيل للوصول إلى الويب وبالتالي لا ترغب في تعطيله ، فيمكنك إضافة استثناءات من خلال الانتقال إلى Internet Explorer -> خيارات الإنترنت -> اتصالات -> إعدادات LAN -> Proxy Server / Advanced. ثم أضف الاستثناءات إلى مربع النص "استثناءات". مثلا localhost;127.0.0.1;*.dev

8. عنوان DNS

(قد يؤدي ذلك أيضًا إلى حل مشكلات الخادم الوكيل.)

انتقل إلى خصائص اتصالات الشبكة ، ثم إعدادات TCP / IP ، وقم بتغيير خادم DNS الأول إلى 127.0.0.1 (مضيف محلي). من المحتمل أن يكون الثاني هو عنوان IP الخاص بـ DNS الفعلي.

هذا غير ضروري لملف المضيفين للعمل، ولكن قد يساعد في حالتك إذا تم تكوين شيء غريب.

9. عناوين المحلية

إذا كنت تستخدم إدخال نطاق .local في شكل myhost.local ويتم تجاهله ، فيرجى تجربة ما يلي

x.x.x.x myhost.local www.myhost.local

حتى لو كان الموقع www.myhost.local غير موجود. Windows بطريقة ما لا إلحاق مجموعة العمل الخاصة به أو localdomain.


186
2017-11-26 16:28



شكرا جزيلا! أنا أبكي تقريبا ، الكثير منا سيجنون إلى الفضاء في بداية الدخول الفارغ بين خطين. شكرا لك شكرا شكرا شكرا شكرا جزيلا لك !!!!!
آخر gotcha هو أن إصدارات 64 بت من Windows إعادة توجيه المجلد System32 لتطبيقات 32 بت (مثل المفكرة ++) حتى عند حفظ الملف يظهر في المجلد SystemWOW64 بدلاً من System32. أفضل حل هو مجرد استخدام نسخة ويندوز من المفكرة التي هي 64 بت. ثاني أفضل اتصال إلى المشاركة الإدارية (\\ yourmachinename \ c $ \ Windows \ System32 \ drivers \ etc) لفتح الملف إذا كنت تستخدم محرر 32 بت. - Tim Lewis
وظيفة جيدة ، ولكن مع وجود أخطاء الزوجين. 1) "اكتشاف الإعدادات تلقائيًا" في IE يستطيع تقودك إلى (حتى بدون علم) استخدام بروكسي ، إذا كانت شبكتك توفر في الواقع التهيئة التلقائية للوكيل. 2) تغيير خوادم DNS الخاصة بك في إعدادات الشبكة لا علاقة له بكيفية / متى / إذا كان hosts يتم استخدام الملف ، ويعد تغييره إلى 127.0.0.1 خطأً فعليًا ، إلا إذا كنت تقوم بالفعل بتشغيل خادم DNS على جهاز الكمبيوتر الخاص بك. - Massimo
# 5 (إنشاء ملف جديد ونسخه) فعل خدعة بالنسبة لي. Win7 يمكن أن يكون مضحكا مع أذونات. - chris
قمت بتحرير ملف المضيف تحت Cygwin باستخدام vim ، أعتقد أن هذا سبب المشكلة لملفي المضيف للتوقف عن العمل. اضطررت إلى إنشاء ملف جديد ونسخ محتويات ملف المضيف السابق والتي تم إصلاحه. - forloop


تأكد من أنك وضعت ipaddress أولاً ثم "النطاق" مثل هذا:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev

13
2018-06-04 12:20



أنا أفضل استخدام خط واحد: 127.0.0.1 bo.dev www.bo.dev ftp.bo.dev - Xhynk
حذرا ، ويندوز استضافة ملف يسمح فقط إدخالات NINE أو أقل في كل سطر! هذا بت لي واستغرق بعض الوقت لمعرفة. - andrew
لا تستخدم .dev يفكر TLD محليًا أنك لن تحصل على أي تصادم. إنها TLD عالمي عام صالح تملكه Google وستحصل على الكثير من المشاكل في استخدامه. نرى ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts - Patrick Mevzek


يرجى إضافة التحقق من أذونات الملف. لقد وجدت أنه على الرغم من أن لدي حقوق المسؤول المحلي على الكمبيوتر وبالتالي إلى المضيفين. لم يكن حتى أضفت المستخدمين المحليين لأذونات الملف المضيفين مع قراءة وقراءة وتنفيذ ثم ipconfig / flushdns أن المضيفين أصبحوا نشطين.


10
2017-10-09 23:29



هذا كان هو! لقد حيرة من هذه المشكلة ل سنوات. أضفت (machine)\USERS مع اقرأ و قراءة وتنفيذ أذونات وبعد ipconfig /flushdns انها عملت. شكرا جزيلا. يسعدني جدًا أن أقوم في النهاية بإعادة استضافة المضيف. - Clement Cherlin


في حالتي حاولت ويندوز 7 إنشاء الملف: C: \ ويندوز \ SYSTEM32 \ السائقين \ الخ \ المضيفات.

hosts.ics:

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

ونتيجة لذلك ، يتجاهل Windows الإعدادات في C: \ Windows \ System32 \ drivers \ etc \ hosts ويستخدمها من hosts.ics.


4
2017-09-24 20:56



من عند support.microsoft.com/en-us/kb/309642/en-us، وهي قديمة جدًا ربما لم تعد دقيقة: "يتم استخدام ملف Hosts.ics بواسطة ICS لتخزين معلومات حول العملاء المكونة ديناميكيًا. تجنب إجراء تغييرات على هذا الملف لمنع فقدان الاتصال أو البيانات. ملف Hosts (بدون ملحق اسم الملف) هو الملف الذي تضيف إليه معلومات حول العملاء المكونة بشكل ثابت. " لذلك ، لا أتوقع أن يتجاهل Windows Hosts الملف فقط ل Hosts.ics حاضر. قد يكون هناك شيء آخر يتسبب في قيام Windows بتجاهل ملفات المضيفين ، مثل امتداد خاطئ (لكن مخفي). - Arjan
أرى هذه المعلومات. لكنني لا أعرف ، لماذا تمكنت من جعل المضيفين يعملون فقط قمت بتحرير hosts.ics. قبل تحرير hosts.ics ، حاولت جميع الأساليب من هذا الموضوع ، ولكن لا يعمل المضيفين. - Unick


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

  1. افتح مستكشف Windows كمسؤول
  2. حذف ملف المضيفين
  3. افتح notepad كمسؤول وقم بإنشاء ملف مضيف جديد
  4. تبدأ من الصفر وإضافة مداخل.
  5. تأكد من عدم احتواء ملف المضيف على ملحق txt

ملاحظة: ببساطة فتح ملف المضيفين وحذف المحتوى ، التحقق من أنه 0kb وإعادة إضافته لم يعمل. أظن مشكلة أذونات على الملف.


2
2018-02-18 00:05





لقد قضيت ساعات وربما أيام على هذا.

يمكن أن يتسبب أمان IBM Trusteer نقطة النهاية صلة هذه المشكلة.

لقد أضفت mysite.com إلى قائمة المواقع الموثوق بها.

أعتقد أنه كجزء من أمانه يمنع البرامج الضارة أو الفيروسات من تحويلك إلى مواقع بديلة.

أحاطت mysite بقائمة المواقع الموثوقة ولم تعد تقوم بالتحقق و "تقوم بتصحيح" تحويل ملف المضيف الخاص بي.

نأمل أن يساعد شخص ما على حل مشكلته.


1
2018-02-16 21:00





مشكلة واحدة تم تفويتها في المناقشة أعلاه هي أسماء غير مؤهلة (أسماء لا تتضمن فترة) في ملف hosts. قد تبدأ إعدادات الشبكة في هذه النقطة وتضيف نطاقك تلقائيًا إلى نهاية نطاق غير مؤهل. وبالتالي قد لا يحل الاسم ، أو الأسوأ ، إلى جهاز مختلف تمامًا.


1
2018-05-06 07:20





في Windows ، تأكد من أن HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath يشير إلى دليل ملف المضيفين.


0
2018-03-18 06:56