古い設定ではしばらく動作しましたが、何らかの理由で動作しなくなりました。
これが、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はブロックしません。
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
/etc/resolv.conf
に次の行を追加してみてください
lookup file, bind
これにより、OS XがDNSの前に/ etc/hostsを使用するようになります。唯一の問題は、dhcpを使用する場合、このファイルはリブートするたびに上書きされます。
私もこれに悩まされました。私は必要なステップのみを実行し、必要な構成ファイルのみをハックし、それ以外は何もしないようにしています。 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
で何かを変更するたびに、新しいシークレットウィンドウを開いて結果を表示すると、すぐに機能するはずです。シークレット以外のウィンドウも機能しますが、最終的には数分で完了します。
試してみてください 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 も参照してください。
それでもうまくいかない場合は、アプリケーション SelfControl を試してください。
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
そして奇妙なことに..これはうまくいった!
手順:
端末でSudo vi /etc/hosts
またはSudo pico /etc/hosts
を実行します
上記の内容を保存します。 (コメント# Block Facebook
から)
ターミナルでdscacheutil -flushcache
を実行します。
Safariで、キャッシュをクリアします。メニューバーでDevelop
を選択-> Empty Cache
コンピュータを再起動する必要がある場合があります。そして問題は解決しました!
これらを追加してみてください
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
その後、ブロックされます。