1025 字
5 分钟
Windows 10 IPv4/IPv6网络优先级设置与切换方法
使用场景
在以下情况下可能需要调整 IPv4/IPv6 优先级:
- 双栈网络环境:同时连接 IPv4 和 IPv6 网络
- 应用兼容性测试:某些应用仅支持 IPv4
- 网络性能对比:测试 IPv4 vs IPv6 的速度差异
- 企业网络部署:逐步迁移到 IPv6 的过渡期
- 网络故障排查:确定是 IPv4 还是 IPv6 的问题
注意事项
- 需要管理员权限:所有命令必须以管理员身份运行
- 临时生效:默认情况下重启后恢复系统默认值
- 谨慎修改:错误的配置可能导致网络连接问题
- 记录原配置:修改前建议记录原始设置以便恢复
查看当前优先级配置
步骤一:以管理员身份打开命令提示符
方法 1: Win + X → 选择”Windows PowerShell(管理员)”
方法 2: 搜索 cmd → 右键”以管理员身份运行”
步骤二:查看当前前缀策略
netsh interface ipv6 show prefixpolicies输出说明:
优先顺序 标签 前缀---------- ----- -------------------------------- 50 0 ::1/128 # IPv6 环回(最高优先级) 40 1 ::/0 # IPv6 默认路由 30 2 2002::/16 # 6to4 隧道 5 5 2001::/32 # Teredo 隧道 3 13 fc00::/7 # 唯一本地地址 1 11 fec0::/10 # 站点本地地址(已废弃) 1 12 3ffe::/16 # 6bone(历史) 1 3 ::ffff:0:0/96 # IPv4 映射地址默认行为:
- Windows 默认优先使用 IPv6(::/0 优先级 40)
- IPv4 映射地址优先级较低(::ffff:0:0/96 优先级 1)
配置方法
方法一:设置 IPv4 优先
# 提升 IPv4 映射地址的优先级netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4验证配置:
netsh interface ipv6 show prefixpolicies预期结果:
优先顺序 标签 前缀---------- ----- -------------------------------- 100 4 ::ffff:0:0/96 # IPv4 优先级最高 50 0 ::1/128 40 1 ::/0 # IPv6 优先级降低 30 2 2002::/16 5 5 2001::/32 3 13 fc00::/7 1 11 fec0::/10 1 12 3ffe::/16 1 3 ::/96方法二:恢复 IPv6 优先
# 恢复 IPv6 默认优先级netsh interface ipv6 set prefixpolicy ::/0 100 1验证配置:
netsh interface ipv6 show prefixpolicies预期结果:
优先顺序 标签 前缀---------- ----- -------------------------------- 100 1 ::/0 # IPv6 优先级最高 100 4 ::ffff:0:0/96 # IPv4 同优先级 50 0 ::1/128 30 2 2002::/16 5 5 2001::/32 3 13 fc00::/7 1 11 fec0::/10 1 12 3ffe::/16 1 3 ::/96方法三:自定义优先级策略
# 语法:netsh interface ipv6 set prefixpolicy <前缀> <优先级> <标签>
# 示例:为特定 IPv6 段设置高优先级netsh interface ipv6 set prefixpolicy 240e::/20 90 6
# 示例:禁用某个 IPv6 隧道netsh interface ipv6 set prefixpolicy 2001::/32 0 5方法四:恢复默认设置
# 删除自定义策略,恢复系统默认netsh interface ipv6 delete prefixpolicy ::ffff:0:0/96netsh interface ipv6 delete prefixpolicy ::/0
# 或重置整个 IPv6 配置netsh interface ipv6 reset注意: reset 命令会重置所有 IPv6 配置,包括静态地址和 DNS!
持久化配置(重启后保持)
方案一:创建启动脚本
步骤 1: 创建批处理文件 set_ipv4_priority.bat
@echo offREM 设置 IPv4 优先netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4echo IPv4 priority configured successfully!pause步骤 2: 将脚本添加到任务计划程序
- 搜索并打开”任务计划程序”
- 创建基本任务 → 命名为”Set IPv4 Priority”
- 触发器:计算机启动时
- 操作:启动程序 → 选择上面的 bat 文件
- 勾选”使用最高权限运行”
验证测试
测试 1:检查网站 IPv6 支持
# 访问仅 IPv6 的网站curl -6 http://ipv6.google.com
# 或使用浏览器访问# https://test-ipv6.com测试 2:查看实际使用的协议
# 查看活动的 TCP 连接netstat -an | findstr :80
# 观察远程地址是 IPv4 还是 IPv6 格式测试 3:DNS 解析测试
# 查询域名的 IPv4 记录nslookup example.com
# 查询域名的 IPv6 记录nslookup -query=aaaa example.com快速参考表
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看配置 | netsh interface ipv6 show prefixpolicies | 显示当前优先级 |
| IPv4 优先 | netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4 | 提升 IPv4 优先级 |
| IPv6 优先 | netsh interface ipv6 set prefixpolicy ::/0 100 1 | 恢复 IPv6 优先 |
| 删除策略 | netsh interface ipv6 delete prefixpolicy <前缀> | 删除自定义策略 |
| 完全重置 | netsh interface ipv6 reset | 重置所有 IPv6 配置 |
参考资料
Windows 10 IPv4/IPv6网络优先级设置与切换方法
https://blog.xeu.asia/posts/win10-network-priority/