admin管理员组

文章数量:1632044

问题描述

提示: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; 其他端口同理

本文标签: 宿主为例虚拟机主机网络