导读
小编之前使用过 VMware workstation 工具搭建 Centos 7 版本的虚拟机集群,各项功能都正常,用完了也就清除了(节约本地空间)。因为最近学习大数据,需要从新安装虚拟机,结果发现并不如第一次那么顺利。所以,借助这个机会我查阅了很多资料,准备将这个常见的网络问题攻克一下,为大家的开发提供便利。
正文
经过我系统的学习和实践,针对虚拟机的网络问题,包括但不限于:虚拟机无法联网,本地无法ping通虚拟机IP,本地xshell无法连接虚拟机等问题,我总结了下面4种可能的情况,可以按照下面的顺序进行排查和配置。
情况一:确保虚拟机设置了静态IP
首先,要在虚拟机的网络设置里面对网络进行设置一下,不能使用默认的动态IP,否则每次重启服务器,xshell都要重新连接一次。
设置虚拟机IP的时候,也不是随意设置的,要去VM网络设置里面看一看自己的IP属于哪个网段。
第1步:打开虚拟机中的【编辑】 –> 【虚拟网络编辑器】
- 设置NAT模式;
- NAT设置,查看网关IP,对应配置文件里的参数:GATEWAY和DNS1;
如果你足够熟练的话,你会发现:所有的网关IP最后一位都是2,也就是子网IP最后一位变为2就可以了,建议不清楚的还是多动手查一查。
- DHCP设置,查看静态IP可用范围(静态IP要在这个范围内),对应配置文件里的参数:IPADDR;
第2步:配置虚拟机网络
- 在根目录下,使用下面的命令进入网络配置文件;
[root@hadoop200 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 按照如下样例更改网络配置,保存;
第3步:重启网络,查看ip
- 重启网络,让新ip生效;
[root@hadoop200 ~]# service network restart
- 查看ip,如果可以看到设置的ip,说明静态ip配置完成;
[root@hadoop200 ~]# ip addr
情况二:确保虚拟机关闭防火墙
关闭防火墙,是为了可以在外面对虚拟机ip进行访问,后续为了实现集群互联,防火墙都是需要关闭的。
// 关闭防火墙,本次生效
[root@hadoop200 ~]# systemctl stop firewalld
// 关闭防火墙,以后开机不自启
[root@hadoop200 ~]# systemctl disable firewalld
情况三:确保虚拟机开启SSH服务
这个不用多解释了,不管是xshell还是finalshell都需要通过ssh服务连接虚拟机。ssh服务是默认开启的,但是不排除会在这里出现问题的可能,建议检查一下。
[root@hadoop200 ~]# service sshd start
情况四:确保本地VM网络启用
这个经常会被忽略,一般首次安装VM会默认【开启】,但是关机以后可能变成【禁用】。如果是【禁用】状态就会发生像我一样的问题:虚拟机网络正常,但是本地ping不通,导致本地xshell无法访问虚拟机。
- 控制面板 –> 网络和 Internet –> 网络连接,启用VMware网络;
总结
正常安装一台虚拟机,最后都会按照上面4种情况的顺序配置网络。我总结了几种常见的情况,如果遇到,其实可以直接定位问题:
- 虚拟机网络异常,无法 ping 通 www.baidu.com:这种属于情况1,需要将虚拟机网络配置成NAT模式,并设置静态IP;
- 虚拟机网络正常,但是本地无法 ping 通虚拟机:这种情况2-3-4都有可能,可以按顺序排查。ping 不通虚拟机网络,会导致本地xshell无法连接的情况;