跳转到内容

WSL2安装

一个 windows 运行 Linux 环境

Terminal window
wsl --list --online #查看可用的系统版本
wsl --install -d version_name # 安装指定的系统版本 (可能需要执行两次) #会直接安装到 C 盘中
wsl --list --verbose # 查看当前已经安装的系统版本
wsl --set-version <distribution name> <versionNumber> #设置版本号
wsl --set-default <DistributionName> #设置默认系统
wsl --set-default-version <Version#> # 设置默认版本号
  • 保留数据
Terminal window
wsl --shutdown #关闭
wsl --export Ubuntu D:\wsl\ubuntu\ubuntu.tar # 导出
wsl --unregister Ubuntu #卸载
wsl --import Ubuntu D:\wsl\ubuntu D:\wsl\ubuntu\ubuntu.tar --version 2
Terminal window
wsl ~ #以home 目录运行
wsl --distribution <Distribution Name> --user <User Name> # 指定版本与用于运行
wsl --status #查看 wsl 配置信息
wsl --version #查看版本号
wsl --shutdown #停止所有虚拟机
wsl --terminate <Distribution Name> # 停止特定虚拟机
wsl --export <Distribution Name> <FileName> #导出发行版
wsl --import <Distribution Name> <InstallLocation> <FileName> #导入发行版
wsl --unregister <DistributionName> #注销发行版
wsl --mount <DiskPath> #装载磁盘与设备
wsl --unmount <DiskPath> # 卸载磁盘
  • 更新源
Terminal window
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
# 替换为一下内容
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# 更新源
apt update && apt upgrade -y
# 添加用户权限
sudo echo "yangxy ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
/etc/wsl.conf
[boot]
systemd=true
[network]
hostname=slave1
generateHosts=false #不生成 hosts
[user]
default=yangxy

直接修改/etc/hostname 等文件可能无效,需要手动修改以上配置文件

Terminal window
ubuntu /? #帮助
ubuntu config --default-user root # 设置默认用户
Terminal window
explorer.exe . #打开 Linux 文件
\\wsl$\ubuntu #打开 linux 文件、
/mnt/c/Users/wys #window 文件
  • 使用指定的 IP 地址访问即可
  • 或者在宿主机上直接使用 localhost 访问即可
  • 使用 Hyper-v 创建虚拟交换机 wsl-bridge
  • 创建.wslconfig 文件
[wsl2]
networkingMode=bridged
vmSwitch=wsl-bridge
dhcp=false

在 windows 管理员家目录 supervisorctl

  • 使用 wsl import 命令创建多个发行版本
  • 添加针对单个发行版本的配置信息
# 在/etc/wsl.conf下
[boot]
systemd=true
[network]
hostname=slave1
generateResolvConf = false # 禁止启动WSL2时生成/etc/resolv.conf
generateHosts = false # 禁止启动WSL2时修改/etc/hosts
[user]
default=yangxy
  • 添加静态 ip 配置
# 在/etc/netplan/01-netcfg.yaml下
network:
version: 2
renderer: networkd
ethernets:
eth0: # 替换为你的网络接口名称
addresses: [192.168.5.122/24] # 替换为你想要的静态 IP 地址和子网掩码
routes:
- to: default
via: 192.168.5.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # 可选:替换为你的 DNS 服务器地址
  • 完善 DNS 解析
# 在/etc/resolv.conf
nameserver 8.8.4.4 # 写入你本地最好用的dns就行

配置 DHCP 静态解析

综上,所有的子系统共享网络空间,网络当前没有办法完全隔离开

  • wsl1 vs wsl2
    • 完整的 linux 内核
    • 系统更兼容
    • 速度提升
  • lsof 命令用不了
Terminal window
netstat -tln