文章目录
使用体验
Windows Subsystem for Linux 比 VMware 虚拟机
更轻量
启动速度快
资源占用低
安装 Oracle Linux 9.1
# 查看可安装的有效分发
wsl --list --online
# 安装 Oracle Linux 9.1
wsl --install OracleLinux_9_1
修改默认存储路径
防止 C 盘爆满
wsl --shutdown
wsl -l -v
# 旧路径导出
wsl --export OracleLinux_9_1 E:\OracleLinux_9_1.tar
# 删除旧的
wsl --unregister OracleLinux_9_1
# 导入新路径
# wsl --import <DistroName> <InstallLocation> <InstallTarFile>
wsl --import OracleLinux_9_1 E:\WSL\OracleLinux_9_1 E:\OracleLinux_9_1.tar
# E:\OracleLinux_9_1.tar 可删除
默认 root 用户登录
# 切换至 root
sudo su
# 重置 Root 密码
passwd
# WSL 默认 root 用户登录
vim /etc/wsl.conf
[user]
default=root # 首次启动 WSL 会话时以哪个用户身份运行
启用 systemctl
默认无法使用 systemctl 命令
https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#systemd-support
vim /etc/wsl.conf
[boot]
systemd=true
wsl --shutdown
wsl
启用 SSH 连接
yum -y install openssh-server
# 允许 root 用户 ssh 登录(非必须)
vim /etc/ssh/sshd_config
编辑内容:
Port=22 # 启用端口号22
ListenAddress 0.0.0.0 # 监听所有地址
PermitRootLogin yes # 是否允许 root 账户登录
PasswordAuthentication yes # 是否支持账号密码形式的登录
systemctl restart sshd
systemctl status sshd
systemctl enable sshd
WSL 无法 ping 通宿主机和域名
宿主机管理员终端(powershell)执行
Remove-NetFirewallRule -DisplayName "WSL"
# 新增防火墙规则,报错解决:https://blog.csdn.net/u011526331/article/details/134782442
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL (Hyper-V firewall))" -Action Allow
# 重启
wsl --shutdown
WSL 使用主机代理(测试通过)
# 开启代理
# 从 resolv.conf 获取的 IP 不正确,为 10.255.255.254
# hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
# 查看位置:clashV > 设置 > 局域网连接右侧图标 > vEthernet (WSL (Hyper-V firewall)) > IP 地址
hostip=172.23.128.1
port=your port
PROXY_HTTP="http://${hostip}:${port}"
export http_proxy="${PROXY_HTTP}"
export https_proxy="${PROXY_HTTP}"
# 关闭代理
unset http_proxy
unset https_proxy
# 查看环境变量
echo $http_proxy
echo $https_proxy
# 同时需要在宿主机添加防火墙规则
管理员 powershell
Remove-NetFirewallRule -DisplayName "WSL"
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
WSL 常用命令
# 运行指定发行版
wsl --distribution <distribution>
# 停止某个分发版
wsl -t <distribution>
# 立即终止所有正在运行的分发和 WSL 2 轻型工具虚拟机
wsl --shutdown
# 显示有关所有分发的详细信息
wsl -l -v
# 卸载指定分发版
wsl --unregister <distribution>
wsl --status
# 检查更新
wsl --update
一切正常的配置
[root@LAPTOP-JPRG2D01 pcdd]# cat /etc/resolv.conf
# [network]
# generateResolvConf = false
nameserver 10.255.255.254
[root@LAPTOP-JPRG2D01 pcdd]# cat /etc/wsl.conf
[boot]
systemd=true
[network]
# 是否将 WSL 设置为生成 /etc/resolv.conf。 resolv.conf 包含能够将给定主机名解析为其 IP 地址的 DNS 列表。
generateResolvConf = false
[user]
default=root
/etc/wsl.conf 和 %UserProfile%/.wslconfig 区别
wsl.conf 用于为在 WSL 1 或 WSL 2 上运行的每个 Linux 发行版按各个发行版配置本地设置,位于从机
.wslconfig 用于在 WSL 2 上运行的所有已安装发行版中配置全局设置,位于主机