修改前缀优先级即可解决
参考以下内容
https://kb.firedaemon.com/support/solutions/articles/4000160803-prioritising-ipv4-over-ipv6-on-windows-10
https://zorz.cc/post/use-ipv4-first.html
查询前缀配置: netsh interface ipv6 show prefixpolicies
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
C:\Users\Administrator>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 |
第一个是ipv6本地环回
第二个是ipv6默认网关前缀
第五个::ffff:0:0/96才是所有ipv4的兼容地址
需要把::ffff:0:0/96这个地址放到第二位
1 2 |
C:\Users\Administrator>netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 45 4 persistent 确定。 |
设置完成之后, 优先级以发生变化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
C:\Users\Administrator>netsh interface ipv6 show prefixpolicies 查询活动状态... 优先顺序 标签 前缀 ---------- ----- -------------------------------- 50 0 ::1/128 45 4 ::ffff:0:0/96 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 |
此时在ping ipv6地址, 会优先使用ipv4形式, 只有加-6才能访问
浏览器访问也会优先使用ipv4, 但纯ipv6的地址也能访问, 只不过响应时间较长
如果需要还原配置可以使用以下命令
1 |
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 35 4 persistent |