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

ipw.cn 是IPv4/IPv6 双栈站点,使用 ping 命令默认会访问到 IPv6站点,如果特别指定 IPv4(ping -4)才会解析到 IPv4 站点。

Microsoft Windows [版本 10.0.19044.1766]
© Microsoft Corporation。保留所有权利。

C:\Windows\system32>ping ipw.cn

正在 Ping ipw.cn [2402:4e00:40:40::2:3b6] 具有 32 字节的数据:
来自 2402:4e00:40:40::2:3b6 的回复: 时间=13ms
来自 2402:4e00:40:40::2:3b6 的回复: 时间=18ms
来自 2402:4e00:40:40::2:3b6 的回复: 时间=10ms
来自 2402:4e00:40:40::2:3b6 的回复: 时间=16ms

2402:4e00:40:40::2:3b6 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 10ms,最长 = 18ms,平均 = 14ms

C:\Windows\system32>ping -4 ipw.cn

正在 Ping ipw.cn [106.55.75.123] 具有 32 字节的数据:
来自 106.55.75.123 的回复: 字节=32 时间=8ms TTL=52
来自 106.55.75.123 的回复: 字节=32 时间=7ms TTL=52
来自 106.55.75.123 的回复: 字节=32 时间=9ms TTL=52
来自 106.55.75.123 的回复: 字节=32 时间=7ms TTL=52

106.55.75.123 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 7ms,最长 = 9ms,平均 = 7ms

  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

  1. 网络前缀含义

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

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

实现的。

在 IANA IPv6 Special-Purpose Address Registry

中我们可以找到这些前缀的分配归属。

### IPv6IPv4优先级设置及路由选择原则 在网络通信中,当设备既支持IPv4又支持IPv6时,默认情况下某些操作系统可能会更倾向于使用特定版本的IP协议来建立连接。对于Windows系统而言,默认行为通常是基于操作系统的内部算法决定哪个地址族具有更高的优先权。 #### Windows系统中的IPv4IPv6优先级设定 在Windows环境中,可以通过命令行工具`netsh`修改网络接口上的前缀策略列表来改变IPv4相对于IPv6优先顺序[^1]。具体来说: - **查看当前的前缀策略** 使用如下命令可以显示现有的前缀政策表单 ```shell netsh int ipv6 show prefixpolicies ``` - **调整前缀优先级** 若要使IPv4成为首选,则需降低IPv6全局无类别域间路由(::/0)条目的标签值,并增加IPv4映射到IPv6转换格式(::ffff:0:0/96)项的权重。这可通过下面两条指令实现: ```shell netsh interface ipv6 set prefixpolicy ::/0 50 1 netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 20 2 ``` 上述命令会将IPv6默认路由的优先级设为较低水平(数值越低代表越高),而提升IPv4兼容形式下的IPv6表示法至较高位置,从而使得大多数应用和服务会选择通过IPv4进行通讯除非特别指定了要采用IPv6路径。 另外,在一些场景下也可以通过对网卡属性的手动调节影响其作为源端口发起请求时所使用的协议版本。例如,提高某个网络适配器的跃点计数可以让它不太可能被选作发送数据包的最佳出口之一;反之亦然。此过程涉及图形界面的操作步骤已在其他资料中有描述[^4]。 #### 路由选择的一般准则 除了直接干预本地主机层面的选择机制外,整个互联网基础设施同样遵循一定的规则来进行跨不同自治系统间的流量导向决策。通常这些规则考虑到了诸如成本效益、延迟时间以及目的地可达性等因素。尽管如此,在存在多种可到达目标节点的方法时,如果两端都启用了两种协议栈的话,那么最终哪一种会被采纳还取决于多个方面的影响,包括但不限于运营商提供的服务特性及其配置偏好等外部因素[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soso1968

你的鼓励是我继续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值