win11 wsl ubuntu24.04
一:开启Hyper-V
win11家庭版开启hyper-v
- 桌面新建 xxx.txt 文档,将下面的代码粘贴到文档中保存;并将 xxx.txt 重命名为 install_hyper_v.cmd
pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" del hyper-v.txt Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
- 右键install_hyper_v.cmd,选择“以管理员身份运行”,等待几分钟后,直至命令行界面提示选择“Y/N”,输入 Y 以重启电脑完成安装
二:安装wsl
三:安装ubuntu24.04
三:桥接模式,固定IP
-
执行Get-NetAdapter,可以列出系统所有的网卡
-
查看虚拟网卡
-
wsl虚拟网络和主机有线网络桥接起来
Set-VMSwitch "WSL (Hyper-V firewall)" -NetAdapterName "WLAN" # Set-VMSwitch "wsl虚拟网卡" -NetAdapterName "物理网卡"
-
手动修改WSL网络
sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0 sudo ip addr add 192.168.6.16/24 broadcast 192.168.6.255 dev eth0 sudo ip route add 0.0.0.0/0 via 192.168.6.1 dev eth0
#!/bin/bash new_ip=192.168.6.16 brd=192.168.6.255 gateway=192.168.6.1 nameserver=114.114.114.114 net_dev=eth0 echo "password" | sudo -S ip addr del $(ip addr show $net_dev | grep 'inet\b' | awk '{print $2}' | head -n 1) dev $net_dev sudo ip addr add $new_ip/24 broadcast $brd dev $net_dev sudo ip route add 0.0.0.0/0 via $gateway dev $net_dev sudo sed -i "\$c nameserver $nameserver" /etc/resolv.conf
-
取消桥接
Set-VMSwitch "WSL (Hyper-V firewall)" -SwitchType Internal
-
重启系统失效
-
开启桥接脚本
wsl-bridge-on.ps1
:echo "Change WSL (Hyper-V firewall) Bridge" wsl --cd ~ -e ls Get-NetAdapter Set-VMSwitch "WSL (Hyper-V firewall)" -NetAdapterName "Ethernet" wsl --cd ~ -e sh -c ./setIP.sh pause
setIP.sh
#!/bin/bash sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0 sudo ip addr add 192.168.1.152/24 broadcast 192.168.1.255 dev eth0 sudo ip route add 0.0.0.0/0 via 192.168.1.1 dev eth0
-
关闭桥接脚本
wsl-bridge-off.ps1
:echo "WSL (Hyper-V firewall) Bridge OFF" Set-VMSwitch "WSL (Hyper-V firewall)" -SwitchType Internal wsl --shutdown wsl --cd ~ -e ls pause
四:U盘使用
-
windows 系统查看u盘盘符
-
wsl 挂载
sudo mount -t drvfs F: /mnt/g
- 卸载U盘
sudo umount /mnt/g
五:wsl 从c盘迁移到其它盘
- 查看虚拟机名称和状态
wsl -l -v
- 停止虚拟机
wsl --shutdown
- 导出/备份
wsl --export Ubuntu-22.04 D:\Ubuntu_WSL\Ubuntu.tar
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 D:\Ubuntu_WSL D:\Ubuntu_WSL\Ubuntu.tar
- 恢复默认用户
Ubuntu2204 config --default-user sws
六:wsl 将分布版设置为默认值
wsl --set-default Ubuntu-24.04
参考资料
Win11 WSL2桥接网络实现局域网连接与Ubuntu18.04/20.04VNC桌面搭建以及Linux命令行外网代理实现
WSL系列内容:wsl2 通过桥接网络实现被外部局域网主机直接访问(更新一键执行powershell脚本)
适用于 Linux 的 Windows 子系统文档