Windows WSL子系统安装及使用

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。使用 WSL 安装和运行各种 Linux 发行版,例如 Ubuntu、Debian、Kali 等。 安装 Linux 发行版并从 Microsoft Store 接收自动更新、导入 Microsoft Store 中没有的 Linux 发行版,或构建你自己的定制 Linux 发行版。

将文件存储在独立的 Linux 文件系统中,具体取决于安装的发行版。

运行命令行工具,例如 BASH。

运行常用的 BASH 命令行工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。

运行 Bash 脚本和 GNU/Linux 命令行应用程序,包括:

工具:vim、emacs、tmux

语言:NodeJS、JavaScript、Python、Ruby、C/C++、C# 和 F#、Rust、Go 等。

服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。

使用自己的 GNU/Linux 分发包管理器安装其他软件。

使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。

在 Windows 上调用 GNU/Linux 应用程序。

运行直接集成到 Windows 桌面的 GNU/Linux 图形应用程序

使用你的设备 GPU 加速 Linux 上运行的机器学习工作负载。

安装

Win+X 以管理员运行CMD

  • 在终端下进行wsl命令操作

默认安装 Ubuntu

wsl --install --web-download

查看其他发行版

wsl --list --online

以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

安装 Debian

 wsl --install Debian --web-download

查看已安装的Linux子系统

wsl --list -v

切换默认

wsl --set-default Debian

启动子系统

wsl -d Debian

卸载子系统

wsl --unregister Debian

备份子系统

wsl --export Debian debain.tar

导入备份

wsl --import Debian2 D:/linux C:/debian.tar
wsl --import <自定义名称> <路径> <备份路径文件>

使用

sudo apt update
sudo apt install vim

ssh远程连接

进入ubuntu子系统,删除openssh-server

sudo apt purge openssh-server

重新安装openssh-server

sudo apt install openssh-server

修改端口

如果直接使用22会导致与windows端口冲突,会导致无法使用ssh进行连接

配置文件在/etc/ssh/sshd_config这个文件中。找到"Port 22"这句话,把22改成比如2222再重启ssh

sudo vim /etc/ssh/sshd_config

启动SSH

进入WSL,敲入以下命令

sudo service ssh start

查看ssh服务状态,是否启动成功

service ssh status

开机自启

sudo systemctl enable ssh

允许root登录

/etc/ssh/sshd_config配置文件中添加

PermitRootLogin yes

重启SSH

默认 root 密码是随机的,即每次开机都有一个新的 root 密码。

可以在终端输入命令 sudo passwd,然后输入当前用户的密码,终端会提示我们输入新的密码并确认,此时的密码就是 root 新密码。

修改成功后,输入命令 su root,再输入新的密码就 ok 了。

宿主机代理

宿主机开启了代理,但是代理对 wsl 并没有起作用。

如果你想让 wsl 也能使用代理,就需要进行配置。

在 windows 的 C:\User\<你的用户名>\ 下创建一个.wslconfig,内部写入如下内容

[experimental]
autoMemoryReclaim=gradual  
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

写完后保存,重启 wsl 即可(在 windows 的 powershell 中执行)

wsl --shutdown

注意,每次更换代理都需要重启 wsl 才会生效。wsl 会在右下角弹出消息提示。

如果你的 wsl 不需要使用代理,请不要修改此设置!

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息