问题一:ip a 只显示一个 lo 网络适配器

解决方法:删除 .wslconfig 文件

首先尝试删除 Windows 用户目录下的 .wslconfig 文件。

注意: 如果删除并重启后遇到 “wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理” 的错误,这可能是由于以前安装的 VMware 没有完全卸载干净。

解决方案:

  1. 打开 Windows 的设备管理器,检查网络适配器是否出现问题(例如,报错“代码56”)。
  2. 如果有问题,打开注册表 (regedit),删除 HKEY_CLASSES_ROOT\CLSID\{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b} 项。

这个方法也适用于其他因网络适配器导致“代码56”错误的情况。

问题二:提示 “localhost 代理配置未镜像到 WSL”

如果只遇到 “检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理” 的问题,请按以下步骤操作:

  1. 创建 .wslconfig 文件 在您的 Windows 用户目录(通常是 C:\Users\你的用户名\)下创建一个新的文本文件,并将其命名为 .wslconfig

  2. 编辑 .wslconfig 文件 在文件中输入以下内容:
    [experimental]
    autoMemoryReclaim=gradual
    networkingMode=mirrored
    dnsTunneling=true
    firewall=true
    autoProxy=true
    
  3. 重启 WSL 服务 打开 PowerShellCMD,输入以下命令来关闭 WSL:
    wsl --shutdown
    

    关闭后,重新打开您的 WSL 发行版即可。

  4. 检查网络连接

    如果重启后遇到无法访问外部网络的问题,请详见另一篇文章:《WSL的网络问题(1)》



在 Windows 下使用 WSL2(Windows Subsystem for Linux)时,有时会遇到以下问题:

  • apt update / ping google.com / gif clone 等命令提示 “Temporary failure in name resolution”“Could not resolve host”

这种问题的本质是 WSL 内部的 /etc/resolv.conf 配置了一个无法正常访问的 DNS 服务器


1. 让 DNS 设置永久生效

WSL 默认会在重启时覆盖 /etc/resolv.conf,我们需要禁用它的自动生成。

  1. 编辑 WSL 配置:

    sudo vim /etc/wsl.conf
    

    写入:

    [network]
    generateResolvConf = false
    
  2. 重启 WSL:

    wsl --shutdown
    wsl
    

2.解决办法

1:使用公共的DNS解析服务器

  1. 在 WSL 中:

    sudo vim /etc/resolv.conf
    

    改成:

    nameserver 8.8.8.8
    nameserver 114.114.114.114
    
    

2:使用当前 Wi-Fi 的 IPv4 地址

  1. 在 PowerShell 中查看 Wi-Fi IPv4:

    ipconfig
    

    找到 无线局域网适配器 WLANIPv4 地址(例如 192.168.1.5)。

  2. 在 WSL 中:

    sudo vim /etc/resolv.conf
    

    改成:

    nameserver 192.168.1.5
    nameserver 114.114.114.114
    
    
    • 如果遇到无法修改文件,可以试试这个 sudo chattr -i /etc/resolv.conf
  3. 保存并退出,然后测试:

    ping baidu.com
    

3:使用 WSL 的虚拟网关的IPv4

  1. 在 Windows 中查看:

    ipconfig
    

    找到 vEthernet (Default Switch)IPv4 地址(例如 172.27.240.1)。

  2. 修改 WSL DNS:

    sudo vim /etc/resolv.conf
    nameserver 172.27.240.1
    nameserver 114.114.114.114
    
  3. 保存并测试。



Hello world! This site is my first English blog.