Windows11 开启WSL2 和局域网访问
安装WSL2
参考这篇文章:
https://zhuanlan.zhihu.com/p/475462241
https://www.sysgeek.cn/windows-11-install-wsl2/
WSL2开启ssh
vim /etc/ssh/sshd_config
修改如下:
# Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
PasswordAuthentication yes
重启sshd:sudo service ssh restart
。
看到重启成功即可,使用ssh登录WSL2。
开机启动
windows11 + WSL2,整个启动过程如下:
Win11开机 >> Win11开机脚本 >> WSL子系统脚本 >> 启动Linux程序
在ubuntu下添加开机启动
为WSL2 开启systemd,那么可以使用systemctl service ssh start
,这种服务启动的方式了。具体可参考下篇中的开启systemd
部分。
常驻后台运行
正常情况,当关闭WSL的console时,实例会自动关闭。这对于我们想长时间把WSL ubuntu当作一台远程vm主机来说,显然是不合适的,需要长时间打开一个终端窗口。可以采用以下方式,在开机时打开一个实例。0表示,它会一直等待输入,而不会休眠。
set ws=wscript.CreateObject("wscript.shell")
ws.run "wsl -d Ubuntu-22.04", 0
移动到Windows开机启动项
Windows 下 Win+R 输入 shell:startup
,打开文件夹,把linux-wsl.vbs
,拖入到文件夹中。
故障排除办法
如果出现运行不成功,多半是权限问题,可以在cmd窗口运行如下启动命令
wsl -d Ubuntu-22.04
局域网访问Windows11 下的WSL2
WSL 2 发布了最新版本 2.0.0,这个版本开始,自带支持新的镜像网络,WSL2可以使用宿主机的IP,开启的端口直接打通到宿主机。这样可以通过宿主机IP + Port访问WSL2 虚拟机里的服务。
从而不用折腾桥接网络下,在windows上端口转发,开启防火墙等复杂操作。而且,ip经常跳的问题,导致没法用。绑定localhost,也要解决几个奇怪的报错。
现在有了镜像网络,前几项的折腾就可以省去了。
更新 WSL:wsl --update --pre-release
[experimental]
networkingMode=mirrored # 镜像网络模式
dnsTunneling=true
firewall=true
autoProxy=true
重启wsl2,就可以使用宿主机windows11 的ip,通过ssh,来访问内部虚拟机WSL2 ubuntu了。