Facebook'u Mountain Lion'da / etc / hosts kullanarak engelleyemiyorum (OS X)?


34

Eski konfigürasyonda bir süre çalıştı, ancak bir sebepten dolayı çalışmayı durdurdu.

İşte benim Mountain Lion MacBook Air'den / etc / hosts dosyası:

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

Bu Reddit'i engeller ancak Facebook'u engeller.

Makine için DNS önbelleğini temizlemeye çalıştım ("sudo killall -HUP mDNSResponder"), yaylayıcılar (FF ve Chrome) ve bilgisayarı yeniden başlatmayı denedim.

Ve bu makalenin tavsiyesinde yer alan girişleri dosyanın üstüne getirdim , ancak daha önce de çalışmadı. Her seferinde Reddit'i engellerdi, ancak Facebook'u engellemezdi.


2
Bu garip. Aynı zamanda benim için işe yaramadı - merak ediyorum ML'nin facebook entegrasyonu ile ilgisi var. Bu teoriyi nasıl test edeceğimi düşünüyorum.
Jerry Seeger

1
Facebook.com adresinden bahsettiğim sistem klasöründe arama yapmak, diğerlerinin gözünde en muhtemel suçlu gibi görünen /System/Library/Caches/com.apple.internetaccounts.domainscache.plist 'i buldu. Onunla uğraşmayı denemedim, ama aradığın şey olabilir. Yine de çok dikkatli olurdum.
Jerry Seeger

1
@JerrySeeger ile aynı fikirdeyim, ki bu muhtemelen Facebook entegrasyonunun bir işlevi. Yani, neden böyle bir fickle yöntemiyle siteleri engelliyorsunuz? İnternet erişimini kontrol etmek istiyorsanız bir proxy edinin.
ta.speot.

Sadece gün boyunca üretkenliğimi bozduğu için engellemek istiyorum. Bu o kadar büyük bir şey değil, ama daha da önemlisi, bunu engelleyemediğim teknik nedenleri çok merak ediyorum.
seanieb

1
Ne oluyor dig facebook.comya da nslookup facebook.com?
JohannesM

Yanıtlar:


42

harrymc yakın ancak bir nedenden ötürü OS X (10.8.2 itibariyle), :: 1'in IPv6 geridöngü adresine uymuyor (muhtemelen bir hata), bu nedenle fe80 :: 1% lo0 kullanmanız gerekiyor. IPv6'yı engellemenizin nedeni, ISS'niz destekliyorsa, Facebook'un V6 üzerinden sitelerini sunmasıdır. Bir siteye IPv6 aracılığıyla sunulurken bir simge görüntüleyen bir tarayıcı eklentisi yükleyerek bunu kolayca doğrulayabilirsiniz. Bunun daha önce sizin için bir sorun olmamasının nedeni, Facebook'un büyük olasılıkla IPv6 üzerinden kendi sitelerinde hizmet vermeye başlamasıydı.

Yani doğru cevap:

# 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
Merhaba Jesse, / etc / hosts dosyamın içine her şeyi yapıştırdım ve yine de facebook'a ulaşabiliyorum. Hala bir şey mi kaçırıyorum?
gruszczy

benim için çalışmıyor eider. Ben de yönlendiricimde engellemeye çalıştım, diğer siteler iyi engellendi, ancak Facebook değil
adrianTNT


5

İçine şu satırı eklemeyi deneyin /etc/resolv.conf

lookup file, bind

Bu, OS X'i / etc / hosts dosyasını dns'den önce kullanmaya zorlamalıdır. Tek sorun dhcp kullanıyorsanız, bu dosyanın her yeniden başlatılmasının üzerine yazılmasıdır.


4

Ben de bunaldım. Sadece gerekli adımları atmayı seviyorum ve sadece gerekli yapılandırma dosyalarını kesmek istiyorum. İşte özetini aşağıda itibariyle gerekli veya ne olmadığını neyin işe yarayıp neyin değil, bugünden :

  • @ jesse-endahl 'in hack işlevi tam olarak çalışıyor. fe80::1%lo0IPv6 geridöngülemesi için kullanmanız gerekir , girişleri ::1göz ardı edilir.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- gerekli değil

  • Ekleme lookup file, bindiçinde /etc/resolv.conf- gerekli değildir

Bunu test ederken akılda tutulması gereken önemli bir nokta, bazı uygulamaların kendi DNS önbelleklerine sahip olmalarıdır. Örneğin Chrome tarayıcısı: IP'ye ait eğer, her sayfada yeniden yüklemede IP adreslerini arama için mantıklı değil facebook.comidi 173.252.110.27bir dakika önce hala şimdi aynı olmalıdır, değil mi? Bu, bir şeyleri test etmeyi zorlaştırıyor, çünkü Chrome'un önbelleğinin süresinin dolması birkaç dakika sürüyor. Çıkarma yöntemini bilmiyorsan.

Benim için iyi sonuç veren bir test yöntemi , Chrome'un Yeni Gizli Penceresi özelliğini kullanmaktır . /etc/hostsBir şeyi her değiştirdiğinizde , sonucu görüntülemek için yeni bir gizli pencere açın ve hemen çalışması gerekir. Gizli olmayan pencereler de çalışacaktır, sonunda birkaç dakika sürer.


3

Deneyin bu :

# 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

Bu işe yaramazsa, şunu da öneren Facebook Engelle makalesine bakın :

  • Router'da Facebook'u Engelleme
  • Bir OpenDNS özel blok listesiyle Facebook'u engelle

Bu hala işe yaramazsa, SelfControl uygulamasını deneyebilirsiniz .


Bu sorunun amacı sadece Facebook'u engellememe izin vermemek, / etc / hosts dosyasının neden çalışmadığını anlamak istiyorum.
seanieb,

@seanieb Bu cevabı başka bir cevaba bağladı. Açıklamayı orada bulabilirsiniz.

2

Mac OS X El Capitan: Sürüm 10.11.5

Safari: 9.1.1

Sonunda Facebook'u engelleyebilmek için yukarıdaki tüm cevapların bir kombinasyonunu kullanmak zorunda kaldım. İşte dosyamın içeriği /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

Ve garip bir şekilde ... bu işe yaradı!

Adımlar:

  1. Terminalinizde koşun sudo vi /etc/hosts ya da sudo pico /etc/hosts

  2. Yukarıdaki içerikleri saklayın. (yorumdan # Block Facebook)

  3. Terminalde çalıştırın dscacheutil -flushcache.

  4. Safari'de önbelleği temizleyin. Menü çubuğu seçimi Develop -> Empty Cache

  5. Bilgisayarınızı yeniden başlatmanız gerekebilir. Ve problem çözüldü!


1

Bunları eklemeyi deneyin

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

O zaman tıkanmalı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.