以思路引导问题解决
温馨提示(一定要给自己的linux 系统添加快照,避免出现意外问题)!
温馨提示(仔细查看错误日志systemctl status network.service 和 journalctl -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.结束