解决CentOS7使用静态IP地址不能上网问题

参考网址:https://blog.csdn.net/woailyoo0000/article/details/79506999

最近在VMware虚拟机里玩Centos,装好后发现上不了网。经过一番艰辛的折腾,终于找到出解决问题的方法了。最终的效果是无论是ping内网IP还是ping外网ip,都能正常ping通。

step1: 配置静态IP地址

1.cd /etc/sysconfig/network-scripts

2.vi ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="2ffdc083-6d7c-441d-a5f6-313c80b9dd74"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.158.130
NETMASK=255.255.255.0
GATEWAY=192.168.158.2
DNS=8.8.8.8
ZONE=public
NM_CONTROLLED=no

step2: 不适用网络管理器托管

  1. nmcli dev status --查看受网络管理器托管的设备

发现 ens33 也就是我们编辑的网卡是受托管的.

  1. vi ifcfg-ens33

上图网关单词写错,应该:GATEWAY

在最后添加NM_CONTROLLED = no ,取消托管.

step3 .设置VM虚拟网络

image-20210314233738052
image-20210314233752335

DNS设置默认即可.

step4 . 设置路由

至此,CentOS7可以Ping通网关,但Ping不过外面的主机.也就相当于二层路由器.这是因为CentOS7没有默认路由的原因.

  1. route -n --检查路由

  2. vim /etc/resolv.conf --添加DNS

Generated by NetworkManager

search localdomain
nameserver 114.114.114.114

  1. 添加永久静态路由

vi /etc/sysconfig/network-scripts/route-ens33(没有该文件就新建一个)

192.168.158.0/24 via 192.168.158.2
0.0.0.0/0 via 192.168.158.2

懂网络的人都知道:虚拟机网关192.168.158.2是电脑虚拟出来的,能ping通网关(192.168.158.2)就相当于能与真实电脑通讯,理论上真实电脑能上网,虚拟机就能上网。

那为什么虚拟机不能上网呢?应为虚拟机只是电脑,他接收到网络数据包不知道该发给谁,这时咱门添加路由,指定发给网关(192.168.158.2),也就是发给外面的真实电脑,真实电脑会通过自己的外网解析,把外网数据返回来。很简单吧

  1. service network restart --重启网卡,使之生效

step5 . 大功告成

image-20210314234108449

step6 . 若本地连不上虚拟机,则需要设置本地 windows物理机的网卡

image-20210314234311552

虚拟机设置


image-20210314234342492

你可能感兴趣的:(解决CentOS7使用静态IP地址不能上网问题)