現在 Windows 10 を利用してる状況にあります。
この環境で ping localhost
とやると
C:\WINDOWS\system32>ping localhost DESKTOP-PC001 [::1]に ping を送信しています 32 バイトのデータ: ::1 からの応答: 時間 <1ms ::1 からの応答: 時間 <1ms ::1 からの応答: 時間 <1ms ::1 からの応答: 時間 <1ms ::1 の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 0ms、最大 = 0ms、平均 = 0ms
上記のような結果になり、localhost へのping は、 IPv6 での応答になっていることが分かります。
これは、IPv4よりもIPv6 が優先されているから ということなんですが、
netsh interface ipv6 show prefixpolicies
コマンドを実行することで優先順位が確認できます。
(以下の結果では IPv6の通信が優先されています)
C:\WINDOWS\system32>netsh interface ipv6 show prefixpolicies アクティブ状態を照会しています... 優先順位 ラベル プレフィックス ---------- ----- -------------------------------- 50 0 ::1/128 40 1 ::/0 35 4 ::ffff:0:0/96 30 2 2002::/16 5 5 2001::/32 3 13 fc00::/7 1 11 fec0::/10 1 12 3ffe::/16 1 3 ::/96
プレフィックス | 説明 |
---|---|
::1/128 | IPv6 ループバックアドレス |
::/0 | IPv6 デフォルトルート |
::ffff:0:0/96 | IPv4-mapped IPv6 address |
IPv4を優先させる
::ffff:0:0/96
(IPv4-mapped IPv6 address) を最も優先順位が高い状態にすれば、IPv4での通信が優先されるようになります。
そのために優先順位を変更する必要があります。
管理者権限で、コマンドプロンプト(or Windows Termianl)を起動して以下を実行します。
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 55 4 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 2001::/32 5 5 netsh interface ipv6 set prefixpolicy fc00::/7 3 13 netsh interface ipv6 set prefixpolicy fec0::/10 1 11 netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12 netsh interface ipv6 set prefixpolicy ::/96 1 3
netsh interface ipv6 show prefixpolicies
コマンドを実行して優先順位が変更されていることを確認します。
C:\WINDOWS\system32>netsh interface ipv6 show prefixpolicies アクティブ状態を照会しています... 優先順位 ラベル プレフィックス ---------- ----- -------------------------------- 55 4 ::ffff:0:0/96 50 0 ::1/128 40 1 ::/0 30 2 2002::/16 5 5 2001::/32 3 13 fc00::/7 1 11 fec0::/10 1 12 3ffe::/16 1 3 ::/96
::ffff:0:0/96
が一番上(最優先)になっていることが分かります。
この状態で ping localhost
を実行してみると以下の通り IPv4 での応答 になっていることが分かります。
C:\WINDOWS\system32>ping localhost DESKTOP-PC001 [127.0.0.1]に ping を送信しています 32 バイトのデータ: 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 127.0.0.1 の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 0ms、最大 = 0ms、平均 = 0ms
優先順位を元に戻す
仮に優先順位を元に戻す場合は 管理者権限で netsh interface ipv6 reset
を実行して PC を再起動します。