配置安装 环境要求 windows10版本大于20H1
升级工具链接:https://www.microsoft.com/zh-cn/software-download/windows10
启用适用于 Linux 的 Windows 子系统 1 2 dism.exe /online /enable-feature /featurename:Microsoft-Windows -Subsystem -Linux /all /norestart
启用虚拟机功能 1 2 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下载 Linux 内核更新包 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
将 WSL 2 设置为默认版本 1 wsl --set -default -version 2
安装linux子系统 Microsoft Store:https://aka.ms/wslstore
实现局域网访问 设置支持root远程登录 安装ssh服务
1 2 sudo apt-get remove openssh-server sudo apt-get install openssh-server
Ubuntu设置root密码
修改/root/.profile文件
1 2 tty -s && mesg n || true
编辑配置文件/etc/ssh/sshd_config
1 2 3 4 Port 22 #默认即可,如果有端口占用可以自己修改 PasswordAuthentication yes # 允许用户名密码方式登录 PermitRootLogin yes # 允许root用户登录
重启ssh
1 sudo service ssh restart
给 WSL2 设置静态 IP 地址 WSL2 会在启动时做网络适配器的配置,我们需要在启动后重新为其配置网络
1 2 3 4 5 6 # 将 WSL2 的网关设置为 192.168.50.1,并为 WSL2 分配 192.168.50.2 的 IP 地址 # 删除掉 WSL2 已经配置的 IP 地址,然后为其分配 192.168.50.2/24,最后配置路由并指定 DNS Server 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.50.2/24 broadcast 192.168.50.255 dev eth0 sudo ip route add 0.0.0.0/0 via 192.168.50.1 dev eth0 sudo echo nameserver 192.168.50.1 > /etc/resolv.conf
对 WSL2 使用的 Internal Virtual Switch 进行配置,PowerShell
1 2 3 4 5 Get-NetAdapter 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm :$False New-NetIPAddress -IPAddress 192.168 .50.1 -PrefixLength 24 -InterfaceAlias 'vEthernet (WSL)' Get-NetNat | ? Name -Eq WSLNat | Remove-NetNat -Confirm :$False New-NetNat -Name WSLNat -InternalIPInterfaceAddressPrefix 192.168 .50.0 /24 ;
一键配置 管理员运行.bat或.cmd
1 2 3 4 5 6 wsl -d Ubuntu-20 .04 -u root ip addr del $(ip addr show eth0 ^| grep 'inet\b' ^| awk '{print $2 }' ^| head -n 1 ) dev eth0 wsl -d Ubuntu-20 .04 -u root ip addr add 192 .168 .50 .2 /24 broadcast 192 .168 .50 .255 dev eth0 wsl -d Ubuntu-20 .04 -u root ip route add 0 .0 .0 .0 /0 via 192 .168 .50 .1 dev eth0 wsl -d Ubuntu-20 .04 -u root echo nameserver 192 .168 .50 .1 ^> /etc/resolv.conf powershell -c "Get-NetAdapter 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm:$False; New-NetIPAddress -IPAddress 192 .168 .50 .1 -PrefixLength 24 -InterfaceAlias 'vEthernet (WSL)'; Get-NetNat | ? Name -Eq WSLNat | Remove-NetNat -Confirm:$False; New-NetNat -Name WSLNat -InternalIPInterfaceAddressPrefix 192 .168 .50 .0 /24 ;" wsl sudo service ssh restart
问题 开启SSHD服务失败 现象 sshd: no hostkeys available — exiting 解决
1 2 3 ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key # 如果上述两个文件存在,仍然出现这个错误,那么chmod 600 上述两个文件