在ipv6环境下优先使用ipv4:
使用需求:
多网关ipv6配置了网关跃点, 导致优先使用宽带网关出口, 校内网PT站会ban掉非内网ipv6的访问, 导致现在无法访问PT站
但校内网的话, 使用ipv4是能够访问的, 所以, 将网络配置成ipv4优先即可
解决方案
配置前缀优先级可解决问题
参考博客: https://zorz.cc/post/use-ipv4-first.html https://kb.firedaemon.com/support/solutions/articles/4000160803-prioritising-ipv4-over-ipv6-on-windows-10
查询前缀配置:
PS C:UsersAdministrator> netsh interface ipv6 show prefixpolicies 查询活动状态... 优先顺序 标签 前缀 ---------- ----- -------------------------------- 50 0 ::1/128 40 1 ::/0 30 2 2002::/16 20 3 ::/96 10 4 ::ffff:0:0/96 5 5 2001::/32
第一个是ipv6本地环回
第二个是ipv6默认网关前缀
第五个::ffff:0:0/96才是所有ipv4的兼容地址
需要把::ffff:0:0/96这个地址放到第二位
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 45 4 persistent
win7中使用参数名=的形式会出问题:
PS C:UsersAdministrator> netsh interface ipv6 set prefixpolicy prefix=::ffff:0:0/96 precedence=45 store=persistent 一个或多个重要的参数没有输入。 请验证需要的参数,然后再次输入。 此命令提供的语法不正确。请查看帮助以获取正确的语法信息。
设置完成之后, 优先级以发生变化
PS C:UsersAdministrator> netsh interface ipv6 show prefixpolicies 查询活动状态... 优先顺序 标签 前缀 ---------- ----- -------------------------------- 50 0 ::1/128 45 4 ::ffff:0:0/96 40 1 ::/0 30 2 2002::/16 20 3 ::/96 5 5 2001::/32
此时在ping ipv6地址, 会优先使用ipv4形式, 只有加-6才能访问
浏览器访问也会优先使用ipv4, 但纯ipv6的地址也能访问, 只不过响应时间较长