web-dev-qa-db-ja.com

Chromiumが/ etc / hostsとdnsmasqを迂回するのはなぜですか?

私はArch Linux上で dnsmasq と一緒に hostsblock を使っていますWebサイト、そのうちの1つがfacebook.comwww.facebook.comです。

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

Chromiumだけが私のブロックリストを迂回するようです。それからfacebook.comにアクセスすると、私は直接facebookのホームページに行きます。

時間の初めからChromiumを再起動してからすべてをクリーンアップ(Ctrl + Shift + Delete)した後、私は望みの挙動を得た(= Facebookにアクセスできない)。

暫くすると(何が原因なのかはっきりわかりませんが)、Chromiumは再びローカルのdnsmasq DNSを無視し、facebook Homepageに正常にアクセスします。

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

質問は次のとおりです。ChromiumがローカルDNSをバイパスするのはなぜですか。また、停止するために何ができますか?

48
thiagowfx

この主題に関する参考文献の大部分は古いです。 Chromiumの古いバージョンをお持ちの場合は、 edvinas.me の回答に従ってください。

Chromiumの現在のバージョン(この記事が書かれた時点で:33rd)について、あなたがすべきことは次のとおりです。

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

更新

Chromeの新しいバージョン(この更新時点では55日)では、3番目の項目は次のようになります。予測サービスを使用してページをすばやく読み込む

参照

41
thiagowfx

更新された回答

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

chrome://net-internals/#dns

それからClear Host cacheボタンをクリックしてください。

古い答え

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

無効にするには:

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

  2. Under the Hoodタブをクリックします。

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

    4。閉じるボタンをクリックしてください。

    5。 Webページを再読み込みするには、更新してください。

26
phoops

もう一つのあいまいな可能性はあなたのシステムが自動プロキシ* .pacファイルを使うように設定されていることです。これは通常、企業環境でコンピュータを発行したときに* .pacファイルがブラウザにURLを解決するためのプロキシを経由するように指示している場合に起こります。これは/ etc/hostsファイルよりも優先され、*。pacファイルに何も一致しない場合はPROXYを返すという規則がある場合、Chromeは/ etc/hostsを尊重していないように見えます。これは通常あなたのコマンドラインが期待通りに動いている場合に当てはまります。発掘、pingなど.

他の解決策を試しても解決しない場合は、Chromeが使用している自動プロキシ設定がないことを確認してください。

2
Elijah Lynn