当前位置:首页 > 计算机 > 软硬件 > 正文内容

Windows 10/11 设置 IPv4/IPv6 访问优先级

DYX2年前 (2023-06-27)软硬件3852

 Windows10/11开启 IPv6 后默认 IPv6 访问优先(以访问 IPv4/IPv6 双栈站点为例, 操作系统会优先访问 IPv6),如果期望 IPv4访问优先,可以通过 netsh 命令调整。

以下命令在 Windows10/11 验证通过。

duyuxi.cn 是IPv4/IPv6 双栈站点,使用 ping 命令默认会访问到 IPv6站点。

Microsoft Windows [版本 10.0.19044.1766]
(c) Microsoft Corporation。保留所有权利。
C:\Windows\system32>ping www.duyuxi.cn
正在 Ping ipw.cn [2409:8c02:24c:60:3::3e9] 具有 32 字节的数据:
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=14ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=11ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=12ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=16ms
2409:8c02:24c:60:3::3e9 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 11ms,最长 = 16ms,平均 = 14ms

1. 查看网络前缀访问优先级

我们先看下Windows10/11 中各个访问 IPv4/IPv6的优先级,可以看到 IPv6(::/0)比 IPv4(::ffff:0:0/96) 的优先级高,会被优先访问。

第一列优先循序越大优先级越高,会优先访问。

C:\Windows\system32>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

2. 网络前缀含义

我们依次介绍下这些前缀的含义。

首先 Windows10/11 中默认的访问前缀规则是参照 RFC6724: Default Address Selection for Internet Protocol Version 6 (IPv6)窗口打开 实现的。

在 IANA IPv6 Special-Purpose Address Registry中我们可以找到这些前缀的分配归属。

::1/128:本地回环地址,类似 IPv4 中的 127.0.0.1

::/0: IPv6 单播地址

::ffff:0:0/96: IPv4 地址范围

2002::/16: 6to4

2001::/32: TEREDO

fc00::/7: Unique-Local

 调整网络前缀优先级,让 IPv4 访问优先

从前面我们知道 IPv6(::/0)比 IPv4(::ffff:0:0/96) 的优先级高,我们通过 netsh interface ipv6 命令调整优先级。

Win + R 进入运行对话框,输入 cmd,选择 以管理员身份运行,执行调整命令,可以看到 IPv4(::ffff:0:0/96) 优先级最高。

C:\Windows\system32>netsh interface ipv6 set  prefixpolicy ::ffff:0:0/96 100 4
确定。
C:\Windows\system32>netsh interface ipv6 show prefixpolicies
查询活动状态...
优先顺序    标签   前缀
----------  -----  --------------------------------
       100      4  ::ffff:0:0/96
        50      0  ::1/128
        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命令验证,确实默认 IPv4 访问优先。


C:\Windows\system32>ping www.duyuxi.cn
正在 Ping www.duyuxi.cn [106.55.75.123] 具有 32 字节的数据:
来自 111.31.66.52 的回复: 字节=32 时间=14ms TTL=52
来自 111.31.66.52 的回复: 字节=32 时间=29ms TTL=52
来自 111.31.66.52 的回复: 字节=32 时间=14ms TTL=52
来自 111.31.66.52 的回复: 字节=32 时间=14ms TTL=52
111.31.66.52的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 14ms,最长 = 29ms,平均 = 17ms

重启电脑后,发现还是 IPv6 访问优先。

Microsoft Windows [版本 10.0.19044.1766]
(c) Microsoft Corporation。保留所有权利。
C:\Windows\system32>ping www.duyuxi.cn
正在 Ping ipw.cn [2409:8c02:24c:60:3::3e9] 具有 32 字节的数据:
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=10ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=14ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=9ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=9ms
2402:4e00:40:40::2:3b6 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 9ms,最长 = 14ms,平均 = 10ms

查看网络前缀访问优先级,发现只剩下 IPv4 的,可能是因为这个原因导致没生效,加回 IPv6 的网络前缀,IPv4 访问优先,达到目的。

C:\Windows\system32>netsh interface ipv6 show prefixpolicies
查询活动状态...
优先顺序    标签   前缀
----------  -----  --------------------------------
       100      4  ::ffff:0:0/96
C:\Windows\system32>netsh interface ipv6 add  prefixpolicy ::/0 40 1
确定。
C:\Windows\system32>netsh interface ipv6 show prefixpolicies
查询活动状态...
优先顺序    标签   前缀
----------  -----  --------------------------------
       100      4  ::ffff:0:0/96
        40      1  ::/0
C:\Windows\system32>ping www.duyuxi.cn
正在 Ping www.duyuxi.cn [106.55.75.123] 具有 32 字节的数据:
来自 111.31.66.52 的回复: 字节=32 时间=14ms TTL=52
来自 111.31.66.52 的回复: 字节=32 时间=29ms TTL=52
来自 111.31.66.52 的回复: 字节=32 时间=14ms TTL=52
来自 111.31.66.52 的回复: 字节=32 时间=14ms TTL=52
111.31.66.52 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 14ms,最长 = 44ms,平均 = 21ms

如何重新设置 IPv6访问优先

两种方式,直接重置

重置 IPv6 策略

C:\Windows\system32>netsh interface ipv6 reset
正在重置 分段转发,完成!
正在重置 分段,完成!
正在重置 控制协议,完成!
正在重置 回显顺序请求,完成!
正在重置 全局,完成!
正在重置 接口,完成!
正在重置 任意广播地址,完成!
正在重置 多播地址,完成!
正在重置 单播地址,完成!
正在重置 邻居,完成!
正在重置 路径,完成!
正在重置 潜在,完成!
正在重置 前缀策略,完成!
正在重置 代理邻居,完成!
正在重置 路由,完成!
正在重置 站点前缀,完成!
正在重置 子接口,完成!
正在重置 唤醒模式,完成!
正在重置 解析邻居,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,失败。
拒绝访问。
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!

重新启动计算机来完成此操作。


调整网络前缀优先级

调整网络前缀优先级,重启之后也是生效的。

C:\Windows\system32>netsh interface ipv6 show prefixpolicies
查询活动状态...
优先顺序    标签   前缀
----------  -----  --------------------------------
       100      4  ::ffff:0:0/96
        40      1  ::/0
C:\Windows\system32>netsh interface ipv6 set  prefixpolicy ::ffff:0:0/96 10 4
确定。
C:\Windows\system32>netsh interface ipv6 show prefixpolicies
查询活动状态...
优先顺序    标签   前缀
----------  -----  --------------------------------
        40      1  ::/0
        10      4  ::ffff:0:0/96
C:\Windows\system32>ping www.duyuxi.cn
正在 Ping ipw.cn [2409:8c02:24c:60:3::3e9] 具有 32 字节的数据:
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=10ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=11ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=18ms
来自 2409:8c02:24c:60:3::3e9 的回复: 时间=10ms
2409:8c02:24c:60:3::3e9 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 10ms,最长 = 18ms,平均 = 12ms
netsh interface ipv6 相关命令如何使用
直接回车就是帮助信息。
C:\Windows\system32>netsh interface ipv6
下列指令有效:
此上下文中的命令:
6to4           - 更改到 `netsh interface ipv6 6to4' 上下文。
?              - 显示命令列表。
add            - 在一个表格中添加一个配置项。
delete         - 从一个表格中删除一个配置项。
dump           - 显示一个配置脚本。
help           - 显示命令列表。
isatap         - 更改到 `netsh interface ipv6 isatap' 上下文。
reset          - 重置 IP 配置。
set            - 设置配置信息。
show           - 显示信息。
下列的子上下文可用:
 6to4 isatap
若需要命令的更多帮助信息,请键入命令,接着是空格,
后面跟 ?。
C:\Windows\system32>netsh interface ipv6 show
下列指令有效:
此上下文中的命令:
show addresses - 显示当前 IP 地址。
show compartments - 显示分段参数。
show destinationcache - 显示目标缓存项目。
show dnsservers - 显示 DNS 服务器地址。
show dynamicportrange - 显示动态端口范围配置参数。
show excludedportrange - 显示所有排除的端口范围。
show global    - 显示全局配置普通参数。
show interfaces - 显示接口参数。
show ipstats   - 显示 IP 统计。
show joins     - 显示加入的多播组。
show neighbors - 显示邻居缓存项。
show offload   - 显示卸载信息。
show potentialrouters - 显示潜在路由器。
show prefixpolicies - 显示前缀策略项目。
show privacy   - 显示隐私配置参数。
show route     - 显示路由表项目。
show siteprefixes - 显示站点前缀表项。
show subinterfaces - 显示子接口参数。
show tcpstats  - 显示 TCP 统计。
show teredo    - 显示 Teredo 状态。
show tfofallback - 显示各网络 TCP 快速打开回退状态。
show udpstats  - 显示 UDP 统计。
C:\Windows\system32>netsh interface ipv6 add
下列指令有效:
此上下文中的命令:
add address    - 将静态 IP 地址或默认网关添加到指定接口。
add dnsservers - 添加一个静态 DNS 服务器地址。
add excludedportrange - 为连续的端口块添加排除。
add neighbors  - 添加邻居地址。
add potentialrouter - 将路由器添加到接口的潜在路由器列表上。
add prefixpolicy - 添加前缀策略项目。
add route      - 在接口上添加路由。
add v6v4tunnel - 创建一个“IPv4 中的 IPv6”点对点隧道。
C:\Windows\system32>netsh interface ipv6 set
下列指令有效:
此上下文中的命令:
set address    - 设定通向接口的 IP 地址或默认网关。
set compartment - 修改分段配置参数。
set dnsservers - 设置 DNS 服务器模式和地址。
set dynamicportrange - 修更改态端口分配所使用端口的范围。
set global     - 修改全局配置常规参数。
set interface  - 修改 IP 的接口配置参数。
set neighbors  - 设置邻居地址。
set prefixpolicy - 修改前缀策略信息。
set privacy    - 修改隐私配置参数。
set route      - 修改路由参数。
set subinterface - 修改子接口配置参数。
set teredo     - 设定 Teredo 状态。

3a7315bc8768f1648f572936504ff757_f3d3572c11dfa9ecea0af9fbfb5c6105908fc14d_token=b3574d645a3ce8c3e817c910aefe7d44&s=DCAD11729FB16F985C7345D5020090B2.jpeg


“Windows 10/11 设置 IPv4/IPv6 访问优先级” 的相关文章

个人博客站点选Zblog好?还是wordpress比较好?

个人博客站点选Zblog好?还是wordpress比较好?

博客是最简单也是很多新手入门时的第一选择,博客具有方便管理、SEO优化简单等特点。简单来看,一个独立博客就好比我们的QQ空间,大部分的独立博客站长使用的主要功能就是发布文章,就相当于QQ空间中发布日志一样。不过自己搭建独立博客是开源的,而QQ空间是半封闭的,例如我们的独立博客可以随意增加删减页面,能...

L358打印机故障指示提示

L358打印机故障指示提示

电源灯闪烁,Wi-Fi红灯闪烁提示:Wi-Fi配置失败解决方法:重新启动打印机电源灯常亮,墨水灯闪烁提示:即将补充墨水解决方法:请检查墨水余量:当墨水余量低于(距墨仓底部)20毫米时,请补充墨水(若墨仓中的墨水余量低并继续打印可能会影响打印质量、损坏打印机);当墨水余量高于(距墨仓底部)20毫米时,...

linux系统之间共享文件(NFS)

linux系统之间共享文件(NFS)

我们想在linux系统之间共享文件,这就需要使用NFS服务。1.首先查看linux有没有安装nfs系统已经默认安装好了2.启动nfs服务器3.查看nfs服务器运行状态4.设置nfs自启动,不然要共享文件每次都要启动一下服务很麻烦5.接下来就是要共享文件,比如共享/home/share/目录下的文件6...

HTTP——了解HTTP协议及状态码

HTTP——了解HTTP协议及状态码

一, 什么是通信通信,就是信息的传递和交换。通信三要素:通信的主体,通信的内容,通信的方式现实生活中的通信:我打电话叫小明来我家吃饭【其中通信的主体是,我,小明。通信内容是,来我家吃饭,通信的方式是打电话】互联网中的通信:服务器把数据通过响应的方式发送给客户端使用【主体是服务器,客户端。内容是数据。...

Piwigo 是什么?

Piwigo 是什么?

Piwigo 是一款可以用来管理您的图片集与其他媒体的网站程序。 内置强大功能,全世界都在使用它管理图片库。我能用 Piwigo 做什么?Piwigo 的用户群将它用在了各个方面。 从中型图片集到巨大的图库,Piwigo 都能替您省时省力,轻松搞定工作。...

CDN是什么

CDN是什么

CDN是什么对于数字和文本类型的数据,比方说名字和电话号码相关的信息。我们需要有个地方存起来。我们通常会用mysql数据库去存。文本存在mysql中当我们需要重新将这一数据取出的时候,就需要去读mysql数据库。但因为mysql的数据是存在磁盘上的,单台实例,读性能到差不多5kqps就已经很不错了。...