שאלה קובץ המארח התעלם, כיצד לפתור?


קובץ המארחים במחשבי Windows משמש כדי לקשור מחרוזות שם מסוימות לכתובות IP ספציפיות כדי לעקוף שיטות אחרות לפתרון שם.

לעתים קרובות, אחד מחליט לשנות את הקובץ המארח, ומגלה כי השינויים מסרבים להיכנס לתוקף, או אפילו ערכים ישנים של הקובץ המארח הם התעלמו לאחר מכן. מספר "gotcha" טעויות יכול לגרום לזה, וזה יכול להיות מתסכל כדי להבין איזה מהם.

כאשר מתמודדים עם הבעיה של Windows תוך התעלמות מקובץ hosts, מהו פרוטוקול מקיף לפתרון בעיות שניתן לעקוב אחריו?


שאלה זו יש כפילויות על SO, כגון המערכת מתעלמת מהקובץ HOSTS 

עם זאת, אלה נוטים להתמודד עם מקרה מסוים, ופעם אחת הטעות שנעשתה OP גילה, הדיון נגמר. אם אתה לא במקרה עשה את אותה שגיאה, דיון כזה הוא לא מאוד שימושי. אז חשבתי שזה יהיה מועיל יותר יש פרוטוקול כללי לפתרון כל המארחים הקשורים בנושאים שיכסה את כל במקרים.


122
2017-11-26 16:28




כמו כן, כמישהו פורסם במקום אחר, לא להשתמש "nslookup" כדי לבדוק את זה כי פקודה זו מתעלם קובץ המארחים. במקום זאת להשתמש "פינג". - LatinSuD


תשובות:


בהתבסס על הניסיון שלי ועל מה שפגשתי בזמן Google, הנה כמה דברים שכדאי לנסות:

1. האם בדקת כי הוא פועל כראוי?

שינויים במארחים ייכנסו לתוקף באופן מיידי, אך Windows מאחסן את נתוני הרזולוציה של שם כך שבמשך זמן מה ניתן להשתמש ברשומות הישנות. פתיחת שורת פקודה (Windows + R, cmd, Enter) וסוג:

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

באפשרותך לבדוק את הנתונים הנוכחיים במטמון ה- DNS באמצעות:

ipconfig /displaydns | more

2. יסודות

  • האם קובץ ה- hosts שלך נקרא כראוי? זה צריך להיות hosts ולא host, וכו.
  • האם ההרחבה נכונה? זה לא צריך שום הרחבה (hosts לא hosts.txt) - היזהר אם הגדרת את Windows כדי להסתיר הרחבות ידוע, לבדוק את המאפיינים כדי להיות בטוח: סוג הקובץ הנכון המארחים יופיע רק כמו "קובץ".
  • האם עקבת אחרי תחביר נכון? האם קיבלת בטעות קווים עם חשיש (#) אשר מציין הערות?
  • האם אתה מטפל בכל הווריאציות (www.example.com ו example.com - הבטוחה רק להוסיף את שניהם)?

3. שטח לבן

הפורמט של כל שורה הוא IP address, ולאחר מכן הכרטיסייה אופקי (קוד לברוח \t, ASCII HT, hex 0x09) או מקום אחד (hex 0x20), ולאחר מכן שם המארח, כלומר. www.example.com, ואז סוף סוף לחזור המרכבה ואחריו הזנת שורה, (קודי לברוח \r\n, ASCII CRLF, hex 0x0d 0x0a).

ערכים לדוגמה, באמצעות תמונות שליטה Unicode כדי לציין תווים שליטה. (אין להעתיק ולהדביק אותם לקובץ המארחים שלך!)

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

בתים בודדים ניתן לצפות ב פנקס רשימות + + עם ה תוסף עורך hex. Notepad + + יציג גם תווים מיוחדים (View -> Show Symbol), כך שתוכל לבדוק בקלות את המספר ואת סוג תווים הלבנים.

אם העתקת והדבקת רשומות מארח ממקום כלשהו, ​​אתה עלול בסופו של דבר עם רווחים מרובים. בתיאוריה המארחים תומך רווחים מרובים המפרידים בין שתי עמודות, אבל זה דבר אחר לנסות אם שום דבר אחר עובד.

כדי להיות בצד הבטוח, ודא את כל השורות בקובץ המארח שלך או להשתמש בכרטיסיות או רווחים, לא את שניהם.

לבסוף, לסיים את הקובץ עם שורה ריקה.

4. מפתח רישום

יש מפתח רישום המציין את המיקום של הקובץ hosts. לכאורה, Windows לא ממש תומך לשים את הקובץ המארחים במקומות אחרים, אבל אולי כדאי לבדוק. המפתח הוא:

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

הערך צריך להיות:

%SystemRoot%\System32\drivers\etc

5. הרשאות

לפעמים יש בעיות עם הרשאות על הקובץ, תכונות הקובץ, ודברים דומים. כדי ליצור מחדש את הקובץ עם הרשאות ברירת המחדל:

  1. צור קובץ טקסט חדש בשולחן העבודה שלך.
  2. העתק והדבק את התוכן של הקובץ המארח הנוכחי שלך בקובץ זה בפנקס הרשימות.
  3. שמור את קובץ הטקסט החדש ושנה את שמו hosts.
  4. עותק (אל תזוזו) הקובץ %SystemRoot%\System32\drivers\etc בספרייה, ולהחליף את הקובץ הישן.

נקודה אחרונה חשובה: העתקת עבודות, הזזה לא.

המקומי Users חשבון חייב להיות מסוגל לקרוא את הקובץ המארח. כדי לוודא (ב- Windows 7):

  1. נווט ל %SystemRoot%\System32\drivers\etc ב - Windows Explorer.
  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, ולחץ על OK או על Enter.
  8. בחר Users, וכן להבטיח Read & execute מסומנת ב Allow טור. לחץ על אישור. אם Windows Security תיבת ההתראה קופצת, בחר Yes להמשיך.
  9. לחץ על אישור כדי לסגור את hosts Properties חלון.
  10. עבור לסעיף 1 של תשובה זו ובצע את ההוראות כדי לבדוק אם היא פועלת כעת.

6. קידוד

קובץ המארח צריך להיות מקודד ב- ANSI או ב- UTF-8 ללא BOM. אתה יכול לעשות את זה עם קובץ -> שמירה בשם.

7. פרוקסי

אם יש לך proxy מוגדר, הוא עלול לעקוף את הקובץ hosts. הפתרון הוא לא להשתמש proxy, או להגדיר את זה לא לעשות את זה.

כדי לבדוק, עבור אל Internet Explorer שלך -> אפשרויות אינטרנט -> חיבורים -> הגדרות LAN. אם הכל ריק ו "אוטומטי לזהות הגדרות" מסומנת, אתה לא משתמש proxy.

אם אתה מסתמך על פרוקסי כדי לגשת לאינטרנט ולכן לא רוצה לבטל את זה, אתה יכול להוסיף חריגים על ידי מעבר אל Internet Explorer -> אפשרויות אינטרנט -> חיבורים -> הגדרות LAN -> שרת Proxy / מתקדם. לאחר מכן, הוסף את החריגים שלך לתיבת הטקסט חריגים. למשל localhost;127.0.0.1;*.dev

8. כתובת DNS

(פעולה זו עשויה גם לפתור בעיות של שרת proxy).

עבור אל מאפייני חיבורי הרשת שלך, ולאחר מכן הגדרות TCP / IP ושנה את שרת ה- DNS הראשון 127.0.0.1 (מארח מקומי). השני צריך להיות כנראה ה- DNS של ה- IP בפועל שלך.

זה לא הכרחי עבור הקובץ המארח לעבוד, אבל זה עשוי לעזור במקרה שלך אם משהו מוגדר בצורה מוזרה.

9. כתובות מקומיות

אם אתה משתמש. מושלם תחום כניסה בצורה של myhost.local והוא מקבל התעלם נסה את הפעולות הבאות

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

גם אם www.myhost.local אינו קיים. Windows איכשהו אינו מצרף את קבוצת העבודה שלו או את התחום המקומי.


186
2017-11-26 16:28



תודה רבה לך הרבה יותר! אני כמעט בוכה, כל כך הרבה שלנו הולך משוגע על שטח בשעה התחננות של כניסה ריקה בין שתי שורות. תודה תודה תודה תודה תודה !!!!!
עוד gotcha היא כי גירסאות 64 סיביות של Windows לנתב מחדש את התיקייה System32 עבור יישומי 32 סיביות (כגון Notepad + +) כך שכאשר אתה שומר את הקובץ מופיע בתיקייה SystemWOW64 במקום System32. הדרך הטובה ביותר לעקיפת הבעיה היא פשוט להשתמש בגירסת Windows של Notepad המהווה 64 סיביות. השני הכי טוב הוא חיבור למניה המנהלי (\\ yourmachinename \ c $ \ Windows \ System32 \ drivers \ etc) כדי לפתוח את הקובץ אם אתה משתמש בעורך 32 סיביות. - Tim Lewis
הודעה טובה, אבל עם כמה שגיאות. 1) "זיהוי אוטומטי של הגדרות" ב- IE פחית להוביל אותך (אפילו באופן לא מודע) להשתמש proxy, אם הרשת שלך באמת לספק תצורה אוטומטית של proxy. 2) לשנות את שרתי ה- DNS בהגדרות הרשת אין שום קשר עם איך / מתי / אם hosts הקובץ משמש, ושינוי זה ל 127.0.0.1 הוא למעשה שגיאה, אלא אם כן אתה בעצם מפעיל שרת DNS במחשב. - Massimo
# 5 (יצירת קובץ חדש והעתקתו) עשה את העבודה בשבילי. Win7 יכול להיות מצחיק עם הרשאות. - chris
ערכתי את הקובץ המארח תחת Cygwin באמצעות vim, אני חושב שזה גרם לבעיה הקובץ המארחים שלי להפסיק לעבוד. הייתי צריך ליצור קובץ חדש ולהעתיק את התוכן של הקובץ המארח הקודם, כי זה קבוע. - forloop


ודא שיש לך לשים את ipadress תחילה ולאחר מכן את "תחום" ככה:

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
זהירות, את הקובץ Windows המארחים רק מאפשר תשע או פחות ערכי בכל שורה! זה נשך אותי ולקח קצת זמן להבין. - andrew
אין להשתמש .dev TLD מקומי לחשוב כי לא תקבל התנגשויות. זהו TLD גלובלי כללי TLD בבעלות גוגל, ואתה תקבל הרבה בעיות להשתמש בו. ראה 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


במקרים שלי ניסיתי את Windows 7 נוצר הקובץ: C: \ Windows \ System32 \ Drivers \ etc \ Hosts.ics.

postars

# 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 להתעלם מקובצי ה- Hosts שלך, כמו למשל סיומת שגויה (אך מוסתרת). - Arjan
אני רואה את המידע הזה. אבל אני לא יודע, למה אני יכול לעשות המארחים עבודה רק אני נערך hosts.ics. לפני עריכת hosts.ics, ניסיתי את כל השיטות מהנושא הזה, אבל המארחים לא עובד. - Unick


חוויתי את אותה בעיה, המארחים את ערכי הקובץ שמתעלמים מהם. ניסיתי הכל בזה וחוטים רבים אחרים ללא הצלחה. תיארתי לעצמי שאני אפרסם את מה שעובד בשבילי למקרה שמישהו אחר יגיע לזה.

  1. פתח את סייר Windows כמנהל
  2. מחק את הקובץ hosts
  3. פתח את Notepad בתור Administrator (מנהל מערכת) וצור קובץ hosts חדש
  4. התחל מאפס והוסף ערכים.
  5. ודא שקובץ המארחים אינו כולל סיומת .txt

הערה: פשוט פותח את קובץ המארחים ומחיק את התוכן, ומאמת שהוא היה 0kb והוספת אותו מחדש לא פעלה. אני חושד בעיה הרשאות על הקובץ.


2
2018-02-18 00:05





בילו שעות, כנראה ימים על זה.

IBM Trusteer Endpoint יכולת אבטחה יכולה לגרום לבעיה זו.

הוספתי את mysite.com לרשימת האתרים המהימנים שלה.

אני חושב כחלק האבטחה שלה היא מונעת תוכנות זדוניות או וירוסים המסיט אותך לאתרים חלופיים.

לקח mysite של רשימה של אתרים מהימנים וזה כבר לא בודק ו "מתקן" המארחים שלי קובץ הסחה.

מקווה שעוזר למישהו לפתור את הבעיה שלהם.


1
2018-02-16 21:00





אחת הבעיות שהוחמצו בדיון לעיל היא שמות בלתי מסויגים (שמות שאינם כוללים תקופה) בקובץ המארח. ייתכן שהגדרות הרשת שלך יתחילו לבעוט בנקודה זו ולהוסיף באופן אוטומטי את הדומיין שלך לסוף של דומיין בלתי מוסמך. כתוצאה מכך, ייתכן שהשם לא ייפתר, או גרוע מכך, יפתור את עצמו למכונה אחרת לגמרי.


1
2018-05-06 07:20





ב- Windows, ודא ש- HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath מופנה לספריית הקובץ hosts.


0
2018-03-18 06:56