WSL2 网络优化配置:提升Git克隆与包下载速度

目录


在使用WSL2进行开发时,发现Windows端下载速度正常,但WSL内Git克隆、pip安装依赖包速度较慢,难以跑满实际网速,部分场景需依赖国内镜像源提速。尝试了几种WSL网络配置优化方案,记录如下,供参考。

方法一:WSL2镜像网络模式配置

  1. 在WSL终端中执行命令,编辑环境配置文件
shell 复制代码
vim ~/.bashrc

打开文件后,注释掉文件中http_proxy、https_proxy相关的旧配置,避免与新网络模式冲突。

  1. 执行命令关闭WSL,使配置生效
shell 复制代码
wsl --shutdown
  1. 进入路径C:\Users\你的用户名\,新建名为.wslconfig的文件,用记事本打开并写入以下配置
md 复制代码
[wsl2]
memory=8GB
processors=8
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
sparseVhd=true

保存文件后重新启动WSL,即可完成镜像网络模式配置。

实测该方案可优化WSL网络连通性,下载速度可稳定在几百KB至1MB左右。

方法二:WSL2版本更新与开发网络配置

部分场景下WSL默认版本不支持新网络特性,可先更新WSL版本,再配置开发环境网络参数。

  1. 以管理员身份打开PowerShell终端,执行WSL预览版更新命令
shell 复制代码
wsl --update --pre-release

若执行时出现403报错,可按以下步骤修复环境依赖:

  1. 开启WSL所需Windows核心功能
shell 复制代码
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 执行完成后重启电脑,使系统功能生效。
  2. 同步系统时间,避免网络证书校验异常
shell 复制代码
net start w32time
w32tm /resync
  1. 重启后再次以管理员身份执行WSL更新命令,出现版本更新进度提示即代表更新成功
shell 复制代码
正在检查更新。
正在将适用于的 Linux 的 Windows 子系统更新到版本: 2.7.3.
  1. 按照方法一的配置,编辑.wslconfig文件,写入网络优化配置
md 复制代码
[wsl2]
nestedVirtualization=true
ipv6=true
[experimental]
autoMemoryReclaim=gradual # gradual | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

配置完成后重启WSL。

  1. WSL开发环境网络连通性配置
shell 复制代码
# 获取主机网关IP,测试本地网络端口连通性
export hostip=$(cat /etc/resolv.conf | grep -oP 'nameserver\s+\K\S+')
curl -x http://${hostip}:7890 https://github.com -I --connect-timeout 5

若测试出现连接失败,可配置临时环境变量,适配本地开发网络:

shell 复制代码
export ALL_PROXY="http://localhost:7890"
export HTTP_PROXY="http://localhost:7890"
export HTTPS_PROXY="http://localhost:7890"

针对Git克隆失败的问题,单独配置Git网络参数:

shell 复制代码
git config --global http.proxy "http://localhost:7890"
git config --global https.proxy "http://localhost:7890"

该方案可成功完成Git克隆与包安装,实测下载速度约2MB,会随网络环境小幅波动。


相关推荐
一个人旅程~1 小时前
关于imac27inch因改短用户名导致混合硬盘和系统崩溃的问题分析与故障解决
经验分享·笔记·macos·新浪微博
心祭丫丫1 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
派大猩猩_3 小时前
Obsidian 笔记怎么同步多端:Nutstore Sync 大笔记库同步测评
笔记·obsidian·obsidian插件·obsidian同步
没差c7 小时前
winsw将jar、nginx等注册为Windows服务
windows·nginx·jar
叼烟扛炮8 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮8 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
光谱SpectrAI8 小时前
Claude Code 2.1.318 的隐私模块:4 条命令,拦了 2 条
windows
Rabitebla9 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
叼烟扛炮10 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
Hello_Pyhx10 小时前
NWinfo 导出 Windows 硬件信息:从 JSON 报告到缺项排查
windows·json