IPv4 / IPv6 双栈网络优先使用 IPv4 协议栈 Windows / Linux 设置方法

最近这几年国内网络基本都普及了 IPv4 / IPv6 双栈网络,可是在使用过程中,却经常发现 IPv6 的路由比较差,无论是响应速度还是质量都堪忧,就目前阶段而言国内 IPv6 的 Peer 还不能和 IPv4 相比。

根据 RFC3484 规定在双栈网络的情况下,默认都是优先使用 v6 协议,如果无法连接或超时则会回落 v4 这个时间大概是 300ms 左右。不过在实际使用过程中发现,使用 v6 访问时异常缓慢,原因如文章开头所述。例如在更新 Linux 软件包时如果使用优先的 v6 协议栈,那你就慢慢等吧。

不过在现有 v6 Peer 不完善的情况下,我们可以设置优先使用 v4 协议栈连接,而不是 v6 ,修改方法如下:

Linux

debian系:修改/etc/gai.conf,取消下面这一行的注释

precedence ::ffff:0:0/96  100

redhat系:修改/etc/gai.conf,添加如下内容

label       ::1/128        0
label       ::/0           1
label       2002::/16      2
label       ::/96          3
label       ::ffff:0:0/96  4
precedence  ::1/128        50
precedence  ::/0           40
precedence  2002::/16      30
precedence  ::/96          20
precedence  ::ffff:0:0/96  100

Windows

windows 目前我还没有找到可以优先使用 v4 协议栈的方法,不过可以临时使用 IPv4 over IPv6 来解决这个问题

自动设置(使用 Windows 诊断包)

设置IPv4优先

1.下载 在前缀策略中优先使用 IPv4 over IPv6

2.双击运行 按照提示进行安装

3.重启电脑

恢复IPv6优先

1.下载 在前缀策略中优先使用 IPv6 over IPv4

2.双击运行 按照提示进行安装

3.重启电脑

手动设置

优先使用IPV4
查看优先级顺序:

netsh interface ipv6 show prefixpolicies
查看优先级顺序

修改优先级:

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4
查看修改后的优先级:
查看修改后的优先级

参考链接:
在IPV6环境下,优先使用IPV4
IPv4 及 IPv6 的連線順序 - Linux 篇

标签: windows, network, Linux, Debian, Ubuntu, IPv4, IPv6