win11 安装 WSL2 在非 C 盘及配置(图形界面+代理)

本文详细介绍如何在Windows系统上安装WSL2,并配置非C盘安装、图形界面及网络代理,适合希望在Windows环境中高效利用Linux环境的用户。

直接安装 WSL2 在非 C 盘

参考 WSL 的手动安装步骤

启用 WSL 功能

首先需要启用 WSL 相关的 windows 功能,win+R 输入 appwiz.cpl 回车 -> 启用或关闭 Windows 功能,然后启用下列三个功能:
Hyper-V 在这里插入图片描述

前提条件

win11 是默认支持 WSL2 的,如果是 win10 请参考 检查运行 WSL2 的要求

设置默认安装 WSL2

为了安装 WSL2,需要先安装 WSL2 的内核更新包:适用于 x64 计算机的 WSL2 Linux 内核更新包
下载这个 .msi 文件之后,双击安装可能会因为权限问题导致安装失败,参考 安装程序出现2502、2503错误解决方法

  1. 打开“命令提示符(管理员)”
  2. 在“命令提示符(管理员)”中输入"msiexec /package " +“你将要安装的程序的完整路径及程序名”(注意空格)
  3. 然后按回车键,安装程序就会自动启动

此外,你可能还需要使用命令将 WSL2 设置为默认版本:

wsl --set-default-version 2

但 win11 似乎默认就是安装 wsl2 ,我没有手动设置,直接安装的。

安装在非 C 盘

至此,所有的准备工作都OK了,从官网页面可以下载想要安装的 Linux 发行版:下载发行版
在这里插入图片描述
以我下载的 Ubuntu 22.04 LTS 为例,把下载后得到的 .appx 文件放到 D 盘目录下,然后修改后缀名为 zip ,即 Ubuntu2204-220620.appx -> Ubuntu2204-220620.zip

然后把它解压,得到一个文件夹,如果文件夹中有 ubuntu****.exe ,那就可以了;但是 22.04 版本解压后应该是有若干个 appx ,这时候根据自己的平台把 Ubuntu_2204.0.10.0_x64.appxUbuntu_2204.0.10.0_ARM64.appx 修改后缀为 zip,然后再一次解压,这一次就可以得到 .exe 了。

双击 ubuntu2204.exe 开始安装,如果出现错误,那么大概率是没有更新 WSL2 的内核,回到前面一节 “设置默认安装 WSL2” 更新内核。

安装时根据向导进行相应的设置即可。不过注意在设置用户名时只能设置小写字母、数字和下划线(不能使用大写字母),如果不符合要求是无法选择 [done] 的。

至此我们已经安装好了 WSL2,在 CMD 中使用命令可以检查我们安装的版本:

wsl -l -v

图形界面

win11 开始原生支持 WSL 的图形界面,参考 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用

先决条件
更新 WSL 以支持 GUI

由于我们已经安装好了 WSL,因此通过 powershell 更新即可:

  1. 管理员身份运行 PowerShell
  2. 更新 WSL:wsl --update
  3. 重启 WSL :wsl --shutdown

然后就可以安装并运行 GUI 程序了,比如:

sudo apt install gedit -y
gedit ~/.bashrc

配置 WSL2 使用 Windows 网络代理

通过下面脚本可以便捷实现网络代理的设置:./proxyrc.sh set 设置代理,./proxyrc.sh unset 取消代理(以这种方式设置代理只是临时的,重新进入 WSL 需要再一次设置)。

#!/bin/sh
# 获取 windows 主机 IP
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')
# 代理端口一般是 7890,注意自己去代理软件确认
port="7890"

PROXY_HTTP="http://${hostip}:${port}"

set_proxy(){
    export http_proxy="${PROXY_HTTP}"
    export HTTP_PROXY="${PROXY_HTTP}"

    export https_proxy="${PROXY_HTTP}"
    export HTTPS_proxy="${PROXY_HTTP}"

    export ALL_PROXY="${PROXY_SOCKS5}"
    export all_proxy=${PROXY_SOCKS5}
}

unset_proxy(){
    unset http_proxy
    unset HTTP_PROXY
    unset https_proxy
    unset HTTPS_PROXY
    unset ALL_PROXY
    unset all_proxy
}

test_setting(){
    echo "Host ip:" ${hostip}
    echo "WSL ip:" ${wslip}
    echo "Current proxy:" $https_proxy
}

if [ "$1" = "set" ]
then
    set_proxy
elif [ "$1" = "unset" ]
then
    unset_proxy
elif [ "$1" = "test" ]
then
    test_setting
else
    echo "Unsupported arguments."
fi

因为 windows 防火墙的原因,如上设置代理后依然无法使用,因此还需要在 windows 防火墙中设置一个入站规则,参考 wsl2配置使用windows网络代理

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值