参考网址: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: 不适用网络管理器托管
- nmcli dev status --查看受网络管理器托管的设备
发现 ens33 也就是我们编辑的网卡是受托管的.
- vi ifcfg-ens33
上图网关单词写错,应该:GATEWAY
在最后添加NM_CONTROLLED = no ,取消托管.
step3 .设置VM虚拟网络
image-20210314233738052
image-20210314233752335
DNS设置默认即可.
step4 . 设置路由
至此,CentOS7可以Ping通网关,但Ping不过外面的主机.也就相当于二层路由器.这是因为CentOS7没有默认路由的原因.
route -n --检查路由
vim /etc/resolv.conf --添加DNS
Generated by NetworkManager
search localdomain
nameserver 114.114.114.114
- 添加永久静态路由
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),也就是发给外面的真实电脑,真实电脑会通过自己的外网解析,把外网数据返回来。很简单吧
- service network restart --重启网卡,使之生效
step5 . 大功告成
image-20210314234108449
step6 . 若本地连不上虚拟机,则需要设置本地 windows物理机的网卡
image-20210314234311552
虚拟机设置
image-20210314234342492