方法一
- 打开注册表编辑器(
Win
+R
输入regedit
); - 在顶部导航栏输入
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
; - 找到
DisabledComponents
,默认情况下这个值应该为 0; - 右键并点击
修改(M)
,将这个值加 20(注意右边的基数
必须是十六进制
);
- 保存并重启电脑就好啦( ̄︶ ̄)↗
PS:DisabledComponents
取值范围为 0~255,用于配置 Windows 系统对于 IPv6 的行为;
将值加 32,也就是将二进制下右数第 6 位置 1,对应的效果就是优先 IPv4 而非 IPv6
;
以下为官方文档的链接,在对对这个值进行其它更改时,请务必确认清楚自己正在做什么,小白不要随意尝试!
检测效果
设置完成后可以打开此链接,出现的地址为 IPv4 即为成功:
方法二
Windows10/11开启 IPv6 后默认 IPv6 访问优先(以访问 IPv4/IPv6 双栈站点为例, 操作系统会优先访问 IPv6),如果期望 IPv4访问优先,可以通过 netsh 命令调整。
首先查看网络前缀访问优先级
我们先看下Windows10/11 中各个访问 IPv4/IPv6的优先级,可以看到 IPv6(::/0)比 IPv4(::ffff:0:0/96) 的优先级高,会被优先访问。
第一列优先循序越大优先级越高,会优先访问。
调整网络前缀优先级,让 IPv4 访问优先
从前面我们知道 IPv6(::/0)比 IPv4(::ffff:0:0/96) 的优先级高,我们通过 netsh interface ipv6 命令调整优先级。
Win + R 进入运行对话框,输入 cmd,选择 以管理员身份运行,执行调整命令,可以看到 IPv4(::ffff:0:0/96) 优先级最高。
执行 ping 、curl 命令验证,确实默认 IPv4 访问优先。
重启电脑后,发现还是 IPv6 访问优先。
查看网络前缀访问优先级,发现只剩下 IPv4 的,可能是因为这个原因导致没生效,加回 IPv6 的网络前缀,IPv4 访问优先,达到目的。
如何重新设置 IPv6访问优先
两种方式,直接重置
重置 IPv6 策略
重新启动计算机来完成此操作。