0 前言
网上有好多VMware的网络配置教程,各个方法都不一样,新人往往云里雾里,本人亦深受其害,偶尔成功一次,也不明白原理,下一次照样犯错,故写博客记录。
1 想要达成的效果
主机和虚拟机之间,可以互相ping通,若主机可以上网,则虚拟机亦可以正常连接网络。
注:与当前主机处于同一个局域网的其他主机是不能访问当前主机上的虚拟机的。
2 准备工作
2.1 开启ping回应
win10默认是不开启ping回应的,要设置为开启状态。
步骤:控制面板-Windows Defender防火墙-左侧的 高级设置-入站规则,在列表中搜索:
在这两项上,右键-启用规则,之后一路确定。
2.2 主机IP
在主机上,win+r,打开运行,输入cmd,打开命令行,输入ipconfig,显示如下:
我主机是笔记本,连接的是无线网,因此选择无线局域网适配器,如果连接的是有线网,就选择以太网适配器。
记住主机IP地址,以我为例,是 192.168.31.134。
3 安装VMware,安装操作系统
网上有现成的安装教程,自己搜索就是,也可以参照我自己写的:
VMware虚拟机安装教程zll2.gitlab.io/posts/3128323722/
4 原理
在实现之前,得先说一下NAT的原理,从根本上理解。
图1 NAT-网络拓扑结构图
先记住这个拓扑图,后面的设置都是按照这个图来的。
虚拟机的IP都是由虚拟交换机决定的,由虚拟NAT负责连接外网,而虚拟网卡VMware Network Adapter Vmnet8只是负责主机与虚拟机之间的通信。
5 NAT网络配置
打开VMware Workstation Pro,选择虚拟机的网络连接类型,新建虚拟机,一般默认就是NAT模式,之后确定,返回主页面:
选择编辑-虚拟网络编辑器,单击更改设置:
按照箭头指向,勾选对应内容:
注意下面的子网IP,前两部分必须和主机IP的前两部分一样,即192.168,第三部分得不一样,不能是31,这里填80,第四部分补0。子网掩码都是255.255.255.0,填写完毕后,点击 NAT设置:
填入网关IP,前三部分,即网段必须是192.168.80,和前面保持一致,第四部分随意,这里填2,网关IP整体就是192.168.80.2,图1中的虚拟交换机IP就是这里的网关IP,点击确定后返回,再点击 DHCP设置:
注意起始和结束的IP网段也必须是192.168.80,这个范围不要包括网关IP:192.168.80.2,图1中的虚拟DHCP服务器设置完成,之后一路确定,NAT网络设置结束。(如果NAT模式下,有很多台虚拟机,就把这个范围扩大)
6 测试
开启虚拟机,Ubuntu默认的IP设置是自动获取,不需要更改,当然设置静态IP也是可以的,参照图1即可。此时Ubuntu是可以正常连接外网的。
接下来测试图1中的虚拟网卡作用,在主机上,win+q,打开搜索框,输入 网络连接,回车,打开网络连接面板:
这里的VMware Network Adapter Vmnet8就是图1中的虚拟网卡,另外三个分别是主机的无线网卡、主机的有线网卡、VMware仅主机模式的虚拟网卡。右击Vmnet8,选择属性:
选择IPV4,点击属性:
可以选择自动获取,也可以手动设置,注意,手动的话,IP不能和虚拟网关IP一样,即不能是192.168.80.2,之后一路确定,设置完成。
在Ubuntu终端和win10命令行中,互相ping各自的IP地址,然后在虚拟网卡Vmnet8,右键-禁用,在互相ping各自的IP地址,体会前后的区别。
7 总结
自己动手设置几次,配合图1的拓扑结构图,真正的理解了。
VMware Network Adapter Vmnet8的作用是联通主机与虚拟机,有心的话,当在主机上ssh虚拟机时,会发现虚拟机上显示的IP来源(W命令),就是VMware Network Adapter Vmnet8的地址,而不是主机上的(有线网卡、无线网卡)地址。
8 问题
遇到的其余问题:
1 有的教程提到,需要把主机的正在使用的网卡,与VMnet8共享,经过测试,在NAT模式下,这是多余的。
2 有时候,本来可以互相ping通的,突然间主机ping不通虚拟机了,而虚拟机可以正常联网,可以ping主机,这时候,问题就出在 VMware Network Adapter Vmnet8了,默认是自动获取IP地址,右键禁用后,再启用,一般就可以解决问题。如果还不行的话,就设置 VMware Network Adapter Vmnet8的静态IP,与虚拟机同网段,问题就解决了。
注1:只要虚拟机可以正常上外网,VMware和虚拟机的网络设置就没有问题。
注2:
在实际情况中,第二个问题极其常见,经常是虚拟机一段时间不用了,再打开,主机就ping不通虚拟机,也ssh连接不上,这种情况99%都是VMware Network Adapter Vmnet8的IP和虚拟机IP不在同一个网段导致的;
VMware Network Adapter Vmnet8的IP如果没有设置静态IP的话,其IP地址随着主机开关机是会变化的。当虚拟机启动后,禁用,然后在启用,就会自动设置同网段IP了。
注3:
如果设置VMware Network Adapter Vmnet8的静态IP,注意一下网段,要是和主机网卡的IP段一样,比如无线,会导致网络连接不上。(本人教训啊,手机连接wifi没有问题,笔记本就是连不上,折腾了好长时间,才想起来设置的静态IP,冲突)
9 参考
https://blog.csdn.net/w_j_r/article/details/81290995
https://www.cnblogs.com/linjiaxin/p/6476480.html
10 更新:如何设置静态IP?
Ubuntu Server下,18.04和20.04:
sudo vi /etc/netplan/00-installer-config.yaml
# 原来的是自动获取IP的,可以备份一下,不备份也可以
# 清空数据
:%d
# 写入下面内容
network:
version: 2
renderer: networkd
ethernets:
ens33: #配置的网卡名称,自己根据情况修改
dhcp4: no #dhcp4关闭
dhcp6: no #dhcp6关闭
addresses: [192.168.80.6/24] #设置本机IP及掩码,注意网段,80,必须和前面一样
gateway4: 192.168.80.2 #设置网关,这个实际上就是那个虚拟交换机的
nameservers:
addresses: [192.168.80.2] #设置DNS,和gateway4设置的一样即可,不需要设为8.8.8.8
# 保存退出
:wq
# 启用
sudo netplan apply
# 看一下效果
ifconfig
ping 1.cn
Ubuntu桌面版的静态IP设置,直接在网络设置那块改就行了,子网掩码是255.255.255.0,和ip/24的效果是一样的。
转载地址:VMware虚拟机网络配置-NAT篇VMware虚拟机网络配置-NAT篇 - 知乎 (zhihu.com)