WSL 网络模式问题

早上把开发环境搞坏了,报以下错误,WSL中没有网络!

wsl: 无法配置 networkingMode Nat) (网络,回退到 networkingMode VirtioProxy。

折腾了一上午,先说我的解决办法,后面是某AI的回答,可以参考。

解决办法:

  • 找到WSL Setting

  • 关闭hyper防火墙

以下是参考:

你在使用 WSL(Windows Subsystem for Linux)时,遇到如下提示:

wsl: 无法配置 networkingMode Nat) (网络,回退到 networkingMode VirtioProxy。

这是因为在使用 WSL 2 时,默认的网络模式本应是 NAT(Network Address Translation),但由于某些原因(配置或系统支持问题),WSL 无法成功启用 NAT 网络模式,因此自动回退到 VirtioProxy 模式。


🔍 一、背景知识简析

WSL 2 支持三种网络模式:

  1. NAT(默认):WSL 通过一个虚拟交换机桥接网络,提供更接近原生的网络体验(IP、端口转发等)。

  2. Bridged(桥接):用户手动配置,WSL 与宿主机处于同一网段,适合需要局域网互通的场景。

  3. VirtioProxy:更轻量的方式(如 WSLg 用于图形转发时也用这个),功能受限,不支持完整的端口映射和自定义 IP。


🧩 二、常见原因及解决方案

✅ 1. 检查 Windows 版本和 WSL 更新

  • 确保你的 Windows 是 Windows 11 22H2 或以上版本,并使用了最新的 WSL。

  • 执行以下命令更新 WSL:

        wsl --update

然后重启电脑。


✅ 2. 启用 Hyper-V & 虚拟机平台组件

确保以下 Windows 功能已启用:

  • Hyper-V

  • 虚拟机平台(Virtual Machine Platform)

打开方法:

  • Win + R → 输入 optionalfeatures.exe

  • 勾选:

    • ✅ Hyper-V

    • ✅ 虚拟机平台(Virtual Machine Platform)

    • ✅ Windows Subsystem for Linux

完成后重启。


✅ 3. 启用 WSL 网络功能(wsl.conf)

有些系统可能需要手动设置 wsl.conf 以启用新的 NAT 网络:

编辑 /etc/wsl.conf

sudo nano /etc/wsl.conf

添加:

[network] networkingMode = nat

然后在 Windows 上执行:

wsl --shutdown

再次启动 WSL。


✅ 4. 升级到新网络堆栈(自动端口转发支持)

新版 WSL 支持自动 NAT + 端口转发。如果你仍在使用旧的 wsl.exe 安装方式,建议切换为 Microsoft Store 版本的 WSL:

wsl --install

这将安装新的 Store 版本,具有更好的网络栈和兼容性。


✅ 5. 防火墙或安全软件拦截虚拟网络

部分安全软件(如卡巴斯基、诺顿)或启用了严格规则的 Windows 防火墙,可能会阻止虚拟交换机的运行,导致 NAT 初始化失败。

  • 暂时禁用防火墙或安全软件测试。

  • 或在防火墙中允许 vmmem.exewsl.exe 的网络通信。


✅ 6. 检查 WSL 的网络驱动是否安装完整

有时虚拟交换机和驱动程序安装异常,尝试:

Get-NetAdapter | ? { $_.InterfaceDescription -like "*Hyper-V*" }

如果没有看到虚拟网卡,可能要手动修复 Hyper-V。


🧪 检查当前网络模式

在 WSL 中执行:

ip addr

或在 PowerShell 执行:

wsl.exe --status

networkingMode 是否生效。


🛠️ 总结

步骤目的
wsl --update更新核心组件
启用 Hyper-V/虚拟机平台支持虚拟网络堆栈
设置 wsl.conf强制使用 NAT
检查防火墙/安全软件排除拦截
升级到 Microsoft Store WSL获取更稳定网络栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值