在 Windows 10 Pro 1809 build 17763.805 上,我的网络连接每 2 秒就会从在线状态跳转到离线状态。我正在运行 Hyper-V 以便在 Windows 上使用 Docker Desktop。
检查后Control Panel\Network and Internet\Network Connections
我发现有两个网络接口:
- “以太网”的状态在我的 Windows 域名和“已启用”之间切换
- “vEthernet (DockerNAT)” Hyper-V 虚拟以太网适配器 #2(状态“未识别的网络”)
然后,第三个每隔几秒出现又消失一次:
- “vEthernet(默认交换机)”Hyper-V 虚拟以太网适配器
当默认交换机消失时,我的以太网适配器会报告 Windows 域连接。几秒钟后,当Default Switch
再次出现时,我的以太网适配器的状态恢复为“已启用”,并且在它尝试重新建立连接时,我丢失了域连接。
进一步挖掘,我发现这个 Windows 系统事件日志块大约每分钟循环一次(NIC 标识符在循环过程中会发生变化):
NIC B99A4A01-143A-4DD6-AE3C-5D6AAA8ABF41 已成功与端口断开连接。
在 nic B99A4A01-143A-4DD6-AE3C-5D6AAA8ABF41 (友好名称:默认交换机) 上执行“删除”操作成功。
NIC C08CB7B8-9B3C-408E-8E30-5E16A3AEB444 已成功与端口 C08CB7B8-9B3C-408E-8E30-5E16A3AEB444 断开连接。
在 nic C08CB7B8-9B3C-408E-8E30-5E16A3AEB444 (友好名称:默认交换机) 上执行“删除”操作成功。
在 nic C08CB7B8-9B3C-408E-8E30-5E16A3AEB444 (友好名称:默认交换机) 上执行“创建”操作成功。
NIC C08CB7B8-9B3C-408E-8E30-5E16A3AEB444(友好名称:默认交换机)成功连接到交换机 C08CB7B8-9B3C-408E-8E30-5E16A3AEB444(友好名称:默认交换机)上的端口 C08CB7B8-9B3C-408E-8E30-5E16A3AEB444(友好名称:默认交换机)。
交换机 C08CB7B8-9B3C-408E-8E30-5E16A3AEB444 (友好名称:默认交换机) 已成功初始化。
我最初将此发布到Docker 论坛。
我不确定还有什么可以帮助诊断,所以请发表评论,我很乐意添加任何其他有用的详细信息!
答案1
我在多个 Windows 10 版本中遇到了同样的问题,但最终找到了解决方案。当前运行的是 Windows 10 版本 19025.1052。
Windows 10 上有一项名为“DNS 客户端”或 dnscache 的服务,我已将其禁用。一旦我重新启用该服务并重新启动 Windows,Hyper-V 就会创建默认交换机,并且不会将其删除/重新安装。
这也修复了现在使用 Hyper-V 的 WSL 2 安装问题。WSL 2 安装会失败并显示“RPC 服务器不可用”。
要启用 DNS 客户端服务,我按照此处的说明进行操作: https://wintechlab.com/enable-disable-dns-client-service/
该服务具有高级别的权限,我唯一能够启用的方法是转到注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache
并将Start
DWORD 设置为 2(自动)而不是 4(禁用)。
答案2
我刚刚遇到了一个非常相似的问题,它在重启后立即出现,但由于我已经更新到最新版本的 Windows,所选的解决方案不可用。此外,dnscache
正如 OP 对 Reyad 的回答的评论中所述,该服务已经在运行。最终,出现了一个重复的 WSL 虚拟网络,所以我知道有些事情很古怪。
什么做过最终为我解决问题的方法是先运行sfc /scannow
,然后停止并启动hns
服务(主机网络服务)。然后,由于我使用的是 WSL 2,所以我还重新启动了该LxssManager
服务。之后,额外的 WSL 网络神奇地消失了,我的连接稳定了,事件查看器没有显示任何新错误。
答案3
令人沮丧的是,对于我自己和同事来说,这个问题的解决办法是将 Windows 10 更新到 1909(具体来说,我使用的是版本 18363.476)。
这是一个不令人满意的解决方案,但却是经过几个月的尝试后唯一有效的方法。