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


34

古い構成ではしばらく動作していましたが、何らかの理由で動作を停止しました。

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キャッシュをフラッシュしてみました。コンピューターを再起動してみました。

そして、この記事アドバイスに基づいてファイルの先頭にエントリを移動しましたが、それが最後になったときにも機能しませんでした。FacebookではなくRedditをブロックするたびに。


2
それは奇妙です。それは私にとってもうまくいきませんでした-MLのFacebook統合と関係があるのだろうか。私はその理論をテストする方法を考えています。
ジェリーシーガー

1
(とりわけ)/System/Library/Caches/com.apple.internetaccounts.domainscache.plistが見つかったfacebook.comのすべての言及をシステムフォルダーで検索しました。私はそれをいじってみませんでしたが、それはあなたが探しているものかもしれません。しかし、私は本当に用心深いでしょう。
ジェリーシーガー

1
私は@JerrySeegerに同意するだろう、それはおそらくFacebook統合の機能だろう。とはいえ、なぜこのような気まぐれな方法でサイトをブロックしているのですか?インターネットアクセスを制御する場合は、プロキシを取得します。
ta.speot.is

日中に私の生産性を損なうので、それをブロックしたいだけです。大したことではありませんが、もっと重要なのは、技術的な理由でブロックできないことです。
seanieb

1
何が起こるのdig facebook.comnslookup facebook.com
ヨハネス

回答:


43

harrymcは近いですが、何らかの理由でOS X(10.8.2以降)はIPv6ループバックアドレス:: 1(おそらくバグ)を尊重しないため、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

3
こんにちはジェシー、貼り付けたものをすべて/ etc / hostsにコピーしても、Facebookにアクセスできます。まだ何か不足していますか?
-gruszczy

私にとってはうまくいきません。ルーターでもブロックしようとしましたが、他のサイトは正常にブロックされていますが、Facebookではブロックされていません
adrianTNT

3
サファリの再起動をやめた後に機能した
Mujah Maskey 14

5

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

lookup file, bind

これにより、OS Xはdnsの前に/ etc / hostsを使用するようになります。唯一の問題は、dhcpを使用する場合、このファイルは再起動するたびに上書きされることです。


4

私もこれに圧倒されました。必要な手順のみを実行し、必要な構成ファイルのみをハッキングし、それ以上は何もしません。今日の時点で機能するものと機能しないもの、必要なものとそうでないものの概要を以下に示します

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

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 必要ありません

  • 追加lookup file, bind/etc/resolv.conf必要とされません-

これをテストするときに留意すべき重要なことは、一部のアプリケーションが独自のDNSキャッシュを持っていることです。たとえば、Chromeブラウザ:ページをリロードするたびにIPアドレスを検索することは意味がありません。IP facebook.com173.252.110.271分前であれば、今でも同じであるはずです。これにより、Chromeのキャッシュが期限切れになるのに数分かかるため、テストが難しくなります。消去する方法がわからない場合。

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


3

これを試してください:

# 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

これが機能しない場合は、Facebookのブロックの記事も参照してください。

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

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


この質問の目的は、単にFacebookをブロックすることではなく、/ etc / hostsファイルが機能しない理由を理解したいことです。
seanieb

@seanieb彼はこの答えを別の答えにリンクしました。そこに説明があります。

3

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


はい最後に:D。ドイツでMojaveと仕事をしています。
fl034

1

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.