在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的地址也能访问, 只不过响应时间较长

经验分享 程序员 微信小程序 职场和发展