Miredoをインストールし、IPv6を起動して実行しているようです。 IPv6アドレスを指定すると、ホストをping6し、wgetまたはwebbrowserでWebページをダウンロードできますが、IPv4とIPv6の両方で提供されるホスト名を指定すると、ブラウザーは接続用のIPv4アドレスを選択します。
どうすればそれを変更し、ブラウザでIPv4ではなくIPv6を使用できるようにすることができますか?
いろいろと調べてみると、6to4/Teredoトンネルでは、ブラウザーがIPv6よりもIPv4を好むというヒントを見つけましたが、今のところ、その理由や方法を説明していません。
Firefoxおよびその他のMozilla/Geckoベースのブラウザの場合、IPv6がある場合はnetwork.dns.disableIPv6
のabout:config
設定はfalse
でなければなりません(Ubuntuではデフォルトでtrueに設定されています。ホームルーターのバグのあるDNSプロキシで問題が発生します)。
Freddybが指摘したように、これは、ホスト名を解決する標準システムコールの構成getaddrinfoに依存します。
問題を解決するには、/etc/gai.conf
のコンテンツを次の行に置き換えます。
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
label fec0::/10 5
label fc00::/7 6
#label 2001:0::/32 7
updated:前の応答が間違っていたことを指摘するためのthx to freddyb:3行目ではなく、最後の行にコメントする必要があります。今ではうまくいきます!
最近、Chrome、Firefox、および派生ブラウザは、サイトがIPv4よりも高速に応答する場合、実際にはIPv6を回避します。構成設定を使用してこの動作を変更することはできません。
この機能自体は一般的なユーザーにとっておそらく妥当なものですが、それを無効にできないことはほとんど私を怒らせます。現在、IPv6接続は非常に優れており、トンネリングによる遅延が大きい場合でも、IPv6にはIPv4を介した接続に比べていくつかの利点があります。私は長年IPv6でブラウジングしてきましたが、IPv6のルーティングとパフォーマンスはずっと良くなっていますが、このひどいブラウザの「ハック」機能は10年前に戻ってきました。
OK、私はこれを調べてきましたが、奇妙です。
1)ローカルプロキシを使用します。
マシンで実行されているSquidを介してプロキシするようにFirefoxを設定した場合、Firefox(より正確にはSquid)はmiredoトンネルを介して接続します。 miredoがインストールされているが、Firefoxが「プロキシなし」に設定されている場合、Firefoxは最初にIPV4を使用します。
2)aiccuをインストールする
aiccuをインストールしてトンネル(SiXXSなど)を設定すると、プロキシ設定に関係なく、IPV6がFirefoxで最初に使用されます。
MiredoはIPV6サイトに接続するために存在するため、IPV4が利用できない場合にのみ使用される可能性があります。その場合、aiccuを試してください。
答えは簡単です。ラベルを変更します。
label 2002::/16 1
label 2001:0::/32 1
これにより、「Vanilla」ipv6と同等になります。
コメントアウトしたままにすると、デフォルト値が選択されます。