web-dev-qa-db-ja.com

WebブラウザにDNSをローカルで解決するように強制する

プロキシサーバーではなく、自分のコンピューターでローカルにDNS解決を実行できるかどうか疑問に思っていました。つまり、Webブラウザにhostsファイルなどを尊重させることはできますか? Firefoxでnetwork.proxy.socks_remote_dnsを無効にしようとしましたが成功しませんでした。

7
westeros91

残念ながら、実際にはそのようには機能しません。

プロキシサーバーがない場合、ブラウザはDNSルックアップを実行し(最初にhostsファイルをチェックします)、次に返されたIPアドレスに直接接続します。

プロキシサーバーを使用している場合は、代わりにURL全体がプロキシサーバーに渡されるため、プロキシサーバーはホスト名を抽出してDNSルックアップを実行します。

どういうわけかブラウザにDNSルックアップを実行させたとしても、プロキシサーバーにhttp://1.2.3.4/のようなURLを渡します。これは、実際のホスト名を使用する場合とは異なる方法で処理されます。たとえば、間違ったHost:ヘッダーは、プロキシを使用せずにブラウザでhttp://1.2.3.4/にアクセスした場合と同様に、WebサーバーへのHTTPリクエストに設定されます。

残念ながら、ホスト名を上書きしてHTTPプロキシサーバーを使用する場合は、プロキシサーバー自体のhostsファイルを編集する必要があります。 SOCKS5は低レベルであるため、HTTPプロキシの代わりにSOCKS5プロキシを使用してこれを機能させることもできますが、最近ではSOCKSプロキシサーバーを見つけることも非常にまれです。

1
Malvineous