Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

It worked for a while in the old configuration, but then stopped working for some reason.

Here is my /etc/hosts file from my 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

This blocks Reddit,but not Facebook.

I've tried flushing the DNS cache for the machine ("sudo killall -HUP mDNSResponder"), the bowsers (FF and Chrome) and I've tried restarting the computer.

And I've moved the entries to the top of the file on the advice of this article, but it didn't work before when it was at the bottom either. Each time it would block Reddit but not Facebook.

share|improve this question
2  
That is odd. It also didn't work for me - I wonder if it has to do with ML's facebook integration. I'm pondering how to test that theory. –  Jerry Seeger Feb 1 '13 at 0:52
1  
Searching the system folder for all mention of facebook.com found (among others) /System/Library/Caches/com.apple.internetaccounts.domainscache.plist which looked to my eye like the most likely culprit. I haven't tried messing with it, but it might be what you're looking for. I'd be really cautious, though. –  Jerry Seeger Feb 1 '13 at 1:10
1  
I would agree with @JerrySeeger that's it's probably a function of the Facebook integration. That said, why are you blocking sites with such a fickle method? If you want to control internet access, get a proxy. –  ta.speot.is Feb 3 '13 at 6:26
    
I only want to block it as it ruins my productivity during the day. It's not that big a deal, but more importantly I am very curious about the technical reasons I cant block it. –  seanieb Feb 3 '13 at 7:24
1  
What happens on dig facebook.com or nslookup facebook.com? –  JohannesM Feb 4 '13 at 22:54

4 Answers 4

up vote 10 down vote accepted
+100

harrymc is close but for some reason OS X (as of 10.8.2) doesn't respect the IPv6 loopback address of ::1 (probably a bug), so you have to use fe80::1%lo0. The reason you need to block IPv6 is because Facebook will serve you their site over V6 if your ISP supports it. You can easily verify this by installing a browser plugin that displays an icon when a site is being served via IPv6. The reason this wasn't a problem for you before is because Facebook likely only recently started serving their site over IPv6.

So the correct answer is:

# 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
share|improve this answer
2  
Hi Jesse, I copy pasted everything into my /etc/hosts and I still can get to facebook. Am I still missing something? –  gruszczy Oct 23 '13 at 6:01
    
doesn't work for me eider. I tried to block it in my router too, other sites are blocked fine, but not Facebook –  adrianTNT May 28 at 12:08

Try adding following line in /etc/resolv.conf

lookup file, bind

This should force OS X to use /etc/hosts before dns. The only problem is if you use dhcp, this file will be overwrote each reboot.

share|improve this answer

Try this :

# 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

If this doesn't work see the article Block Facebook which also suggests :

  • Blocking Facebook on the Router
  • Block Facebook with an OpenDNS custom block list

If this still doesn't work, you could try the application SelfControl.

share|improve this answer
    
The goal of this question isn't to simply let me block Facebook, I'd like to understand why the /etc/hosts file isn't working. –  seanieb Feb 4 '13 at 20:00

Try adding these

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

Then it should get blocked.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.