解决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,系统安装环境选择基础设施服务器

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos_02

  • 虚拟网络编辑器:

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos_03

二、解决方案

1.进入network-scripts文件夹。
$ cd /etc/sysconfig/network-scripts/

由于每台虚拟机的的网卡配置文件名可能不同,所以需要先查看一下

$ ls -A

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_NAT_04

可以看到我的配置文件为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网关地址也必须和配置相同。

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos7虚拟机无法与xftp相连_05

我使用的虚拟机子网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,不会自动去解析域名,也就是会出现如下情况。

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_网络_06

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos7虚拟机无法与xftp相连_07

所以需要去手动配置DNS地址

$ vi /etc/resolv.conf

添加DNS地址114.114.114.114,该地址为国内移动、电信和联通通用的DNS

nameserver 114.114.114.114
5.测试连接
$ ping www.baidu.com

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_网络_08

$ yum -y install python3

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_linux_09

成功,说明此时网络已经可用

三、其他问题

1.网络可用,虚拟机和主机可以相互ping通,但是无法通过ssh进行连接
1.1 网络原因排查

在主机上查看ip端口占用情况

$ ipconfig /all

可以看到我这里不可选用192.168.17.1的原因是因为该地址已经被为NAT模式提供支持的网络适配器给占用了

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_NAT_10

如果我们CentOS7的ip地址也使用192.168.17.1的话则无法进行ssh连接。

如果我们将虚拟网络编辑器中NAT模式的网关设为了该地址也会导致虚拟机无法联网的问题,所以在我这默认配置中网关地址为192.168.17.2,后来我自行改成了192.168.17.254

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_网络_11

解决了网络上的问题,还有可能是由于防火墙端口未开放或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

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_NAT_12

查看端口是否开放

$ netstat -tlnp|grep ssh

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_网络_13

检查ssh配置

$ vi /etc/ssh/sshd_config

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos7虚拟机无法与xftp相连_14

查看端口号和监听地址前的#是否去除

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos_15

查看远程登录选项前的#是否去除

centos7虚拟机无法与xftp相连 虚拟机centos7连不上网_centos7虚拟机无法与xftp相连_16

查看是否使用用户名密码作为连接验证前的#是否去除

最后重启ssh服务,基本上问题就能得到解决了

$ service sshd restart