背景
有客户遇到了个问题我帮其远程解决,我把大概的解决思路记录一下。
客户先遇到了个问题:
vmware中CentOS7因为使用NAT模式无法上网,所以一直使用桥接模式上网。
使用桥接的模式虽然可以上网但是虚拟机的ip地址老是会变。这样他使用主机连接虚拟机的oracle服务老是要切换ip让其非常的苦恼。所以他就想解决掉NAT无法上网的问题。
他参照下面的文章成功解决了,NAT上网的问题了。
《vmware centos7配置虚拟机NAT连接上网详细教程》
https://blog.csdn.net/qq_17011423/article/details/82947417
现在新的问题来了:
现在虚拟机上网没有问题,虚拟机ping 主机ip也是通的,但是主机ping虚拟机的ip不通。
刚接触这个问题有一点懵不知道如何下手,解决这个问题我竟然花了1小时51分钟。所以我一定要记录一下。过程我就不详细写了。
问题的原因
客户参照:
《vmware centos7配置虚拟机NAT连接上网详细教程》
https://blog.csdn.net/qq_17011423/article/details/82947417
处理的不当,他把虚拟机的ip固定设置成:192.168.1.102
这个乍一看好像没什么大问题,因为当论虚拟机它也能正常上网,我一开始根本没有怀疑这点,我在怀疑防火墙之类的其他的问题了。
为啥这样设置是错的呢?听我细细道来!
错误一
我查了一下主机的ip,截图如下:
发现没?主机ip是192.168.1.102
,虚拟机ip强制设置成192.168.1.102
。这两台机器能通才怪。
疑问🤔️:
虚拟机ip强制设置成192.168.1.102
,按理来说应该是一个错误设置,为什么此时虚拟机还能正常上网呢?这点我目前还是疑惑不解。
错误二
我查看了一下vmware的虚拟网络编辑器中的NAT模式的DHCP设置,这里有明确的ip段
- 超始ip地址:192.168.225.128
- 结束ip地址:192.168.225.254
也就是说如果ip设置固定的,也应该在这个ip段范围内的。虚拟机ip强制设置成192.168.1.102
肯定是不对的。
疑问🤔️:
虚拟机ip强制设置成192.168.1.102
,按理来说应该是一个错误设置,为什么此时虚拟机还能正常上网呢?这点我目前还是疑惑不解。
解决办法
虚拟机ip强制设置成192.168.1.102
修改成自动获取ip,问题得到解决。
客户问:这里设置成自动获取以后ip不会变吗?
答:基本不会变,虚拟机中的ip虽然是自动获取的,因为虚拟机的数量相对有限,ip资源非常充裕,所以自动获取ip也基本不会变。
当前如果真的遇到了ip地址变了的情况,也可以设置固定ip,但是有一个要求,ip地址要在下面ip地址范围内。
- 超始ip地址:192.168.225.128
- 结束ip地址:192.168.225.254
记录
最终解决:设置固定的ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
设置DNS
/etc/resolv.conf
#若此文件为空,则
rm /etc/resolv.conf
echo “nameserver 8.8.8.8” >> /etc/resolv.conf
以上设置完成后,需要重启网络服务方可生效!
systemctl restart network.service
总结
知道问题的原因后,其他是很好解决的。但是最开始客户只告诉我他的主机连接不上虚拟机,其他情报都是我一点点问出来的。对于这种不懂原理,胡乱设置的,问题解决起来还是有一些难度的。
还是有一事不明白,为什么ip设置的错的这么离谱,虚拟机还能正常上网呢?求大佬解惑。