文章目录
- wsl安装ubuntu
- 什么是wsl
- 安装wsl
- 检查运行 WSL 2 的要求
- 将 WSL 2 设置为默认版本
- 查看并安装linux
- WSL2的使用
- 如何查看linux文件
- wsl如何使用代理:
- 方法1:设置linux代理
- 方法2:通过 DNS 隧道来配置 WSL 的网络
- 如何将 WSL 接入局域网并与宿主机同网段
- 使用VScode连接到WSL2
wsl安装ubuntu
什么是wsl
官网:https://learn.microsoft.com/zh-cn/windows/wsl/about
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。
安装wsl
官方文档:
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-1---enable-the-windows-subsystem-for-linux
需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。
以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
检查运行 WSL 2 的要求
- 若要更新到 WSL 2,需要运行 Windows 10。
对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本或 Windows 11。
低于 18362 的版本不支持 WSL 2。
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 更新到“设置”菜单中的最新 Windows 版本。
将 WSL 2 设置为默认版本
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。 通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。 (或者在 Windows 命令提示符下输入 ver 命令)。 你可能需要更新到最新的 Windows 版本。 低于 14393 的版本完全不支持 WSL。
官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/compare-versions?source=recommendations
查看并安装linux
运行 wsl --list --online
以查看可用发行版列表并运行 wsl --install -d <DistroName>
以安装一个发行版。
然后通过 wsl --install -d Ubuntu-20.04
选择 Ubuntu 20.04 进行安装。
WSL2的使用
如何查看linux文件
Windows系统下,在我的电脑中可以找到Linux子系统的文件夹,可以直接进行访问,并与Windows系统下的文件进行相互操作。
wsl如何使用代理:
方法1:设置linux代理
由于WSL采用的是NAT模式,不能直接与本机localhost共享代理端口。
以往采取的方式就是设置http_proxy和https_proxy.
但,不方便的地方在于每次重启wsl后,由于IP会变化,很有可能需要重新进行配置。
也有办法,可以通过读取/etc/resolve.conf,提取其中的nameserver,自动提取IP,这样就可以自动化配置了。
有两个关键步骤:
- WSL2 中配置的代理要指向 Windows 的 IP;
- Windows 上的代理客户端需要允许来自本地局域网的请求;
由于 Linux 子系统也是通过 Windows 访问网络,所以 Linux 子系统中的网关指向的是 Windows,DNS 服务器指向的也是 Windows,基于这两个特性,我们可以将 Windows 的 IP 读取出来。
使用
cat /etc/resolv.conf
查看DNS
再输入
export ALL_PROXY="http://{DNS中的地址}:7890"
就可以使用了, 7890 是 Windows 上运行的代理客户端的端口,记得要在 Windows 代理客户端上配置允许本地局域网请求。
一键配置脚本
将上面的过程写入一个 bash 脚本,可以轻松的实现一键配置代理:
#!/bin/bash
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export ALL_PROXY="http://$host_ip:7890"
WSL 每次启动的时候都会有不同的 IP 地址,所以并不能直接用静态的方式来设置代理。WSL2 会把 IP 写在 /etc/resolv.conf中,因此可以用 cat /etc/resolv.conf | grep nameserver | awk ‘{ print $2 }’ 这条指令获得宿主机 IP 。
WSL2 自己的 IP 可以用 hostname -I | awk '{print $1}'
得到。**
方法2:通过 DNS 隧道来配置 WSL 的网络
官方解决方案:networking-considerations-with-dns-tunneling
wsl --shutdown
[wsl2]
memory=8GB
processors=8
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
sparseVhd=true
如何将 WSL 接入局域网并与宿主机同网段
Windows Subsystem for Linux (WSL) 是一个非常实用的工具,它允许在 Windows 系统上原生运行 Linux 环境。默认情况下,WSL 使用 NAT 网络模式,与宿主机处于不同的网段。
TODO
使用VScode连接到WSL2
VS Code 利用 Remote-WSL 扩展使你能够直接从 VS Code 使用 WSL2 作为实时开发环境