Windows 自带的 Linux 子系统
Kiml Lv5
1
24-09-22 初始记录

安装 WSL

安装 WSL1

  1. 管理员身份运行 PowerShell

  2. 输入命令,启用适用于 Linux 的 Windows 子系统功能

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 在 Microsoft Store 中选择中意的 Linux 分发版本,并安装

  2. 为新的 Linux 分发版创建用户账户和密码

升级到 WSL2

  1. 开启“虚拟机平台”可选功能

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启电脑

  2. 下载 Linux 内核更新包适用于 x64 计算机的 WSL Linux 内核更新包

  3. 设置 WSL 版本

1
2
3
4
PS C:\Users\user-name> wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。

使用 WSL

启动和退出 Linux

进入 Linux 子系统有以下几种方式:

(1)和正常软件一样启动,如在开始菜单中点击其图标、双击桌面快捷方式
(2)在 Windows 中打开一个终端,如 PowerShell,输入命令 wsl
(3)在终端中输入命令 Linux 发行版名称.exe,如 ubuntu20.04.exe

退出 Linux 子系统的方式:

(1)直接关闭终端
(2)在终端中输入命令 exit,此时退出了 WSL,然后输入命令 wsl -t Ubuntu-20.04,关闭 ubuntu 子系统。

1
2
3
4
5
6
7
8
# 列出所有分发的名称、运行状态、对应的 WSL 版本
wsl -l -v
# 终止指定的 Linux 分发
wsl -t <distro>
# 注销分发
wsl --unregister <distro>
# 终止所有正在运行的分发和 WSL2 轻型工具虚拟机
wsl --shutdown

换源

使用 Linux 子系统时,为了提高软件的安装速度,需要将软件源换成国内的镜像源。

  1. 备份原来的数据源配置文件

1
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
  1. 修改数据源配置文件

1
sudo vi /etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
  1. 更新源,升级软件

1
2
sudo apt-get update
sudo apt-get upgrade

使用 SSH 登录 Linux 子系统

开启 SSH 并允许 root 登录

  1. 安装 SSH 服务器

1
2
sudo apt update
sudo apt install openssh-server
  1. 修改配置端口为 22,允许密码和 root 登录。

1
sudo nano /etc/ssh/sshd_config

找到下面的内容并去掉注释在前面的#号,其中把 PermitRootLogin prohibit-password 更改为 PermitRootLogin yes 这是允许用 root 登录的。

1
2
3
Port 22
PermitRootLogin prohibit-password
PasswordAuthentication yes
  1. 重启 SSH 服务

1
2
3
service ssh restart
# 或者运行这个命令
sudo service ssh --full-restart
  1. 终端测试连接输入指令,格式为:ssh 用户名@域名/IP

1
2
ssh root@0.0.0.0
ssh 127.0.0.1
  1. 确保 SSH 服务器会在系统启动时自动启动

1
sudo systemctl enable ssh
  1. 配置永久解决方案将上述的命令保存为 service.sh,保存在 home 目录下

1
2
3
4
# >>> service ssh restart >>>
# for Xshell connection
sudo service ssh --full-restart
# <<< service ssh restart <<<

配置好之后,下次开机,只需要在 Linux 子系统的默认终端运行 sh service.sh 命令后,关掉终端改用 xshell 登录即可。

  1. 查看 SSH 监听端口

1
sudo ss -tuln | grep 22
  1. SSH 服务器状态

1
sudo service ssh status

设置默认使用 root 登录系统

  1. 切换 root 权限

1
2
sudo -i
# 然后输入密码
  1. 创建/打开 /etc/wsl.conf ,添加以下内容

1
2
[user]
default=root
  1. 运行以下命令重新启动 WSL 以应用更改

1
wsl --shutdown

设置端口转发

为了能够从外部连接到你的 WSL Linux 子系统,你需要确保系统具有公共 IP 地址,或者设置端口转发以将流量路由到 WSL 子系统的局域网 IP 地址。请检查你的网络配置,确保 WSL 子系统能够访问公共网络,并且有一个可供外部访问的 IP 地址。

  1. 增加转发的命令:

1
2
3
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=[IP] connectport=[PORT]
# 这里的IP为WSL中使用ipconfig查看的IP地址,PORT为WSL的PORT
# 还需要在windows防火墙中添加对应的入站规则,设置完成后可以通过ip地址远程访问wsl
  1. 删除转发的命令:

1
netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0
  1. 使用以下命令列出当前的端口转发规则:

1
netsh interface portproxy show all
  1. 测试连接的命令:

1
ssh username@ip -p 22

这里测试连接的 ip 可以在 linux 内使用命令 hostname -I 进行查看

卸载 Linux 系统

1
wsl --unregister Ubuntu

SSH 安全

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量