web-dev-qa-db-ja.com

launchdを介してブロックされたサイトを追加した後、/ etc / hostsがドメインをブロックしないのはなぜですか?

月曜日から金曜日の午前9時から午後3時まで、osX10.12.2上のいくつかのWebサイトをブロックするようにLaunchedをセットアップしようとしています。

launchdcp /etc/hosts_BLOCKED_sites.txt /etc/hostsに設定しました

Launchedはファイルを正しくコピーしているようです。

$ ls -la /etc/hosts   

    -rw-r--r--  1 root  wheel  715 Jan 10 15:01 /etc/hosts

$ Sudo cat /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   


    # Blocked sites redirected to 0.0.0.0  
    0.0.0.0 reddit.com   
    0.0.0.0 www.reddit.com  
    0.0.0.0 facebook.com  
    0.0.0.0 www.facebook.com  

ただし、/etc/hostsがアクセスをブロックするように設定された後でも、ブロックされたサイトを開くことができます。

/etc/hostsがサイトへのアクセスをブロックしていない理由について何か提案はありますか?

Chromeでサイトをブロックしようとしましたが、ブロックできませんでした。

  • Sudo killall -HUP mDNSResponderコマンドラインから
  • chrome://net-internals/#dnsを介してChrome DNSキャッシュをフラッシュしようとしました
  • Chromeソケットchrome://netinternals/#socketsをフラッシュしようとしました
  • ホストファイルを切り替えてサイトを127.0.0.1にリダイレクトしましたが、サイトはブロックされず、0.0.0.0にリダイレクトする方が速いと言われました。

これは違いを生みませんでした。ブロックされたすべてのサイトには、Chrome v55.0.2883.95から引き続きアクセスできます。

2
BryanWheelock

/ etc/hostsファイルの権限が600であることに気付きました。そのファイルの権限は通常644である必要があります。アプリケーションが/ etc/hostsを読み取れない場合は、DNSのみを使用します。

4

/etc/nsswitch.confに次のような行があることを確認しましたか?

ホスト:ファイルDNS

ファイルにそのような行がない場合、または行の前にdnsがある場合は、最初にdnsクエリが実行され、有効な回答が得られた場合、/ etc/hostsファイルは参照されません。

2

Ipv4 + ipv6のホストエントリを入力し、実行している

Sudo dscacheutil -flushcache; Sudo killall -HUP mDNSResponder

キャッシュをクリアするには、ホストエントリを有効にするためにChromeを再起動する必要がありました。

私のホストエントリ:

127.0.0.1       youtube.com
127.0.0.1       www.youtube.com
fe80::1%lo0      youtube.com
fe80::1%lo0     www.youtube.com
2
SebK

私はネットワーキングの専門家ではないので、私はこれについて間違っていることを受け入れています...

.0.0. は厳密に無効で、ルーティングできないメタアドレスであるため、無視されている可能性があります。

ルーティングのコンテキストでは、0.0.0.0は通常、デフォルトルート、つまりローカルネットワーク上のどこかではなくインターネットの「残りの部分」につながるルートを意味します。

代わりに127.0.0.1を試してください。これは、デフォルトのループバックアドレス、つまり「me」です。

私はIPv6が苦手ですが、変更することで修正されるいくつかの問題を知っています
::1 localhost

::1 127.0.0.1

2
Tetsujin

それらを127.0.0.1のエイリアスとして記述してみてください

127.0.0.1     localhost www.facebook.com www.reddit.com
1
Luca Natali

最初に問題の原因を特定します。それはChromeからですか?キャッシュからですか?または、hostsファイル自体からですか?

  1. ホストファイルのencodingを確認してください。UTF-8ではなくASCII)である必要があります。
  2. これまでにアクセスしたことのないWebサイトをhostsファイルに追加してから、キャッシュまたはhostsファイルに問題があるかどうかを確認してください。
  3. Digコマンドを使用して、Chromeキャッシュに問題があるかどうかを確認してください。

提案:次のような拡張機能を使用してChromeで目標を達成できます: https://chrome.google.com/webstore/detail/block-site/eiimnmioipafcokbfikbljfdeojpcgbh?hl = en

1
Opaida

Mavericksでホストファイルのオーバーライドが機能しない|公式Appleサポートコミュニティ

ホストファイルはキャッシュされます。 OSXを再起動するとリロードされます。次のコマンドを使用して、キャッシュのリロードを強制することもできます。

Sudo killall -HUP mDNSResponder

<...> TextEditを使用すると、ファイルが破損する可能性があります。ファイルはプレーンである必要がありますASCII text <...>。TextWranglerツール(無料)を使用するか、nanoエディター(または、vimまたはemacsに精通している場合)を使用します。 <...>:

Sudo nano /etc/hosts

/ etc/hostsファイルがSnowLeopardで使用されていません|公式Appleサポートコミュニティ 提案:

編集するときは正しい構文を使用し、正しい権限を持っていることを確認してください。システムが所有し、644の権限を持っている必要があります。

0
ivan_pozdeev