web-dev-qa-db-ja.com

Mountain Lion(OS X)で/ etc / hostsを使用してFacebookをブロックできないのはなぜですか?

古い設定ではしばらく動作しましたが、何らかの理由で動作しなくなりました。

これが、Mountain Lion MacBook Airの/ etc/hostsファイルです。

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はブロックしません。

マシン( "Sudo killall -HUP mDNSResponder")、バウザー(FFとChrome)のDNSキャッシュをフラッシュして、コンピューターを再起動してみました。

そして、エントリを この記事のアドバイス のファイルの上部に移動しましたが、下部にある場合も以前は機能しませんでした。それは毎回RedditをブロックしますがFacebookはブロックしません。

34
seanieb

harrymcは近いですが、何らかの理由でOS X(10.8.2以降)は:: 1(おそらくバグ)のIPv6ループバックアドレスを考慮しないため、fe80 :: 1%lo0を使用する必要があります。 IPv6をブロックする必要がある理由は、ISPがサポートしている場合、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
43
Jesse Endahl

/etc/resolv.confに次の行を追加してみてください

lookup file, bind

これにより、OS XがDNSの前に/ etc/hostsを使用するようになります。唯一の問題は、dhcpを使用する場合、このファイルはリブートするたびに上書きされます。

5
John Siu

私もこれに悩まされました。私は必要なステップのみを実行し、必要な構成ファイルのみをハックし、それ以外は何もしないようにしています。 todayの時点で、何が機能し、何が機能しないか、何が必要であるか、または不要であるかの概要を次に示します。

  • @ jesse-endahl のハックは正確に機能します。 IPv6ループバックにfe80::1%lo0を使用する必要がある場合、::1のエントリは無視されるようです。

  • Sudo dscacheutil -flushcache; Sudo killall -HUP mDNSResponder-不要

  • lookup file, bind/etc/resolv.confを追加-不要

これをテストするときに覚えておくべき重要なことは、一部のアプリケーションには独自のDNSキャッシュがあるということです。たとえば、Chromeブラウザー:facebook.comのIPが173.252.110.27であった場合、1ページ前にIPアドレスをルックアップしても意味がありません。 Chromeがキャッシュを期限切れにするのに数分かかるため、これをテストするのは難しくなります。キャッシュを消去する方法がわからない場合を除きます。

私にとってうまくいったテスト方法の1つは、Chromeの新しいシークレットウィンドウ機能を使用することです。 /etc/hostsで何かを変更するたびに、新しいシークレットウィンドウを開いて結果を表示すると、すぐに機能するはずです。シークレット以外のウィンドウも機能しますが、最終的には数分で完了します。

4
janos

試してみてください 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

これが機能しない場合は、記事 Block Facebook も参照してください。

  • ルーターでFacebookをブロックする
  • OpenDNSカスタムブロックリストでFacebookをブロックする

それでもうまくいかない場合は、アプリケーション SelfControl を試してください。

3
harrymc

Mac OS X El Capitan:バージョン10.11.5

Safari: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. コンピュータを再起動する必要がある場合があります。そして問題は解決しました!

3
Meghna Natraj

これらを追加してみてください

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

その後、ブロックされます。

1