问题描述
提示:window11 23H2以后版本,wsl2的Linux虚拟机,可被其他同宿主机网段访问,实现ssh及其他端口访问自由
问题解决:
> 1、升级wsl为wsl2,确认wsl版本为2.0.0以上,如下所示
PS C:\Users\xxxx> wsl --version
WSL 版本: 2.2.4.0//2.0.0版本以上
内核版本: 5.15.153.1-2
WSLg 版本: 1.0.61....
> 2、配置wsl网络为镜像模式,即mirrored,如下所示
在Windows的用户目录创建一个文件,名字叫.wslconfig。名字就叫.wslconfig。然后再里面配置以下命令:
#Settings apply across all Linux distros running on WSL 2[wsl2]
#如果值为 mirrored,则会启用镜像网络模式。 默认或无法识别的字符串会生成 NAT 网络。
networkingMode=mirrored
....
配置好之后一定要在windows powershell执行wsl --shutdown,然后再重新启动WSL2实例。启动完成后你看到的网络配置长下面这样:
提示:wsl虚拟机的网卡IP,与宿主机相同
> 3、实现宿主机localhost访问虚拟机ssh
按如下配置:
提示:使用root登录可能提示密码出错,这是因为Ubuntu默认wsl下root密码为空,需要单独设置;另外OS默认禁用了root登录,需要打开permissionrootlogin
在虚拟机使用如下命令:vim /etc/ssh/sshd_config,将PermitRootLogin 后改为yes,同时删除注释;
> 4、实现宿主机同网段其他主机访问虚拟机ssh
在windows宿主机环境下,使用ssh工具,访问同IP下的22端口,提示connect reset等错误,主要是以为Windows防火墙规则所限,需要单独添加入站规则:防火墙->高级设置->入站规则->新建规则
填写端口号22,下一步命名保存即可;
提示:此时使用ssh工具即可通过宿主机IP+端口号22,访问虚拟机ssh; 其他端口同理
版权归原作者 JuniorPotato 所有, 如有侵权,请联系我们删除。