Як я можу змусити OSX Mavericks помітити зміну DNS у `/ etc / hosts`?


24

Поширений спосіб "заблокувати" веб-сайт (наприклад, усунути його як відволікання) - це редагувати /etc/hostsта вказувати домен на адресу зворотного зв'язку. Наприклад:

# Stop goofing off
127.0.0.1 youtube.com

В Mavericks я вважаю, що подібні зміни, здавалося б, ігноруються ОС; після редагування файлу (з судо) та збереження, сайт, який слід заблокувати, все ще завантажується.

Я спробував скинути кеш DNS таким чином:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Але сайт все-таки завантажується.

Як я можу змусити OSX Mavericks помітити зміни /etc/hosts?


1
Можливо, це кеш DNS браузера, який не розмитий? Який IP ping youtube.comвикористовується?
Леонід Шевцов

Побічна примітка: якщо ви використовуєте DNS для тимчасового блокування сайтів, selfcontrolapp.com для OSX прекрасно працює. Він змінює файл хостів і, здається, автоматично змиває кеш браузера. Вони також згадують подібні програми для інших платформ: github.com/SelfControlApp/selfcontrol/wiki/FAQ
Nathan Long

Відповіді:


19

Відповідно до сторінки керівництва хостів (5) , цей /etc/hostsфайл використовується mDNSResponder. Ваші спроби правильно промивають кеш-пам’ятку комп'ютера, але також потрібно очистити приватний кеш браузера.

Після кожного редагування /etc/hostsскидання mDNSResponderкешу за допомогою цієї технічної примітки Apple, ОС X: Як скинути кеш DNS :

sudo dscacheutil -flushcache

Після цього скиньте кеші браузера :

  • Safari: використовуйте пункт меню Safari > Скинути Safari .
  • Chrome: використовуйте пункт меню Chrome > Очистити дані перегляду .

1
Це і виправило. У розділі "Очистити дані перегляду" в Chrome розміщені прапорці для типів даних. "Очистити кеш" - це відповідне.
Натан Лонг

5

Видаліть кеш браузера та додайте 127.0.0.1 www.youtube.comу свій хост-файл.

youtube.comвирішує до www.youtube.com. Ваш браузер кешує цю інформацію та перенаправляє вас на www-сторінку.


0

У OS X 10.9 Mavericks виникають проблеми зі спробою перерахування декількох імен хостів в одному рядку / etc / hosts. Я спробував усі інші поради щодо DNS у цій публікації та пов’язаній публікації безрезультатно, поки не натрапив на посилання "проблеми" вище.

У мене раніше було щось подібне:

127.0.0.1 localhost host1 host2 host3 ...

але я виявив, що дозвіл цих хостів буде або вічно, або взагалі не працюватиме. Спроба отримати доступ до сайтів через браузери, як правило, добре (хоча іноді дуже повільно розв’язувати), але намагатися пінг із командного рядка не вийде.

Змінивши його в наступний формат, для мене все працювало нормально, і тепер усе чудово працює з ping, у браузері та будь-якому іншому:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Детальніше .


0

Зверху на відповідь Грехема, спробуйте chrome: // net-Internals / # dns (для Google Chrome), щоб побачити, що кешовано. Потім натисніть Очистити кеш хосту, щоб витерти все це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.