解决CentOS7虚拟机无法联网的问题
- 一、问题背景
- 二、解决方案
- 1.进入network-scripts文件夹。
- 2.修改网卡配置文件
- 3.重启网卡
- 4.配置DNS服务器
- 5.测试连接
- 三、其他问题
- 1.网络可用,虚拟机和主机可以相互ping通,但是无法通过ssh进行连接
- 1.1 网络原因排查
- 1.2 防火墙问题排查
- 1.3 ssh服务排查
一、问题背景
在VMWare Workstation上安装centos7虚拟机后无法联网。虚拟机的软件环境如下
- 虚拟机:VMware® Workstation 15 Pro
- CentOS7:CentOS-7-x86_64-DVD-1810
- 系统安装设置:网络适配器模式选择NAT,系统安装环境选择基础设施服务器
- 虚拟网络编辑器:
二、解决方案
1.进入network-scripts文件夹。
$ cd /etc/sysconfig/network-scripts/
由于每台虚拟机的的网卡配置文件名可能不同,所以需要先查看一下
$ ls -A
可以看到我的配置文件为ifcfg-ens33
2.修改网卡配置文件
$ vi ifcfg-ens33
如果在虚拟机网络编辑器处使用了本地DHCP服务器则只需要将ONBOOT=NO
改成ONBOOT=YES
如果采用静态IP的话则需要进行额外的配置,我的配置如下:
IPADDR=192.168.17.2
NETMASK=255.255.255.0
GATEWAY=192.168.17.254
注意IPADDR即为本系统的IPV4地址,必须是在虚拟机网络编辑器的NAT模式规定的子网内,NETMASK子网掩码也必须和NAT模式的子网掩码相同,GATEWAY网关地址也必须和配置相同。
我使用的虚拟机子网IP为:192.168.17.0,子网掩码为255.255.255.0,网关为192.168.17.254,这意味着我本机的IP地址可以选择192.168.17.2——192.168.17.253。不使用192.168.17.1的原因在下文其他问题中进行解释。
3.重启网卡
$ service network restart
4.配置DNS服务器
由于这里我使用了静态IP,不会自动去解析域名,也就是会出现如下情况。
所以需要去手动配置DNS地址
$ vi /etc/resolv.conf
添加DNS地址114.114.114.114,该地址为国内移动、电信和联通通用的DNS
nameserver 114.114.114.114
5.测试连接
$ ping www.baidu.com
$ yum -y install python3
成功,说明此时网络已经可用
三、其他问题
1.网络可用,虚拟机和主机可以相互ping通,但是无法通过ssh进行连接
1.1 网络原因排查
在主机上查看ip端口占用情况
$ ipconfig /all
可以看到我这里不可选用192.168.17.1的原因是因为该地址已经被为NAT模式提供支持的网络适配器给占用了
如果我们CentOS7的ip地址也使用192.168.17.1的话则无法进行ssh连接。
如果我们将虚拟网络编辑器中NAT模式的网关设为了该地址也会导致虚拟机无法联网的问题,所以在我这默认配置中网关地址为192.168.17.2,后来我自行改成了192.168.17.254
解决了网络上的问题,还有可能是由于防火墙端口未开放或ssh未正确配置的原因
1.2 防火墙问题排查
CentOS7默认使用的firewall防火墙,我们可以选择开放22端口或是直接关闭防火墙来解决问题
查看防火墙开放端口
$ firewall-cmd --zone=public --list-ports
开启22端口
$ firewall-cmd --zone=public --add-port=22/tcp --permanent
使配置生效
$ firewall-cmd --reload
或者直接关闭防火墙
$ service firewalld stop
1.3 ssh服务排查
检查是否已安装ssh服务
$ yum list installed|grep ssh
# 未安装进行安装
$ yum -y install ssh
# 启动服务
$ service sshd start
查看端口是否开放
$ netstat -tlnp|grep ssh
检查ssh配置
$ vi /etc/ssh/sshd_config
查看端口号和监听地址前的#是否去除
查看远程登录选项前的#是否去除
查看是否使用用户名密码作为连接验证前的#是否去除
最后重启ssh服务,基本上问题就能得到解决了
$ service sshd restart