![cover](https://img-home.csdnimg.cn/images/20230309035550.png)
虚拟机在nat模式下无法连接网络
主机网络可以正常ping通虚拟机的网络,但是虚拟机无法ping通主机且无法访问外网
问题导入
在vmware下使用虚拟机由于某些原因设置了静态IP但是在后续的使用发现无法创建新的ssh连接(之前建立过连接并保存了密钥的仍可连接),同时发现了主机网络可以正常ping通虚拟机的网络,但是虚拟机无法ping通主机且无法访问外网的现象。
问题解决
首先检查了主机网络的服务是否正常,因为之前曾遇到过虚拟机无法访问外网的情况,检查结果一切正常。
![](https://i-blog.csdnimg.cn/blog_migrate/b9027d20fd82639b0c3587752410fa19.png)
网上查到可能是DNS的原因于是向配置文件添加DNS服务器的ip,需要注意的是Ubuntu18.04之后配置文件的位置与之前的版本不太一样,目标文件为/etc/netplan/00-installer-config.yaml(文件名可能会有一些差异),内容如下:
network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.91.140/24]
gateway4: 192.168.91.2
nameservers:
addresses: [8.8.8.8,114.114.114.114]
version: 2
修改之后依然无果
检查了虚拟网卡的配置,发现了虚拟网卡启用了DHCP,于是尝试更改了设置,操作流程为:编辑 -> 虚拟网络编辑器 -> VMnet8 -> 更改设置 -> 取消使用DHCP服务
![](https://i-blog.csdnimg.cn/blog_migrate/57a9bc3600c3593948c74c499fa28e32.png)
完成上述操作后,使用虚拟机ping主机可以正常使用
后续问题
NAT是网络地址转换,从理论上来讲NAT网络内的局域网络无法访问其他NAT网络的局域网,且无法被公网访问,只可访问公网。在查阅了一些资料后了解到物理机可以访问虚拟机及其所在的局域网,主机所在局域网的其他物理机不能访问虚拟机局域网,但是虚拟机可以访问主机所在局域网的任意主机。
由此得出在使用NAT模式下,虚拟机将主机所在网络是为公网。与此同时抓取主机向虚拟机发送的数据包.
![](https://i-blog.csdnimg.cn/blog_migrate/e73f65134756167b505d728e1ca7c25a.png)
其中192.168.91.1为虚拟网卡的ip地址,192.168.91.140是虚拟机的ip,由此证实主机可以连通虚拟机是因为数据通过虚拟网卡进行传输。
更多推荐
所有评论(0)