プロキシサーバーではなく、自分のコンピューターでローカルにDNS解決を実行できるかどうか疑問に思っていました。つまり、Webブラウザにhostsファイルなどを尊重させることはできますか? Firefoxでnetwork.proxy.socks_remote_dns
を無効にしようとしましたが成功しませんでした。
残念ながら、実際にはそのようには機能しません。
プロキシサーバーがない場合、ブラウザは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プロキシサーバーを見つけることも非常にまれです。