当前位置: 首页 > article >正文

WSL2 Ubuntu20.04 无法联网,解决方案

请添加图片描述

文章目录

  • 背景
  • 一、快速修复步骤(按顺序尝试)
    • 1. 重启 WSL2 虚拟化服务
    • 2. 重置 Windows 网络适配器
  • 二、深度排查与修复
    • 1. 检查基础网络连通性
    • 2. DNS 修复
    • 3. 网络配置修复
  • 三、高级配置(长期稳定方案)
    • 1. 创建静态网络配置
    • 2. 禁用 Hyper-V 随机 MAC
  • 四、验证修复
  • 常见错误对照表
  • 附:WSL2 网络架构图


背景

在 WSL2 中运行 Ubuntu 20.04 无法联网通常是由于 网络配置冲突 或 DNS 解析问题 导致。以下是系统性解决方案:


一、快速修复步骤(按顺序尝试)

1. 重启 WSL2 虚拟化服务

# 在 Windows PowerShell 中执行:
wsl --shutdown        # 关闭所有 WSL 实例
wsl -d Ubuntu-20.04   # 重新启动 Ubuntu

2. 重置 Windows 网络适配器

# 在 PowerShell 中以管理员身份执行:
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
# 重启电脑

二、深度排查与修复

1. 检查基础网络连通性

在 Ubuntu 终端中执行:

ping 8.8.8.8          # 测试 IPv4 连通性
ping 114.114.114.114  # 测试国内 DNS 连通性
  • 如果 IP 能通但域名无法解析 → 跳转到 DNS 修复
  • 如果 IP 不通 → 跳转到 网络配置修复

2. DNS 修复

原因:WSL2 默认从 Windows 继承 DNS,但可能配置被覆盖。

修复步骤:

# 在 Ubuntu 中操作:
sudo rm /etc/resolv.conf          # 删除旧配置
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
# 关闭 Ubuntu 后重新启动

3. 网络配置修复

原因:Windows 防火墙/VPN/代理软件拦截了 WSL2 流量。

解决方案

  1. 关闭 Windows 防火墙(临时测试):
    • 控制面板 → Windows Defender 防火墙 → 启用或关闭 → 全部关闭
  2. 处理 VPN/代理冲突:
    • 如果使用 VPN(如思科 AnyConnect),在连接 VPN 后执行:
sudo ip route del default
sudo ip route add default via $(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
  1. 手动设置 WSL2 网关:
# 在 Ubuntu 中获取 Windows 主机 IP
export WIN_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
# 设置默认路由
sudo ip route del default
sudo ip route add default via $WIN_IP

三、高级配置(长期稳定方案)

1. 创建静态网络配置

在 /etc/wsl.conf 添加:

[network]
generateResolvConf = false
hostname = mywsl

在 /etc/resolv.conf 设置:

nameserver 8.8.8.8
nameserver 223.5.5.5
search home      # 根据你的网络环境修改

2. 禁用 Hyper-V 随机 MAC

在 Windows PowerShell 中执行:

# 找到 WSL2 虚拟交换机名称(通常为 "vEthernet (WSL)")
Get-NetAdapter

# 禁用 MAC 地址随机化
Set-NetAdapter -Name "vEthernet (WSL)" -MacAddress "001122334455" -NoRestart

四、验证修复

curl -I https://www.baidu.com    # 测试 HTTPS 访问
nslookup www.qq.com             # 测试 DNS 解析

常见错误对照表

在这里插入图片描述


附:WSL2 网络架构图

+-------------------+     +-------------------+
|   Ubuntu 20.04    |     |   Windows 11      |
| (虚拟以太网适配器)| <-> | (vEthernet WSL)   |
+-------------------+     +-------------------+
           ↓                         ↓
    (NAT 网络)                (物理网络适配器)

通过以上步骤,90% 的 WSL2 网络问题可以得到解决。如果问题依旧,建议提供以下信息进一步诊断:

  1. ip addr show 输出
  2. cat /etc/resolv.conf 内容
  3. Windows 主机网络适配器列表(ipconfig /all)

http://www.kler.cn/a/528767.html

相关文章:

  • 《解锁AI黑科技:数据分类聚类与可视化》
  • 90,【6】攻防世界 WEB Web_php_unserialize
  • MySQL 插入数据
  • 【C++ 数学 括号匹配】2116. 判断一个括号字符串是否有效|2037
  • QT实现有限元软件操作界面
  • 使用iis服务器模拟本地资源服务器unityaddressables热更新出错记录
  • 一个缓冲区重叠漏洞分析与利用
  • 杨波 简单逻辑学:理性思考、清晰表达并解决问题 - 读书笔记
  • Vue.js 新的生命周期钩子:`onMounted`, `onUpdated` 等
  • 5.4.2 结构化设计方法+结构化程序设计方法
  • 基于Python的药物相互作用预测模型AI构建与优化(上.文字部分)
  • 自适应细粒度通道注意力机制FCA详解及代码复现
  • 使用C#开发一款通用数据库管理工具
  • 攻防世界_simple_php
  • c++ linux recv的概念和使用案例(服务端和客户端都有)
  • 【数据结构篇】时间复杂度
  • 读书笔记-《你的灯亮着吗?》
  • 嵌入式硬件篇---CPUGPUTPU
  • taskset -c 1-60
  • 5. 【Vue实战--孢子记账--Web 版开发】-- 主页UI
  • Python字典详解:从入门到实践
  • P3199 【[HNOI2009]最小圈】
  • 【自学笔记】Web前端的重点知识点-持续更新
  • 【llm对话系统】大模型 Llama 源码分析之 LoRA 微调
  • 【Vaadin flow 实战】第5讲-使用常用UI组件绘制页面元素
  • TOF技术原理和静噪对策