Mengapa saya tidak bisa memblokir Facebook menggunakan / etc / hosts di Mountain Lion (OS X)?


34

Ini bekerja untuk sementara di konfigurasi lama, tetapi kemudian berhenti bekerja karena suatu alasan.

Ini file / etc / hosts saya dari Mountain Lion MacBook Air saya:

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

Ini memblokir Reddit, tetapi bukan Facebook.

Saya sudah mencoba membilas cache DNS untuk mesin ("sudo killall -HUP mDNSResponder"), para bowser (FF dan Chrome) dan saya sudah mencoba me-restart komputer.

Dan saya sudah memindahkan entri ke atas file atas saran dari artikel ini , tetapi tidak berhasil sebelum ketika itu di bagian bawah juga. Setiap kali itu akan memblokir Reddit tetapi tidak Facebook.


2
Itu aneh. Itu juga tidak berhasil untuk saya - saya ingin tahu apakah itu ada hubungannya dengan integrasi facebook ML. Saya sedang memikirkan bagaimana cara menguji teori itu.
Jerry Seeger

1
Mencari folder sistem untuk semua penyebutan facebook.com ditemukan (antara lain) / System / Perpustakaan / cache / com.apple.internetaccounts.domainscache.plist yang tampak di mata saya seperti pelakunya yang paling mungkin. Saya belum mencoba mengacaukannya, tetapi mungkin itu yang Anda cari. Saya akan sangat berhati-hati.
Jerry Seeger

1
Saya setuju dengan @JerrySeeger bahwa itu mungkin fungsi dari integrasi Facebook. Yang mengatakan, mengapa Anda memblokir situs dengan metode yang berubah-ubah? Jika Anda ingin mengontrol akses internet, dapatkan proxy.
ta.speot.is

Saya hanya ingin memblokirnya karena merusak produktivitas saya pada siang hari. Ini bukan masalah besar, tetapi yang lebih penting saya sangat ingin tahu tentang alasan teknis saya tidak bisa memblokirnya.
seanieb

1
Apa yang terjadi pada dig facebook.comatau nslookup facebook.com?
JohannesM

Jawaban:


43

harrymc dekat tetapi karena alasan tertentu OS X (pada 10.8.2) tidak menghormati alamat loopback IPv6 :: 1 (mungkin bug), jadi Anda harus menggunakan fe80 :: 1% lo0. Alasan Anda perlu memblokir IPv6 adalah karena Facebook akan melayani Anda di situs mereka melalui V6 jika ISP Anda mendukungnya. Anda dapat dengan mudah memverifikasi ini dengan menginstal plugin browser yang menampilkan ikon ketika situs dilayani melalui IPv6. Alasan ini bukan masalah bagi Anda sebelumnya adalah karena Facebook kemungkinan baru saja mulai melayani situs mereka melalui IPv6.

Jadi jawaban yang benar adalah:

# 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
Halo Jesse, saya menyalin semua yang sudah disisipkan ke / etc / hosts saya dan saya masih bisa ke facebook. Apakah saya masih melewatkan sesuatu?
gruszczy

tidak bekerja untuk saya eider. Saya mencoba untuk memblokirnya di router saya juga, situs lain diblokir dengan baik, tetapi tidak Facebook
adrianTNT

3
itu berhasil setelah saya berhenti me-restart safari
Mujah Maskey

5

Coba tambahkan baris berikut ini /etc/resolv.conf

lookup file, bind

Ini akan memaksa OS X untuk menggunakan / etc / hosts sebelum dns. Satu-satunya masalah adalah jika Anda menggunakan dhcp, file ini akan ditimpa setiap reboot.


4

Saya telah diinjak oleh ini juga. Saya suka hanya melakukan langkah-langkah yang diperlukan dan hanya meretas file konfigurasi yang diperlukan dan tidak lebih. Berikut ini ringkasan dari apa yang berfungsi dan apa yang tidak, apa yang perlu atau tidak, pada hari ini :

  • @ hack jesse-endahl bekerja persis. Perlu digunakan fe80::1%lo0untuk loopback IPv6, entri untuk ::1tampaknya diabaikan.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- tidak dibutuhkan

  • Menambahkan lookup file, binddi /etc/resolv.conf- tidak diperlukan

Satu hal penting yang perlu diingat ketika menguji ini adalah bahwa beberapa aplikasi memiliki cache DNS mereka sendiri. Misalnya browser Chrome: itu tidak masuk akal untuk pencarian alamat IP pada setiap halaman isi ulang, jika IP facebook.comadalah 173.252.110.27satu menit yang lalu masih harus sama sekarang, kan? Ini membuat sulit untuk menguji hal-hal, karena perlu beberapa menit untuk Chrome untuk kedaluwarsa cache. Kecuali Anda tahu metode untuk menghapusnya.

Salah satu metode pengujian yang bekerja dengan baik bagi saya adalah menggunakan fitur Jendela Penyamaran Baru dari Chrome. Setiap kali Anda mengubah sesuatu /etc/hosts, buka jendela penyamaran baru untuk melihat hasilnya, dan itu akan langsung berfungsi. Jendela non-penyamaran juga akan berfungsi, pada akhirnya, hanya perlu beberapa menit.


3

Coba ini :

# 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

Jika ini tidak berhasil lihat artikel Blokir Facebook yang juga menyarankan:

  • Memblokir Facebook di Router
  • Blokir Facebook dengan daftar blokir khusus OpenDNS

Jika ini masih tidak berhasil, Anda bisa mencoba aplikasi SelfControl .


Tujuan dari pertanyaan ini bukan hanya membiarkan saya memblokir Facebook, saya ingin memahami mengapa file / etc / hosts tidak berfungsi.
seanieb

@seanieb Ia telah mengaitkan jawaban ini dengan jawaban lain. Anda dapat menemukan penjelasannya di sana.

3

Mac OS X El Capitan: Versi 10.11.5

Safari: 9.1.1

Saya harus menggunakan kombinasi dari semua jawaban di atas untuk dapat akhirnya memblokir Facebook. Inilah isi /etc/hosts file saya :

# 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

Dan anehnya .. ini berhasil!

Tangga:

  1. Di terminal Anda, jalankan sudo vi /etc/hosts atau sudo pico /etc/hosts

  2. Simpan konten di atas. (dari komentar # Block Facebook)

  3. Di terminal, jalankan dscacheutil -flushcache.

  4. Di Safari, kosongkan cache. Bilah menu pilih Develop -> Empty Cache

  5. Anda mungkin harus me-restart komputer Anda. Dan masalah terpecahkan!


Ya akhirnya: D. Bekerja di Jerman bersama Mojave.
fl034

1

Coba tambahkan ini

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

Maka harus diblokir.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.