环境
OS:Win11 24H2 (OS 内部版本26120.1252)
wsl --version 执行效果
WSL 版本: 2.3.11.0
内核版本: 6.6.36.3-1
WSLg 版本: 1.0.63
MSRDC 版本: 1.2.5326
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.26120.1252
使用体验
初次使用照旧有一些坑的,特此记录
Windows Subsystem for Linux 比 VMware 假造机
安装 Oracle Linux 9.1
- # 查看可安装的有效分发
- wsl -l -o
- 或
- wsl --list --online
复制代码- # 2024.7 执行结果
- 以下是可安装的有效分发的列表。
- 使用 '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.5 openSUSE Leap 15.5
- SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
- SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
- openSUSE-Tumbleweed openSUSE Tumbleweed
复制代码- # 安装 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 会话时以哪个用户身份运行
复制代码 启用 systemd
默认无法使用 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 第五步查看网络连接名称,此处为 vEthernet (WSL (Hyper-V firewall))
- 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 }')
- # CatV 用户查看位置:设置 > 局域网连接右侧图标 > 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}"
- # 同时需要在宿主机添加防火墙规则
- 管理员 powershell
- Remove-NetFirewallRule -DisplayName "WSL"
- New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
复制代码- # 关闭代理
- unset http_proxy
- unset https_proxy
- # 查看环境变量
- echo $http_proxy
- echo $https_proxy
复制代码 WSL 常用下令
- # 运行指定发行版
- wsl --distribution <distribution>
- # 停止某个分发版
- wsl -t <distribution>
- # 立即终止所有正在运行的分发和 WSL 2 轻型工具虚拟机
- wsl --shutdown
- # 显示有关所有分发的详细信息
- wsl -l -v
- # 卸载指定分发版
- wsl --unregister <distribution>
- wsl --status
- # 检查更新
- wsl --update
复制代码 统统正常的设置
- [root@LAPTOP-JPRG2D01 username]# cat /etc/resolv.conf
- # [network]
- # generateResolvConf = false
- nameserver 10.255.255.254
- [root@LAPTOP-JPRG2D01 username]# 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 上运行的所有已安装发行版中设置全局设置,位于主机
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |