Hyper-V中Linux虚拟机无法和宿主机连接

发布时间 2023-03-22 23:43:48作者: 红魔方_D

在关闭Hyper-V虚拟机的情况下,选择Hyper-V管理界面中的“虚拟交换机管理器”。

创建一个连接方式为“内部网络”的虚拟交换机

 

 

 此时,在控制面板-网络和Internet-网络和共享中心中,可以看到如下:

 

 

 这就是刚刚创建出来的虚拟交换机

虽然有了虚拟设备,但是此时虚拟机仍不能正常链接

在网络与共享中心下面点击现有的Internet链接:

切换到“共享”标签下,勾选“允许其他网络用户通过此计算机的Internet连接来连接”并在下方“家庭网络连接”中选择刚刚创建的虚拟交换机——vEthernet (虚拟内网),点击“确定”。

 

 

 此时,宿主机Windows在管理员模式运行的命令提示符(在屏幕左下角右键,选择“命令提示符 管理员”)中输入“route print”后会在IPv4路由表中找到关于192.168.137.1的信息:

 

 

 

先修改宿主机Windows的网络连接,修改虚拟交换机“虚拟内网”的ip和子网掩码(注意这里的ip必须是网关,否则宿主机可以ping虚拟机,但是虚拟机无法ping到宿主机,且xshell连接不上虚拟机)

 

 

 接下来,进入到Hyper-V虚拟机设置界面,在“硬件”下的“网络适配器”中,设置“虚拟交换机”为刚刚设置好的Hyper-V 虚拟内网虚拟交换机,点击“确定”。

 

 

 然后启动Linux,修改虚拟机网络设置

定位到network-scripts目录,找到并编辑自己的网卡(一般叫ifcfg-eth0)

cd /etc/sysconfig/network-scripts/
sudo vi ifcfg-eth0

 

 主要是ip、网关要和Windows的“IPv4路由表中找到关于192.168.137.1的信息”一致,保证是在同一个网段上

重启网络服务

sudo service network restart
ip a #查看IP

 

 

可以看到修改的配置已经生效

到这一步为止,虚拟机已经使用InternalNat网卡(192.168.137.1)设置了自己的IP(192.168.137.99)

在宿主机上,使用 ping 192.168.137.99,发现能ping通

 

 虚拟机也可以ping同宿主机

 

 用Xshell连接虚拟机