问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

WSL2代理配置与vEthernet (WSL)问题解决指南

创作时间:
作者:
@小白创作中心

WSL2代理配置与vEthernet (WSL)问题解决指南

引用
CSDN
1.
https://blog.csdn.net/2301_81697902/article/details/137481359

本文介绍了WSL2(Windows Subsystem for Linux 2)的代理配置方法,特别是针对vEthernet (WSL)网络适配器的问题。文章详细描述了WSL的两种网络模式(NAT模式和镜像模式),并重点介绍了如何通过配置.wslconfig文件来启用镜像模式网络,以解决代理配置问题。此外,文章还提供了具体的命令行操作步骤和故障排除方法。

概述

WSL有两个网络模式:默认网络模式(NAT)和镜像模式网络。NAT模式是WSL1和WSL2的默认网络模式。只有WSL2.0及以上版本,同时Windows 11版本22H2或更高版本用户才能使用镜像模式网络。

镜像模式网络解决代理配置

请确保你的电脑是WSL2.0及以上版本,且使用Windows 11版本22H2或更高版本。如果想升级到WSL2,请参考附录。

  1. C:\Users\your_user_name目录下新建一个txt文件,并将其重命名为.wslconfig

  2. .wslconfig文件中输入以下代码:

[wsl2]
# 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
autoProxy=true

# WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
dnsTunneling=true

# WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 WPF 能过滤子系统流量(请根据实际需要启用)
firewall=true

# 启用 WSLg GUI 图形化程序支持
guiApplications=true

# 启用 IPv6 网络支持
ipv6=true

# 启用 localhost 网络转发支持
localhostForwarding=true

# 限制 WSL2/WSLg 子系统的最大内存占用
memory=4GB

# 启用 WSL2/WSLg 子系统嵌套虚拟化功能支持
nestedVirtualization=true

# 启用镜像网络特性支持
networkingMode=mirrored

# 启用 WSL2/WSLg 子系统页面文件通报,以便 Windows 回收已分配但未使用的内存
#pageReporting=true

# 设置 WSL2/WSLg 子系统的逻辑 CPU 核心数为 8(最大肯定没法超过硬件的物理逻辑核心数)
processors=8

[experimental]
# 启用空闲内存自动缓慢回收
autoMemoryReclaim=gradual

# 启用 WSL2/WSLg 子系统和 Windows 宿主之间的本地回环互通支持
hostAddressLoopback=true

# 启用 WSL2/WSLg 子系统虚拟硬盘空间自动回收
sparseVhd=true

# 和 dnsTunneling 配合使用,决定是否使用 Windows DNS 缓存池
useWindowsDnsCache=false
  1. 使用管理员权限在PowerShell窗口中运行以下命令,以配置Hyper-V防火墙设置,从而允许入站连接:
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow

New-NetFirewallHyperVRule -Name MyWebServer -DisplayName "My Web Server" -Direction Inbound -VMCreatorId "{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}" -Protocol TCP -LocalPorts 80
  1. 在命令提示符(cmd)中输入以下命令重启WSL配置:
wsl --shutdown
  1. 重新打开WSL即可完成配置。

镜像模式网络说明

主要起作用的配置项包括:

  • networkingMode=mirrored:启用镜像网络特性支持
  • autoProxy=true:是否强制WSL2/WSLg子系统使用Windows代理设置
  • dnsTunneling=true:WSL2/WSLg DNS代理隧道,以便由Windows代理转发DNS请求
  • firewall=true:WSL2/WSLg子系统的Windows防火墙集成

镜像模式网络配置失败的基本原因

  1. WSL或Windows版本不对

  2. 网络适配器vEthernet (WSL)消失。如果在cmd: ipconfig时没有出现vEthernet (WSL),可能是重置了Windows网络或进行了其他操作导致适配器丢失。

  3. 解决方法:删除并重新安装WSL

    wsl --uninstall
    wsl --update
    
  4. Windows代理设置问题。检查Windows上的代理软件设置,确保与代理软件的端口匹配(例如Clash的默认端口是7890)。

  5. 防火墙问题。如果修改过入站或出站规则,可能需要重置防火墙设置。

注意:本文内容基于2024年4月的技术环境,部分配置和软件版本可能已经发生变化。在实际操作时,请注意版本兼容性问题。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号