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

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

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

  • ping 8.8.8.8Network 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 分钟内就能恢复。

相关推荐
Tairitsu_H1 小时前
[Linux系统] 自动化构建make / Makefile | 进度条
linux·操作系统·makefile·make
行者全栈架构师1 小时前
大模型运维准确率不到 50%?我们用 DeepSeek V4 测了 5 大场景,结果出人意料
linux·人工智能·开源
zzzyyy5382 小时前
TCP 协议学习笔记:从报文格式到异常处理
linux·网络
傲世仙尊2 小时前
ELF与动态库进阶-链接真相与GOT表
linux
M78佐菲3 小时前
ARM学习笔记(五)
linux·arm开发·笔记·嵌入式硬件·学习
H_oRIZoN_3 小时前
Linux入门DAY45 IMX6ULL 裸机开发笔记:汇编点灯、C 语言点灯、GIC 中断梳理
linux·单片机·嵌入式硬件
临期冰淇淋4 小时前
Unisoc 展锐平台Camera摄像头分辨率适配
linux·c语言·驱动开发
流浪0015 小时前
Linux系统篇36——线程(一) 线程的概念、本质和Linux的实现方式
linux·面试·操作系统·线程
xbzb5 小时前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows