致力于解决克隆机导致centos7 无法访问网络问题-主要对于伪分布/全分布 针对于伪分布解决网络状态正常,但ping不通外网

以思路引导问题解决

温馨提示(一定要给自己的linux 系统添加快照,避免出现意外问题)!

温馨提示(仔细查看错误日志systemctl status network.servicejournalctl -xe,寻求更好的解决办法)

问题原因在转移复制虚拟机文件的时候,没有采用压缩包的方式而是直接采用文件移动(此处建议打压缩包并复制的方式避免大文件的转移失败!!)的方式导致在复制的过程中出现 一些 问题,不得已将原来的虚拟机删除掉,并克隆一个。

克隆之后在转移其他机器上出现了网络问题,并参照以下两种方案进行了完美解决:

方案一:centos7 网络混乱终针对于win11 终极有效解决方案(上) 问题解决了吗?-Object教程 (dlslearn.com)

方案二:centos7 网络混乱终针对于win11 终极有效解决方案(下) centos网络环境解决5种解决方案-Object教程 (dlslearn.com)

温馨提示(在做一下操作时,建议给系统添加快照)!

解决之后:出现的问题是(在centos7 内部可以ping通自己,外部ping不了,xshell 也连接不上,在虚拟机内部ping不通外网,竟然网关也ping不通),

一.初步判断是网关问题:

(1)参考文章:centos下ping不通网关怎么办-CentOS-PHP中文网

思路如下:

1、关闭网络端口ens33,然后重新打开

[root@ctos110 ~]# ifdown ens33  #关闭网络

Device ‘ens33’ successfully disconnected.

[root@ctos110 ~]# ifup ens33  #启动网络

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

2、然后重新载入网卡程序,如下:

/etc/init.d/network reload

完成!

(他的思想类似于重置净化网络环境,对于我并不是这个问题,然而结果并没有什么卵用)

(2) 参考文章:(94条消息) 关闭NetworkManager服务_甘露子的博客-CSDN博客_关闭networkmanager服务

基于问题描述:Reloading network configuration (via systemctl): Failed to reload network.service: Job type reload is not applicable for unit network.service. See system logs and ‘systemctl status network.service’ for details.

神奇的是竟然没有让查看journalctl -xe!! ,则问题一定不在那!!

在CentOS系统上,目前有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去。

解决方法:
目前在CentOS上的NetworkManager版本比较低,而且比较适合有桌面环境的系统,所以服务器上保留network服务即可,将NetworkManager关闭,并且禁止开机启动。

执行如下命令:

systemctl stop NetworkManager

systemctl disable NetworkManager

然而问题不在这(因为我现在的 network 是正常工作的,连警告信息都不存在! !),没有解决!

(3)参考文章:CentOS 6/7克隆主机网卡无法启动解决_Linux教程_Linux公社-Linux系统门户网站 (linuxidc.com)

思路如下:

7.3的版本 解决的办法(由于CentOS7中没有70-persistent-net.rules这个文件,复制出来的虚拟机(vmware)需要修改mac地址),就是修改       mac地址。

接下来就剩下修改ifcfg-XXX文件了,只修改HWADDR就可以了。接下来执行service network restart 就正常了。

systemctl enable NetworkManager-wait-online.service

对于单机而言这种方式是有效的!, 伪分布或者完全分布就不行了!

进入网络配置文件,执行命令 vi /etc/sysconfig/network-script/ifcfg-ens33. 发现对比 本机静态ip 以及 对比 vmware 虚拟网络设置里面的配置信息保持一致,都是没有问题的,才排除时网关因素造成的!

 

二,思路转移到因为克隆才导致访问网络问题,(经过连续反复克隆得到的部分经验 ,刚开始只知道,一旦克隆后,这个克隆机机访问网络失效!!!)

(4)参考文章:(94条消息) VMware克隆虚拟机(CentOS)以及克隆后有关的网络配置_BOUNC3的博客-CSDN博客_克隆虚拟机网络

思路如下:

在克隆虚拟机之前,我们需要了解以下文件:

1、/etc/udev/rules.d/70-persistent-net.rules

这是网卡有关信息的配置文件,我们可以先查看一下master的网卡信息(当然也可以用ifconfig命令查看):

要注意的是网卡名称以及MAC地址。MAC地址(产品出产后Mac地址就固定了)用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并都会有一个唯一的MAC地址。

2、/etc/hosts

这是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。

master机的/etc/hosts:

127.0.0.1即本机,本机有localhost,localhost.localdomain等别名。这么做的好处就是我们不用刻意地去记ip地址,在通信的时候可以直接使用别名代替ip地址。

3、/etc/sysconfig/network

此文件是为计算机起的一个名字hostname,是计算机的一个标识。还可以配置是否开启网络功能。

master机的hostname为master1:

接下来,让我们开始克隆吧。

1、先将master机关机,然后在管理中选择克隆

2、注意创建完整克隆

下一步……

3、取名为slave1,克隆成功

接下来:

我们先查看一下slave机的网卡信息

可见多了一块网卡eth0,在通过ifconfig命令查看网络信息:

再来到/etc/sysconfig/networking-scripts目录下查看所有文件:

有趣的是,我们并找不到”ifcfg-eth1″这个文件。也就是说我们无法去管理eth1这块网卡,当克隆机多起来了,也就不好解决IP资源分配问题了。

 

所以,我们需要手动地为”eth1″创建配置文件;并且现在slave机里有两块网卡,我们还需要删掉master机的网卡。

 

4、修改/etc/udev/rules.d/70-persistent-net.rules文件

5、修改/etc/sysconfig/networking-scripts/ifcfg-eth0文件

 

6、然后重启网络服务会失败,重启下机子就好了

7、为slave机更名,修改/etc/sysconfig/network文件

8、在master机和slave机中互相添加对方的IP信息,方便通信,修改/etc/hosts文件

slave机:

master机:

9、测试

master机ping通slave机

slave机ping通master机

10、结束,这种方式对单机或许有效,但对于伪分布,竟然不行

三、思路转向 –>CentOS7克隆虚拟机后无法上网问题解决方案(此时已经发现的问题的根本所在)

先了解 uuid 是什么东西!!,就是唯一区分标识符

一、简介

UUID含义是通用唯一识别码,这是一个软件建构的标准,也是被开源软件基金会的组织应用在分布式计算环境领域的一部分。

二、作用

UUID 的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。

三、组成

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

如果你的网络环境后续出现问题尝试对每一台机器,获取uuid并重新配置到ifcfg-ens33 里面去!! 

执行如下命令:

uuidgen + 主机名

对于a ,b 两台虚拟机 –> 把b 作为a 的克隆机, (如果 a的网络正常访问,则b的网络访问不了 –> 将a关机,对b调试网络(仅仅是使用命令 uuidgen + 主机名 {获取主机 uuid}, 在通过 ip addr 查看mac 地址,重新配置 ifcfg-ens33 ,并重启网络,发现竟然可以访问网络了!!))

反之:

对于a ,b 两台虚拟机 –> 把a 作为b 的克隆机, (如果 b的网络正常访问,则a的网络访问不了 –> 将a关机,对b调试网络(仅仅是使用命令 uuidgen + 主机名 {获取主机 uuid}, 在通过 ip addr 查看mac 地址,重新配置 ifcfg-ens33 ,并重启网络,发现竟然也可以访问网络了!!))

因为关机的那台机器在关机之前是正常访问网络的,现在经调试网络的这台也是可以访问网络的,那是不是到此结束了呢?并没有,一旦关机的那台开机之后,发现竟然不能访问网络了??

最终的问题就是,两台机器不能同时开机,只要同时开机,就有一台机器,不能访问网络

所以最终问题的结论是 物理 地址在克隆的时候 冲突了(即重复了!!),经验证果然如此(一般的开讲,vmware 在克隆后会分配新的 mac,我的这有点小问题!!)

继续对比几台工作正常的完全分布式,发现每台的mac 地址都是不重复的!!

接下来,更改 mac 地址!

一定要保证每台机器的mac 地址是不一样的,这时候即便uuid 是一致的,一般不会影响网络使用,如果影响了,就单独配置uuid

具体步骤如下:

1.虚拟机右键->设置->网络适配器->高级-> mac地址-> 点击生成->确定即可

2.将新生成的mac地址重新配置到ifcfg 里面去,重启网络,发现不仅可以ping通 网关,也可以ping 通外网

3.结束

© 版权声明
THE END
喜欢就支持以下吧
点赞0 分享
图片正在生成中,请稍后...