笨猫博客

  • 🍟首页
  • 🍘目录
    • 🥝VPS教程
    • 🍾猫玩技术
    • 🍹干货分享
    • 🍏软件分享
    • 🍩一只猫
  • 🍋工具
    • 🌽IP路由追踪
    • 🍐域名Whois查询
    • 🥘域名被墙查询
    • 🍧IP正常检测
    • 🔥IP端口检测
    • 🍆短网址
    • 🐟VIP音乐播放
    • 🍯KMS激活
  • 🍓链接
  • 🍪联系
  • 🍱登录
    • 🥦登录
    • 🍒注册
关注互联网,生活,音乐,乐此不疲的一只笨猫
  1. 首页
  2. 一只猫
  3. 正文

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

2024-05-09 2196点热度 1人点赞 0条评论

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

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

Microsoft Windows [版本 10.0.19044.1766]
(c) 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

#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,具体详见 RFC3056: Connection of IPv6 Domains via IPv4 Clouds新窗口打开
  • 2001::/32: TEREDO,具体详见 RFC4380: Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs)新窗口打开
  • fc00::/7: Unique-Local,具体详见 RFC4193: Unique Local IPv6 Unicast Addresses新窗口打开
  • ...

#3. 调整网络前缀优先级,让 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 、curl 命令验证,确实默认 IPv4 访问优先。

如果是浏览器验证可以开启 Edge 或 Chrome 的审查模式,查看网络资源的链接地址。

C:\Windows\system32>ping ipw.cn

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

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

C:\Windows\system32>curl -v  https://ipw.cn -I
*   Trying 106.55.75.123:443...
* Connected to ipw.cn (106.55.75.123) port 443 (#0)
* schannel: disabled automatic use of client certificate
* schannel: ALPN, offering http/1.1
* schannel: ALPN, server accepted to use http/1.1
> HEAD / HTTP/1.1
> Host: ipw.cn
> User-Agent: curl/7.79.1
> Accept: */*

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

Microsoft Windows [版本 10.0.19044.1766]
(c) Microsoft Corporation。保留所有权利。

C:\Windows\system32>ping ipw.cn

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

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

查看网络前缀访问优先级,发现只剩下 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 ipw.cn

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

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

#附录

#如何重新设置 IPv6访问优先

两种方式,直接重置

#重置 IPv6 策略

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

正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
正在重置 ,完成!
重新启动计算机来完成此操作。

C:\Windows\system32>shutdown -r -t 0

电脑重启后,ping ipw.cn 会解析 IPv6 地址,重置成功。

#调整网络前缀优先级

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

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 ipw.cn

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

2402:4e00:40:40::2:3b6 的 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 状态。
标签: 暂无
最后更新:2024-05-09

笨猫

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
Windows11美化方案教程 简洁、纯HTML导航项目:XG-NAV(开源) outlook邮箱安全修改方案,让你的邮箱安全无忧 Docker容器一键全自动迁移脚本 永久免费 qzz.io 域名 可托管至CloudFlare SSL 证书申请工具 | 免费 HTTPS 证书网页在线申请 Let's Encrypt、ZeroSSL 等 HTTPS 证书 免登录
Docker容器一键全自动迁移脚本outlook邮箱安全修改方案,让你的邮箱安全无忧简洁、纯HTML导航项目:XG-NAV(开源)Windows11美化方案教程
中国足球庆祝你又输了 百度平台-玩吧 WordPress更换域名、搬家、重定向的步骤 网上花样搜索 2008年新年愿望 一键安装最新内核并开启 BBR 脚本
最近评论
vip券网 发布于 3 周前(08月01日) 写的很详细,赞 :razz: :evil:
萧瑟 发布于 1 个月前(07月14日) 这个我也用了好久,不知道啥时候能上IP证书
梵蒂冈 发布于 2 个月前(07月08日) 士大夫
HuangWei 发布于 2 个月前(06月16日) 自己手动设置确实很烦,我之前使用过这个,感觉还不错,虽然已经不怎么维护了:https://githu...
龙笑天 发布于 3 个月前(05月25日) 一直用的萌咖的路过 :smile:
标签
elliptictrue100.10.02
BLOG ChatGPT Chrome CloudFlare DirectAdmin github Godaddy google kloxo Linux OneDrive OneIndex PHP QQ shadowsocks SNS ssh Typecho VPS web2.0 whmcs Windows wordpress 一键脚本 下载 免费 博客 图文教程 图标 图片 域名 头像 奥运 宝塔面板 插件 教程 日记 有趣 浏览器 游戏 猫 生活 电影 百度 网站 视频 设计 软件 阿里云盘 音乐
好友
  • glzjin's blog glzjin's blog
  • ZAERA博客
  • 冰沫记
  • 奇它博客
  • 猫腻‘s Blog
  • 猫饭
  • 肥宅之家
  • 萌博
  • 野路子程序员

COPYRIGHT © 2022 笨猫博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang