WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)

WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南

最近遇到 WSL2 突然无法上网,表现为:

  • ping 8.8.8.8 → Network is unreachable
  • ip a 里只有 lo 和一堆 Docker 网桥,没有 eth0
  • /etc/resolv.conf 不存在或无效
  • Windows 网络连接里也找不到 vEthernet (WSL)

这是典型的 HNS(Host Network Service)网络状态损坏,不是简单的 DNS 问题。

以下是经过实战验证、最短路径修复方法(成功率很高)。


一、快速确认是否属于此类问题

在 WSL 中执行:

bash 复制代码
ip a | grep eth0
ip route

如果没有 eth0,且没有 default via 路由,基本就是这个问题。


二、最短修复步骤(核心)

全部在 Windows PowerShell(管理员)中执行:

powershell 复制代码
# 1. 关闭 WSL
wsl --shutdown

# 2. 停止关键服务
Stop-Service hns -Force
Stop-Service vmcompute -Force

# 3. 删除损坏的 HNS 数据库(最关键)
Remove-Item -Path "C:\ProgramData\Microsoft\Windows\HNS\HNS.data" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\ProgramData\Microsoft\Windows\HNS\HNS.data.old" -Force -ErrorAction SilentlyContinue

# 4. 重新启动服务
Start-Service vmcompute
Start-Service hns

# 5. 启动一次 WSL,强制重建网络
wsl -e ip a

执行完后,正常情况下会看到 eth0 重新出现,并分配到 IP(例如 192.168.137.x)。


三、验证网络是否恢复

进入 WSL 后执行:

bash 复制代码
ip route                  # 应该有 default via ...
ping -c 3 8.8.8.8         # 应该通
ping -c 3 baidu.com       # 测试 DNS

如果 ping 8.8.8.8 已经通了,基本就修复完成。


五、常见伴随现象

  • Windows 网络连接里只有 vEthernet (FSE HostVnic),没有 vEthernet (WSL)
  • 安装了 Docker Desktop 后更容易出现
  • Windows 更新后偶发

总结一句话

WSL2 没网且没有 eth0 时,优先清理 HNS 数据库 + 重启相关服务,是目前最快、最有效的修复方式。

把上面「二、最短修复步骤」保存下来,以后再遇到直接复制执行即可,通常 1 分钟内就能恢复。

相关推荐
xiaoqiMikko9 小时前
Linux 实战(三):服务起不来、定时任务不执行 —— CentOS 7 / Rocky 9 / Ubuntu 24.04 实测差异
linux·centos
Hello_Pyhx9 小时前
Ventoy:Linux制盘与排障
linux·运维·服务器
Jason_zhao_MR9 小时前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式
microxiaoxiao9 小时前
MobaXterm vs Aeroshell
linux·运维·ssh
郭庆汝10 小时前
windows本地部署AgentDesk
windows
笨笨D幸福10 小时前
win11 vhdx/wtg 安装出现问题,提示 Windows 安装程序无法将 Windows 配置为在此计算机的硬件上运行
windows
东城居士10 小时前
理解设备树下的platform驱动编写
linux·嵌入式系统
小义_10 小时前
Linux 补充
linux·服务器
晴天的雨.99210 小时前
【Linux】Shell 命令以及运行原理+权限管理
linux·运维·服务器
djjjx.10 小时前
Linux工具篇 (六):GDB 调试从底层逻辑到高阶实战
linux·运维·服务器·gdb