![电源故障后 Windows DNS 停止工作](https://linux22.com/image/1594375/%E7%94%B5%E6%BA%90%E6%95%85%E9%9A%9C%E5%90%8E%20Windows%20DNS%20%E5%81%9C%E6%AD%A2%E5%B7%A5%E4%BD%9C.png)
我以前从未遇到过这个问题,但在新家里,我使用电脑时不时会遇到断电的情况。重启后,我的互联网连接不再在电脑上工作,但其他设备可以正常使用相同的互联网连接。
我知道这肯定是 DNS 问题,因为如果我 ping 一个 URL 它会失败,但如果我使用 IP,ping 就会响应。
我尝试过刷新 DNS 以及重置互联网连接,甚至系统还原也无济于事。让计算机上网的唯一方法是重新安装或恢复出厂设置,这很麻烦,因为这个问题经常发生。
一开始我怀疑是硬件问题,但这种情况在不同的电脑上也发生过几次。这一切似乎都与电源中断有关,但一旦电脑死机,当我重新启动时,我又遇到了同样的问题。
尽管在电源问题之前我从未遇到过这种情况,但我发现互联网上和不同版本的 Windows 中有很多用户遇到过此问题。我的所有计算机都安装了 Win 10,但我看到有人在 Win 7、8 和 8.1 上遇到同样的问题
有什么想法吗?这又发生在我身上了,我想避免花一整天的时间重新安装所有的东西。
答案1
TLDR:对我来说,这是由于断电时 VPN(我的情况是通过 OpenVPN 设置的)DNS 路由策略残留所致。必须手动删除注册表才能修复它。
长话短说:我的这台 Windows 10 笔记本电脑也遇到了同样的问题(电池断开,但原因又是另一个故事)。断电后,DNS 将停止工作。但互联网连接实际上很好,我可以使用 IP ping/连接到其他主机。WSL 中的应用程序也可以正常使用 DNS 查找。该问题适用于有线和无线网络。
我设法通过启动 wireshark 来追踪问题,我立即看到大量 dns 请求发送到本地网络中无效的 IP。然后我在 regedit 中搜索此 IP,发现它出现在
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Dnscache\Parameters\DnsPolicyConfig\OpenVPNDNSRouting-0
和
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
此时很明显这是我的 VPN 设置的一些 DNS 策略。我备份了这两个密钥以防万一,然后在注册表中删除了它们,DNS 马上又恢复了工作。
所以,完整的情况是,在断电之前,我已经启动了 OpenVPN。它有一些 DNS 路由策略,因此私有网络主机名查找将通过 VPN 上的 DNS 服务器进行。断电时,OpenVPN 显然无法关闭并取消注册此策略。然后,当系统恢复时,DNS 路由策略仍然启用,而 VPN 实际上尚未启动,因为它无法重新连接到 VPN,因为它尝试使用主机名而不是 IP 连接到 VPN 网关。