私はChromeを実行しています。*。myname.comを127.0.0.2に解決するためにローカルDNSを持っています(「Host whatever.myname.com」または「Host myname.com」と入力します)正しいアドレスが表示されます。ただし、Chromeで「myname.com」と入力すると、「www.myname.com」にリダイレクトされ、「実際の」Webサイトは解決されません)欲しい。
「www.myname.com」ではなく「test.myname.com」と入力した場合のみ、Chromeは127.0.0.2に正しく解決します。Chrome =はwww.anything.comとanything.comでファンキーなことをしようとしています。
それを修正するには?
PS:私が使用しているローカルDNSはdnsmasqです。 myname.comを明示的に/ etc/hostsに配置した場合Chromeは127.0.0.2に正しく解決しますが、/ etc/hostsでワイルドカードを使用できません。
PPS:chrome:// net-internals /#dnsでChrome= myname.comとwww.myname.comが実際のパブリックIPに正しく変換されていることを確認できます。
実際、Chromeは、複数のDNSサーバー(ローカルDNS、ルーターDNS、IPv6のルーターDNS)と通信する独自のDNSクライアントを使用していました。私はchrome:// flagsに移動して無効にします「ビルトイン非同期DNS」。
プロキシ設定を変更して、必要なアドレスを使用するように強制できます。
.pac拡張子で新しいファイルを開きます。これらのファイルはシステムがプロキシを決定するために使用され、これをファイルのコンテンツにコピーします。
function FindProxyForURL(url, Host) {
if (Host=='www.myname.com' || Host=='myname.com'){
return 'PROXY 127.0.0.2';
}
// All other domains should connect directly without a proxy
return "DIRECT";
}
chromeプロキシ設定に移動し、[自動プロキシ設定のURL]にそのファイルへのパスを入力します。
dNSサーバーがなくても、マシンの別のポートにリダイレクトでき、必要に応じてプログラムできます。