2015.07.09: MicrosoftもIPv6無効は非推奨な旨を追記。
2014.06.25: NTTフレッツ光で発生する問題の対処方法(別ページ)作成。リンク設置)
2013.09.29: 初出
このサイトでは過去に、「IPv6の設定は、有効・無効どっちが良いの?」と題してインターネット接続に不具合の出るPC環境では「当面はIPv6の設定を無効化して利用しましょう」と解説していましたが、この提案もそろそろ古い情報になってきた感じです。
以下、IPv6の設定を有効にしつつ、IPv4の優先順位を上げる方法を紹介します。現時点では、以下のセッティングを行うのがベストだと思います。
※追記: 2017年 後半あたりから、IPv4優先にする設定も古くなって来た感じです。IPv6 を利用できるネット環境がある場合は「IPv6優先」で利用するのが良いかと思います。(Windows 10/8.1 は初期設定でOK)
Microsoftの以下ページにて、IPv6とIPv4の優先順位を入れ替えるツールが配布されています。
ツール配布先:
Microsoft - Windows で IPv6 またはそのコンポーネントを無効にする方法
World IPv6 Day (2011 年 6 月 8 日) におけるインターネット接続の問題の解決
※2つめのリンク先はダウンロードファイルがどこにあるか分からなくなった
ダウンロードリンクはページ中段にあります。
▲クリックで拡大
通常は上図の赤矢印のツールを利用します。
上側は IPv4 を(IPv6より)優先させるツール、
下側は IPv6 を(IPv4より)優先させるツール(つまり元に戻すツール)
となっています。これ以外のツールは「 IPv6 の有効/無効 を切り替える」ツールです。
恐らくですが、「その1:お手軽方法/Microsoftの Fix itツール」と同じ効果になると思われます。
IPv6 と IPv4 の優先順位を手動で切り替える場合は、以下の操作を行います。
管理者権限で起動したコマンドプロンプトを利用します。
▲クリックで拡大
「プログラムとファイルの検索」で「cmd」と入力し、cmd.exeを右クリックして「管理者として実行」を選択します。
優先順位の確認
netsh interface ipv6 show prefixpoliciesと入力します。
▲クリックで拡大
細かい説明は省きますが、「::/96」や「::ffff:0:0/96」より「::/0」が上にある場合は、IPv6の方が優先順位が高い状態です。
順位を入れ替えるコマンド
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0
netsh interface ipv6 set prefixpolicy ::1/128 40 1
netsh interface ipv6 set prefixpolicy ::/0 30 2
netsh interface ipv6 set prefixpolicy 2002::/16 20 3
netsh interface ipv6 set prefixpolicy ::/96 10 4
上記5つのコマンドを、上から順に1行ずつ、コマンドプロンプトに入力します(コピペでOKです)
コマンド入力中のスクリーンショット
▲クリックで拡大
コマンド入力後に「OK」と表示されていれば大丈夫です。
コマンド入力の際、ネットワークの設定変更に数秒~十数秒ほどかかる場合があります。
再び優先順位の確認
ここで再びnetsh interface ipv6 show prefixpoliciesと入力します。
▲クリックで拡大
「::/0」より「::ffff:0:0/96」の優先順位が上になりました。
これで、IPv4接続が可能な場合は、IPv6よりIPv4を優先してインターネット接続され、IPv4接続が出来ないサイトのみIPv6接続されるようになります。
(ここで念のため、PCを再起動しておきましょう。)
現時点では、上記のような設定にしておくのがベストのような気がします。
数年経つ頃には、元に戻した方が良い結果になるかもしれません。
(元に戻す際のコマンド)
netsh interface ipv6 set prefixpolicy ::1/128 50 0
netsh interface ipv6 set prefixpolicy ::/0 40 1
netsh interface ipv6 set prefixpolicy 2002::/16 30 2
netsh interface ipv6 set prefixpolicy ::/96 20 3
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 10 4
IPv4 を IPv6 より優先にする - MURA's Home Page
▲上記サイトの解説が、比較的分かりやすく、かつ丁寧に解説しています。
Windows XPは、初期設定ではIPv6は無効になっています。
XPでIPv6を有効にしたい場合は
・Windows XP IPv6 プロトコルに関する FAQ (microsoft)
・Windows XP IPv6インターネットの設定|Yahoo! BB
などを参考にして下さい。
また、IE7、IE8はIPv6に対応していません。
・IPv6 環境におけるインターネット利用のための技術情報-Interoperability
XPユーザーでIPv6の利用を考えている方はFirefoxやGoogle Chromeなど別ブラウザを使うようにしましょう。
Windows8では、初期設定でIPv6よりIPv4の方が優先順位が高くなっている様で、このページ内の情報を気にする必要は無い感じです。
ただし、一部の環境ではIPv4が優先となっている事が原因で、何やらトラブルが発生している感じです。
Windows8でIPv6とIPv4の両方が有効の時にIPv6を優先する方法-マイクロソフト コミュニティ
あと、Win8マシンとWin7マシンを共有したら上手く作動しない・・・みたいな情報もありますよね。私は複数台のPCでネットワーク構築する話題は苦手分野なので、イマイチ原因が分かっていません。
しかし、このページ内の情報を元にWin7/8のIPv6/4の優先順位を揃える事でWin8/7マシンの共有問題が解決出来るかもしれないですねえ。
(これはテキトーな予想&投げっ放し)