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 不需要使用代理,请不要修改此设置!