На основі власного досвіду та того, з чим я стикався під час гуглінгу, ось що спробувати:
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
а не host
і т.д.
- Чи правильне розширення? Він не повинен мати розширення (
hosts
не hosts.txt
) - будьте обережні, якщо ви налаштували вікна, щоб приховати відомі розширення, перевірте властивості, щоб бути впевненим: правильний тип файлу хостів відображатиметься як "Файл".
- Чи дотримувалися ви правильного синтаксису ? Ви випадково ввели префікс рядків з хеш (
#
), який вказує коментарі?
- Ви подбали про всі варіанти (
www.example.com
і example.com
- найбезпечніше просто додати обидва)?
3. Пробіл
Формат для кожного рядка - IP address
це горизонтальна вкладка (код втечі \t
, ASCII HT
, шістнадцятковий 0x09
) або єдиний пробіл (шістнадцятковий 0x20
), потім ім'я хоста, тобто. www.example.com
, потім нарешті повернення вагона з поданням рядка (коди втечі \r\n
, ASCII CRLF
, шістнадцятковий 0x0d 0x0a
).
Зразки записів, використовуючи контрольні зображення Unicode для позначення контрольних символів. (Не копіюйте та не вставляйте їх у файл хостів!)
192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊
Окремі байти можуть переглядатись у Блокноті ++ за допомогою шестигранного редактора . Блокнот ++ також відображатиме спеціальні символи (Вид -> Показати символ), щоб ви могли легко перевірити кількість та вид символів пробілу.
Якщо ви скопіювали і вставили записи хостів звідкись, ви можете отримати кілька пробілів. Теоретично хости підтримують декілька пробілів, що розділяють два стовпчики, але спробувати інше, якщо нічого іншого не виходить.
Щоб захиститись, переконайтесь, що всі рядки у файлі хостів використовують або вкладки, або пробіли, а не обидва.
Нарешті, закінчіть файл порожнім рядком.
4. Ключ реєстру
Існує ключ реєстру, який визначає розташування файлу хостів. Імовірно, Windows насправді не підтримує розміщення файлу хостів в інших місцях, але ви, можливо, захочете це перевірити. Ключ:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
Запис має бути:
%SystemRoot%\System32\drivers\etc
5. Дозволи
Іноді у файлі є проблеми з дозволами, атрибутами файлу тощо. Щоб відтворити файл із дозволами за замовчуванням:
- Створіть на робочому столі новий текстовий файл.
- Скопіюйте та вставте вміст поточного файлу хостів у цей файл у Блокноті.
- Збережіть новий текстовий файл і перейменуйте його в
hosts
.
- Скопіюйте ( не переміщуйте ) файл у свій
%SystemRoot%\System32\drivers\etc
каталог та перезапишіть старий файл.
Останній пункт важливий: копіювання працює, переміщення не робить.
Локальний Users
обліковий запис повинен мати можливість читати файл хостів . Щоб переконатися (у Windows 7):
- Перейдіть до
%SystemRoot%\System32\drivers\etc
Провідника Windows.
- Якщо ви не бачите
hosts
файл, переконайтеся, що ви можете бачити приховані та системні файли .
- Клацніть правою кнопкою миші на
hosts
файл та виберіть Properties
із контекстного меню.
- У
hosts Properties
вікні натисніть на Security
вкладку.
- Вивчіть список імен у
Group or user names:
полі. Якщо %COMPUTERNAME%\Users
він присутній, натисніть на нього, щоб переглянути дозволи.
- Якщо
Users
немає або є, але не має Read
дозволу, натисніть Edit...
.
- Якщо
Users
його немає, клацніть Add...
, введіть Users
, натисніть Check Names
кнопку ОК або натисніть клавішу Enter.
- Виберіть
Users
і переконайтеся Read & execute
, що у Allow
стовпці встановлено прапорець . Натисніть кнопку ОК. Якщо з'явиться Windows Security
вікно попередження, виберіть Yes
продовження.
- Клацніть OK, щоб закрити
hosts Properties
вікно.
- Перейдіть до розділу 1 цієї відповіді та дотримуйтесь вказівок, щоб перевірити, чи працює він зараз.
6. Кодування
Файл хостів повинен бути закодований в ANSI або UTF-8 без BOM. Це можна зробити за допомогою Файл -> Зберегти як.
7. Проксі
Якщо у вас налаштований проксі, він може обійти файл хостів. Рішення полягає в тому, щоб не використовувати проксі-сервер або конфігурувати його, щоб цього не робити.
Щоб перевірити, перейдіть до свого браузера Internet Explorer -> Параметри Інтернету -> З'єднання -> Установки локальної мережі. Якщо все порожньо і встановлено прапорець "Автоматично визначати налаштування", ви не використовуєте проксі.
Якщо ви покладаєтесь на проксі-сервер для доступу до Інтернету і тому не хочете його відключати, ви можете додати винятки, перейшовши до Internet Explorer -> Параметри Інтернету -> З'єднання -> Налаштування локальної мережі -> Проксі-сервер / Додатково. Потім додайте свої винятки до текстового поля "Винятки". Напрlocalhost;127.0.0.1;*.dev
8. DNS-адреса
(Це також може вирішити проблеми з проксі.)
Перейдіть до властивостей мережевих з'єднань, потім налаштування TCP / IP та змініть перший DNS-сервер на 127.0.0.1
(localhost). Друге, мабуть, має бути вашим фактичним IP-адресою DNS.
Це не обов'язково для роботи файлу хостів , але це може допомогти у вашому випадку, якщо щось настроєно дивним чином.
9. .локальні адреси
Якщо ви використовуєте запис домену .local у формі myhost.local і він ігнорується, будь ласка, спробуйте наступне
x.x.x.x myhost.local www.myhost.local
навіть якщо www.myhost.local не існує. Windows якось не додає свою робочу групу або локальнийдомен.