手动设置双栈DNS后还是无法连接网络怎么办?

手动填了双栈 DNS 还是断网,基本不是 DNS 问题,是电脑有无效 IPv6 默认路由 / RA 异常 / 路由器 IPv6 半残,系统强制走坏的 IPv6 路由,直接断网。
下面给你按「先救命→根治」一步步操作,全程复制命令即可。

一、立刻恢复上网(100% 生效)

方式 1:临时禁用系统全局 IPv6(推荐)

管理员 CMD 执行,直接屏蔽所有 IPv6 路由:
cmd
netsh int ipv6 set prefixpolicy ::/0 60 12
执行完秒恢复网络

原理:压低 IPv6 路由优先级,强制系统只走 IPv4。


二、彻底排查:为什么 DNS 没用

DNS 只管域名解析,你现在是三层路由不通
  1. 路由器开了 IPv6 开关,但没拿到运营商 PD 前缀
  2. 电脑拿到残缺 IPv6、有::/0 默认路由,但网关不通
  3. 双栈下 Windows 优先 IPv6,全网流量卡死

两条命令确诊问题

  1. 看是否有垃圾 IPv6 默认路由
cmd
route print | findstr ::/0
但凡出现 ::/0 路由,但之前ping -6 外网超时,就是病根。
  1. 测试纯 IP 连通(排除 DNS)
cmd
ping 223.5.5.5
ping -6 2400:3200::1
  • IPv4 能通、IPv6 超时 → 实锤:IPv6 链路损坏
  • 两个都不通 → 网卡 / 网关全局故障

三、两套永久解决办法(二选一)

方案 1:保留 IPv4,彻底禁用电脑 IPv6(最稳)

管理员 CMD 逐条执行:
cmd
# 系统全局禁用IPv6(包括隧道、虚拟网卡)
reg add "HKLM\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters" /v DisabledComponents /t REG_DWORD /d 255 /f

# 重置网络
netsh int ipv6 reset
ipconfig /release && ipconfig /renew
重启电脑,从此双栈冲突彻底消失,网络永久稳定。

方案 2:想要正常用 IPv6(修复路由器端)

电脑再怎么设置都没用,必须改光猫 / 路由器:
  1. 路由器 IPv6 设置检查
    • 上网类型:DHCPv6-PD 前缀委托
    • 开启:RA 通告、DHCPv6 服务器
    • 关闭:IPv6 防火墙、IPv6 ACL、地址限制
  2. 如果是光猫拨号

    改成桥接模式,由路由器拨号获取完整双栈

  3. 路由器 WAN 口重启 / 断线重拨,重新获取运营商 IPv6 前缀
只要路由器 WAN 口没有拿到 2409/2408 段前缀,电脑怎么设置都不可能正常用 IPv6

四、补充:之前手动 DNS 没用的原因

  1. 你是路由层断网,不是解析失败
  2. Windows 双栈机制:优先 IPv6 传输,哪怕 IPv6 丢包、不通,也会优先走
  3. 手动 DNS 只能修 “打不开网页但能 ping IP”,修不了 “完全断网”

五、快速总结

  1. 先执行这条命令立马联网:

    netsh int ipv6 set prefixpolicy ::/0 60 12

  2. 追求稳定:注册表禁用全局 IPv6,一劳永逸
  3. 必须用 IPv6:去路由器后台重新配置 PD+RA,不行就找运营商刷新端口 IPv6 配置
上一篇 ARM Linux 驱动开发篇---Linux字符设备驱动代码阅读指南---附设备树LED驱动实战案例
下一篇 【转载】HCIE R&S 备考笔记 MPLS virtual private network路由信息的发布过程