最近使用 WSL2,总结一下经验

升级到 WSL2

在 Powershell(administrator) 中执行:

# Enable the Windows Subsystem for Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# Enable Virtual Machine feature
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

下载 WSL2 Linux kernel update package for x64 machines 并安装

然后执行:

# Set WSL 2 as your default version
wsl --set-default-version 2

最后在 windows store 中安装 linux 发行版,安装之后可以通过 wsl -l -v 命令检查是否成功升级 WSL2,如果没成功就是系统不支持

PS C:\WINDOWS\system32> wsl -l -v
  NAME      STATE           VERSION
* Debian    Running         2

在 WSL2 中使用代理

如果宿主机开启了代理,在 WSL 中直接用 127.0.0.1:1080(端口根据自己的实际设置) 即可,但在 WSL2 中需要使用宿主机的“vEthernet (WSL)”这个 IP

在 WSL2 Debian 中查看代理需要使用的 IP 地址:

cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*'

172.19.144.1

新建并编辑 /etc/apt/apt.conf.d/proxy.conf

Acquire::http::Proxy "http://172.19.144.1:1081/";
Acquire::https::Proxy "http://172.19.144.1:1081/";

保存之后重新打开会话窗口,sudo apt update 即通过代理快速更新啦

所有走宿主机的代理都需要使用这个 IP,如命令行:

export http_proxy="http://172.19.144.1:1081/"
export https_proxy="http://172.19.144.1:1081/"
  • 如果连接失败,注意检查宿主机的代理程序是否开启 “允许来自局域网的连接”
  • 其次是检查代理程序在 windows 防火墙中的状态,如图,我把每行都全部勾选之后就能成功连接了firewall

Comments