Chromiumが/ etc / hostsとdnsmasqをバイパスしているのはなぜですか?


51

私はいくつかのウェブサイトをブロックするためにArch Linux でhostsblockdnsmasqと一緒に使用しています。facebook.comwww.facebook.com

facebook.com(またはwww.facebook.com)への単純なping が127.0.0.1を返すため、すべてが正常に動作していることを知っています。また、これらのWebサイトにMidoriからアクセスすると、空白ページが返されます(これは、localhostで空白ページを返すためにkwakdデーモンを使用しているため、予期される動作です)。

Chromiumのみがブロックリストをバイパスしているようです。それからfacebook.comにアクセスすると、Facebookのホームページに直接アクセスできます。

時間の始まりからすべてをクリーンアップ(Ctrl + Shift + Delete)してChromiumを再起動すると、目的の動作が得られます(= Facebookにアクセスできません)。

ただし、しばらくすると(これが原因を正確に判断できません)、Chromiumはローカルのdnsmasq DNSを再び無視し、facebookホームページに正常にアクセスします。

ChromiumのDNSクエリのキャッシュとプリフェッチについて何かを読みましたが、無効にする方法がわかりません。

質問:ChromiumがローカルDNSをバイパスする理由と、それを停止するにはどうすればよいですか?


2
プロキシを使用していますか?プロキシを使用すると、DNS要求はプロキシで実行されます。
ゾレダチェ14年

いいえ、プロキシを使用していません。hostsblockにはプロキシは必要ありません。
thiagowfx 14年

以下の回答の方法を試しましたが、どういうわけかChromiumはまだIPアドレスを取得しています... Chromiumに固定されたアドレスはありますか?
ジェレミア

回答:


41

この主題に関する参照の大部分は古いものです。Chromiumの古いバージョンを使用している場合は、edvinas.meの回答に従ってください

Chromiumの現在のバージョン(この投稿が執筆された時点:33rd)で、すべきことは次のとおりです。

  1. に行く chrome://settings
  2. 「詳細設定を表示...」をクリックします
  3. [ ネットワークアクションを予測してページの読み込みパフォーマンスを向上させる]ボックスのマークを外します。
  4. に移動して、DNSプリフェッチが本当に無効になってchrome://dnsいるかどうかを確認します。あなたのようなそこに何か表示されるはずのDNS事前解決をし、TCPは、事前に接続が無効になっています。プリフェッチが無効になっていない場合、そこにいくつかのテーブルが表示されます。

更新

Chromeの新しいバージョン(この更新時点で55日目)では、3番目の項目は「予測サービスを使用してページをより迅速に読み込む」と表現されています

参照


27

更新された回答

必ずChromeのキャッシュを消去してください。これをアドレスバーに入力します。

chrome://net-internals/#dns

次に、Clear host cacheボタンをクリックします。

古い答え

ChromiumはデフォルトでGoogleの内部DNSを使用しています(8.8.8.8および8.8.4.4)

無効にするには:

  1. [ツール]メニュー(小さなレンチアイコン)をクリックし、[オプション]に移動します。

  2. Hood [フードの下]タブをクリックします。

    ‪3。[プライバシー]セクションで、[DNSプリフェッチを使用してページのロードパフォーマンスを向上させる]のチェックボックスをオフにします。

    ‪4。Close閉じるボタンをクリックします。

    ‪5。更新してWebページをリロードします。


1
あなたが言ったことは、古いバージョンのChromium / Google Chromeにのみ適用されます。新しいバージョンでは、この設定はもうありません(「Under the Hood」でもありません)。新しい設定は「ネットワークアクションを予測してページの読み込みパフォーマンスを改善する」でしょうか?悲しいことに、これはDNSに言及していないので、よくわかりません。
thiagowfx 14年

ChromiumのDNSキャッシュをクリアする方法に関する回答を更新しました。ぜひご覧ください。
フープ14年

ありがとう!新しい答えは、記録されたDNSを消去する最良の方法です(Ctrl + Shift + Deleteのようにすべてをクリーンアップする代わりに)。しかし、問題を永久に取り除くには、自分の答えがより適切だと思います(念のために、もう少しテストする必要があります)。
thiagowfx 14年

キャッシュをクリアせずに無効にした場合、キャッシュが期限切れになるまで機能しません。キャッシュがクリアされた後、Chromiumが何らかの方法で実IPをプリフェッチできるとは思わない。プリフェッチがオンになっていても、ブロックされた値をプリフェッチします。とにかく、少なくともあなたはそれを整理したようです。
フープ14年

2
「chrome:// net-internals /#dns」->クリア、動作していません。
Totty.js

2

もう1つのわかりにくい可能性は、システムが自動プロキシ* .pacファイルを使用するようにセットアップされていることです。これは通常、企業環境でコンピューターが発行され、*。pacファイルがブラウザーにURLを解決するためにプロキシを通過するよう指示している場合に当てはまります。これは/ etc / hostsファイルよりも優先され、*。pacファイルに一致するものがない場合にPROXYを返すルールが含まれている場合、Chromeは/ etc / hostsを尊重していないように見えます。これは通常、コマンドラインが期待どおりに機能している場合(例:dig、pingなど)に該当します。

他のソリューションを試してみても動作しない場合は、Chromeで使用している自動プロキシ設定がないことを確認してください。


1
これは私のために働いた!
MediumOne

-2

もし使用している場合、VPNプロキシ拡張子を(のようなGoogle ChromeのためBetternet)、あなたはおそらく、この問題が発生することがあります。拡張機能を無効にすると、問題が解決します。

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