Чому я не можу заблокувати Facebook за допомогою / etc / hosts у Mountain Lion (OS X)?


34

Він працював деякий час у старій конфігурації, але потім чомусь перестав працювати.

Ось мій файл / etc / hosts з мого Mountain Lion MacBook Air:

127.0.0.1 reddit.com www.reddit.com
127.0.0.1 facebook.com www.facebook.com
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

Це блокує Reddit, але не Facebook.

Я спробував очистити кеш-пам'ять DNS для машини ("sudo killall -HUP mDNSResponder"), бустерів (FF та Chrome) і спробував перезапустити комп'ютер.

І я перемістив записи до верхньої частини файлу за порадою цієї статті , але вона не працювала раніше, коли вона була і внизу. Кожного разу він блокував Reddit, але не Facebook.


2
Це дивно. Для мене це також не спрацювало - мені цікаво, чи це стосується інтеграції у фейсбук ML. Я розмірковую, як перевірити цю теорію.
Джеррі Зегер

1
Пошук у системній папці для всіх згадок про facebook.com знайшов (серед інших) /System/Library/Caches/com.apple.internetaccounts.domainscache.plist, який видався моїм очам як найімовірніший винуватець. Я не намагався з цим возитися, але це може бути те, що ви шукаєте. Я був би дуже обережний.
Джеррі Зеєгер

1
Я погодився б з @JerrySeeger, це, мабуть, функція інтеграції у Facebook. Це сказало, чому ви блокуєте сайти таким непосидючим методом? Якщо ви хочете контролювати доступ до Інтернету, отримайте проксі.
ta.speot.is

Я хочу лише заблокувати це, оскільки це знищує мою продуктивність протягом дня. Це не така вже й велика справа, але що ще важливіше, мені дуже цікаво з технічних причин, я не можу це заблокувати.
seanieb

1
Що відбувається на dig facebook.comабо nslookup facebook.com?
ЙоханнесM

Відповіді:


43

harrymc близький, але чомусь OS X (станом на 10.8.2) не поважає IPv6-адресну петлю :: 1 (можливо, помилка), тому вам доведеться використовувати fe80 :: 1% lo0. Причина, що вам потрібно заблокувати IPv6, полягає в тому, що Facebook обслуговуватиме ваш сайт через V6, якщо ваш провайдер підтримує його. Ви можете легко перевірити це, встановивши плагін браузера, який відображає піктограму, коли сайт обслуговується через IPv6. Причина, по якій це раніше не було для вас проблемою, полягає в тому, що Facebook, швидше за все, нещодавно почав обслуговувати свій сайт через IPv6.

Тож правильна відповідь:

# Block Facebook IPv4
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com
127.0.0.1   login.facebook.com
127.0.0.1   www.login.facebook.com
127.0.0.1   fbcdn.net
127.0.0.1   www.fbcdn.net
127.0.0.1   fbcdn.com
127.0.0.1   www.fbcdn.com
127.0.0.1   static.ak.fbcdn.net
127.0.0.1   static.ak.connect.facebook.com
127.0.0.1   connect.facebook.net
127.0.0.1   www.connect.facebook.net
127.0.0.1   apps.facebook.com

# Block Facebook IPv6
fe80::1%lo0 facebook.com
fe80::1%lo0 login.facebook.com
fe80::1%lo0 www.login.facebook.com
fe80::1%lo0 fbcdn.net
fe80::1%lo0 www.fbcdn.net
fe80::1%lo0 fbcdn.com
fe80::1%lo0 www.fbcdn.com
fe80::1%lo0 static.ak.fbcdn.net
fe80::1%lo0 static.ak.connect.facebook.com
fe80::1%lo0 connect.facebook.net
fe80::1%lo0 www.connect.facebook.net
fe80::1%lo0 apps.facebook.com

3
Привіт, Джессі, я копіюю все, що вставило, до мого / etc / hosts, і я все ще можу потрапити у facebook. Я все-таки щось пропускаю?
gruszczy

не працює для мене. Я намагався заблокувати його і в моєму маршрутизаторі, інші сайти заблоковані штрафом, але не Facebook
adrianTNT

3
він спрацював після того, як я кинув перезапустити сафарі
моджах Маскі

5

Спробуйте додати наступний рядок у /etc/resolv.conf

lookup file, bind

Це повинно змусити OS X використовувати / etc / hosts перед dns. Єдина проблема - якщо ви використовуєте dhcp, цей файл буде перезаписаний при кожному перезавантаженні.


4

Мене це теж затопило. Мені подобається робити лише необхідні кроки і зламати лише необхідні файли конфігурації і нічого більше. Ось підсумок того, що працює, а що ні, що потрібно чи ні, станом на сьогодні :

  • @ has jesse-endahl точно працює. Необхідно використовувати fe80::1%lo0для циклу IPv6, записи, ::1здається, ігноруються.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- не потрібно

  • Додавання lookup file, bindв /etc/resolv.conf- не потрібно

Важливо пам'ятати про те, що деякі програми мають власний кеш DNS. Наприклад, браузер Chrome: немає сенсу шукати IP-адреси під час кожного перезавантаження сторінки, якщо IP-адреса facebook.comбула 173.252.110.27хвилина тому, вона все одно повинна бути такою ж, чи не так? Це ускладнює тестування речей, тому що Chrome потребує декількох хвилин, щоб закінчити свій кеш. Якщо ви не знаєте способу відмовити його.

Один із методів тестування, який добре працював для мене, - це використання функції Chrome New Incognito Window . Кожен раз, коли ви щось змінюєте /etc/hosts, відкривайте нове вікно анонімного перегляду, щоб переглянути результат, і він повинен працювати негайно. Вікна без інкогніто також працюватимуть, врешті-решт, це займе пару хвилин.


3

Спробуйте це :

# Block Facebook IPv4
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com
127.0.0.1   login.facebook.com
127.0.0.1   www.login.facebook.com
127.0.0.1   fbcdn.net
127.0.0.1   www.fbcdn.net
127.0.0.1   fbcdn.com
127.0.0.1   www.fbcdn.com
127.0.0.1   static.ak.fbcdn.net
127.0.0.1   static.ak.connect.facebook.com
127.0.0.1   connect.facebook.net
127.0.0.1   www.connect.facebook.net
127.0.0.1   apps.facebook.com
# Block Facebook IPv6
::1 www.facebook.com
::1 facebook.com
::1 login.facebook.com
::1 www.login.facebook.com
::1 fbcdn.net
::1 www.fbcdn.net
::1 fbcdn.com
::1 www.fbcdn.com
::1 static.ak.fbcdn.net
::1 static.ak.connect.facebook.com
::1 connect.facebook.net
::1 www.connect.facebook.net
::1 apps.facebook.com

Якщо це не працює, дивіться статтю Блокувати Facebook, яка також пропонує:

  • Блокування Facebook на маршрутизаторі
  • Блокуйте Facebook за допомогою спеціального списку блоків OpenDNS

Якщо це все ще не працює, ви можете спробувати програму SelfControl .


Мета цього питання не просто дозволити мені блокувати Facebook, я хотів би зрозуміти, чому файл / etc / hosts не працює.
seanieb

@seanieb Він пов’язав цю відповідь з іншою відповіддю. Ви можете знайти пояснення там.

3

Mac OS X El Capitan: Версія 10.11.5

Сафарі: 9.1.1

Мені довелося використовувати комбінацію всіх вищезазначених відповідей, щоб остаточно заблокувати Facebook. Ось вміст мого /etc/hosts файлу:

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
# Block Facebook
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com
127.0.0.1   login.facebook.com
127.0.0.1   www.login.facebook.com
127.0.0.1   fbcdn.net
127.0.0.1   www.fbcdn.net
127.0.0.1   fbcdn.com
127.0.0.1   www.fbcdn.com
127.0.0.1   static.ak.fbcdn.net
127.0.0.1   static.ak.connect.facebook.com
127.0.0.1   connect.facebook.net
127.0.0.1   www.connect.facebook.net
127.0.0.1   apps.facebook.com
fe80::1%lo0 facebook.com
fe80::1%lo0 login.facebook.com
fe80::1%lo0 www.login.facebook.com
fe80::1%lo0 fbcdn.net
fe80::1%lo0 www.fbcdn.net
fe80::1%lo0 fbcdn.com
fe80::1%lo0 www.fbcdn.com
fe80::1%lo0 static.ak.fbcdn.net
fe80::1%lo0 static.ak.connect.facebook.com
fe80::1%lo0 connect.facebook.net
fe80::1%lo0 www.connect.facebook.net
fe80::1%lo0 apps.facebook.com
::1 www.facebook.com
::1 facebook.com
::1 login.facebook.com
::1 www.login.facebook.com
::1 fbcdn.net
::1 www.fbcdn.net
::1 fbcdn.com
::1 www.fbcdn.com
::1 static.ak.fbcdn.net
::1 static.ak.connect.facebook.com
::1 connect.facebook.net
::1 www.connect.facebook.net
::1 apps.facebook.com

І дивно .. це спрацювало!

Кроки:

  1. На своєму терміналі запустіть sudo vi /etc/hosts або sudo pico /etc/hosts

  2. Збережіть вищевказаний вміст. (з коментаря # Block Facebook)

  3. На терміналі запустіть dscacheutil -flushcache.

  4. На Safari очистіть кеш. Виберіть рядок меню Develop -> Empty Cache

  5. Можливо, доведеться перезавантажити комп’ютер. І проблема вирішена!


Так, нарешті: D. Робота в Німеччині з Мохаве.
fl034

1

Спробуйте додати їх

127.0.0.1 www.facebook.com

127.0.0.1 facebook.com 127.0.0.1 static.ak.fbcdn.net

127.0.0.1 www.static.ak.fbcdn.net

127.0.0.1 login.facebook.com

127.0.0.1 www.login.facebook.com

127.0.0.1 fbcdn.net

127.0.0.1 www.fbcdn.net

127.0.0.1 fbcdn.com

127.0.0.1 www.fbcdn.com

127.0.0.1 static.ak.connect.facebook.com

127.0.0.1 www.static.ak.connect.facebook.com

Тоді його слід заблокувати.

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