更新履歴 [ 全て表示戻す ]
2015.07.09:注意文に追記。

2014.06.25:NTTフレッツ光で発生する問題の対処方法(別ページ)作成。リンク設置)


このサイトでは過去に、「IPv6の設定は、有効・無効どっちが良いの?」と題してインターネット接続に不具合の出るPC環境では「当面はIPv6の設定を無効化して利用しましょう」と解説していましたが、この提案もそろそろ古い情報になってきた感じです。

 

以下、IPv6の設定を有効にしつつ、IPv4の優先順位を上げる方法を紹介します。現時点では、以下のセッティングを行うのがベストだと思います。

最初に注意:2015.07.09

その1:お手軽方法/Microsoftの Fix itツールを利用する

Microsoftの以下ページにて、IPv6とIPv4の優先順位を入れ替えるツールが配布されています。
ツール配布先:
Microsoft - Windows で IPv6 またはそのコンポーネントを無効にする方法
世界 IPv6 (2012 年 6 月 6 日)を起動した後にインターネット接続の問題を解決します。

ダウンロードリンクはページ下部にあります。
IPv6とIPv4の優先順位を入れ替えるツール
▲クリックで拡大
2014年6月時点ではリンク先の機械翻訳が非常に残念な感じですが
上側(50410)は IPv4を(IPv6より)優先させるツール、
下側(50411)は IPv6を(IPv4より)優先させるツール(つまり元に戻すツール)
となっています。

両方の修正ツールを試してみて、自分のPC環境でネットを快適に利用できる方を選ぶのがベストかと思います。

 

スポンサー リンク

その2:手動で IPv6 と IPv4 の優先順位を入れ替える方法

恐らくですが、「その1:お手軽方法/Microsoftの Fix itツール」と同じ効果になると思われます。
IPv6 と IPv4 の優先順位を手動で切り替える場合は、以下の操作を行います。

管理者権限で起動したコマンドプロンプトを利用します。
コマンドプロンプトの起動方法
▲クリックで拡大
「プログラムとファイルの検索」で「cmd」と入力し、cmd.exeを右クリックして「管理者として実行」を選択します。

優先順位の確認
netsh interface ipv6 show prefixpoliciesと入力します。
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
▲上記サイトの解説が、比較的分かりやすく、かつ丁寧に解説しています。

 

あとがき: 注意1(XPの場合)

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など別ブラウザを使うようにしましょう。

あとがき: 注意2(Windows8の場合)

Windows8では、初期設定でIPv6よりIPv4の方が優先順位が高くなっている様で、このページ内の情報を気にする必要は無い感じです。

ただし、一部の環境ではIPv4が優先となっている事が原因で、何やらトラブルが発生している感じです。
Windows8でIPv6とIPv4の両方が有効の時にIPv6を優先する方法-マイクロソフト コミュニティ

あと、Win8マシンとWin7マシンを共有したら上手く作動しない・・・みたいな情報もありますよね。私は複数台のPCでネットワーク構築する話題は苦手分野なので、イマイチ原因が分かっていません。
しかし、このページ内の情報を元にWin7/8のIPv6/4の優先順位を揃える事でWin8/7マシンの共有問題が解決出来るかもしれないですねえ。
(これはテキトーな予想&投げっ放し)