VMWare克隆或复制Linux虚拟机后更改网络配置之后仍然不能上网

VMWare克隆或复制Linux虚拟机后更改⽹络配置之后仍然不能上⽹
我在ESXI上拷贝了过来的Linux虚拟机,重新配置⽹络之后⽆法上⽹,我⽤ifconfig命令查询了⼀下发现只有eth1和lo设备,没
有eth0。上⽹查了下,到⼀篇相关的⽂章,内容如下:
现象描述:
最近装了虚拟机系统是red hat Enterprise Linux 6,为了以后使⽤⽅便对虚拟机进⾏克隆或复
制。当使⽤克隆后的虚拟机时发现原来在基本系统中的⽹卡eth0到了新系统却没有了,使⽤
李雯ifconfig -a会发现只有eth1。因为基本系统的⽹络相关配置都是基于eth0的,eth1没有⽹络相关
的配置,此时要正常该虚拟机中的⽹络,只有添加eth1的⽹络配置,这样每次都要修改⽹卡配
置在做多Linux系统测试的时候很不⽅便。更进⼀步,如果基于此克隆虚拟机继续克隆或复制新
的虚拟机,⽹卡的标识每⼀次都会⾃动加1(第⼆次克隆会变成eth2),dmesg却显⽰内核只识
别到⽹卡eth0。
原因分析:
很多Linux distribution使⽤udev动态管理设备⽂件,并根据设备的信息对其进⾏持久化命名。例
如在Debian etch中,udev会在系统引导的过程中识别⽹卡,将mac地址和⽹卡名称对应起来记
录在udev的规则脚本中。⽽VMware会⾃动⽣成虚拟机的mac地址。这样,由于基本系统的虚拟
机已经记录了该虚拟机的⽹卡mac地址对应于⽹卡eth0,在克隆出的虚拟机中由于mac地址发⽣
改变,udev会⾃动将该mac对应于⽹卡eth1。以此类推,udev会记录所有已经识别的mac与⽹
卡名的关系,所以每次克隆⽹卡名称会⾃动加1,⽽其实kernel仅仅只识别到⼀张⽹卡,跟⽹卡
名相关的⽹络配置也未发⽣任何变化。网络游戏制作
解决⽅案:
⽹络搜索发现在Debian etch下,udev将mac与⽹卡名称的对应关系保存
在/etc/udev/rules.d/z25_persistent-net.rules中,在克隆出的虚拟机中只要删除跟
NAME="eth0"相关的⾏并重启系统即可。例如在Debian etch中删除如下两⾏:
# PCI device 0x1022:0x2000(pcnet32)SUBSYSTEM=="net",DRIVERS=="?
*",ATTRS{address}=="00:0c:29:4c:46:01",NAME="eth0"
在我的fedora9 下修改/etc/udev/rules.d 下的 70-persistent-net.rules ⽂件删除
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="00:0c:29:ad:06:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
然后把eth1对应的哪⼀⾏的"eth1"修改为"eth0"即可。
另外⼀种⽅法是:把⾥⾯的内容都删除,然后重新启动,系统也会重新发现⽹卡硬件,重新产
⽣该⽂件。
这⾥补充⼀点:
⽤下⾯命令来实现上述第⼆种⽅法也是⼀样的:
cd /etc/udev/rules.d
sudo rm *-net.rules    //删除
sudo reboot
本⼈在⽤上述⽅法操作之后,再⽤ifconfig查看,确实到了eth0设备,但没有ip地址。
接下来⽤ifconfig命令设置ip地址,⼀些相关命令如下:
ifconfig eth0 192.168.0.10 将采⽤默认⼦⽹掩码
ifconfig eth0 192.168.0.10 netmask 255.255.255.252 (⼿动定义⼦⽹掩码)(重启后⽆效)
ifconfig eth0 down(停⽤⽹卡)
ifconfig eth0 up(激活⽹卡)南通科技进修学院
service network restart(重启⽹络服务)
/
etc/rc.d/init.d/network restart(同上)
我⽤ifconfig eth0 192.168.0.10 netmask 255.255.255.252 设置完ip,然后执⾏service network restart。
系统提⽰:eth0已有的MAC地址和系统要设置的不符,设置MAC地址失败。
因为⽹卡配置信息保存在/etc/sysconfig/network-scripts/ifcfg-eth0配置⽂件中,所以就去看看它吧。
⽂件的基本内容如下:
DEVICE=eth0(哪张⽹卡)
ONBOOT=yes
BOOTPROTO=static(静态ip状态设置)
BOOTPROTO=dhcp(dhcp获取)
IPADDR=192.168.1.8(静态ip地址)
NETMASK=255.255.255.0
GATEWAY=192.168.1.1(⽹关)
HWADDR=00:0C:29:96:38:F8(修改mac地址)(永久有效)
我把⽂件的内容进⾏了删减,只留下
DEVICE=eth0
痕迹学BOOTPROTO=dhcp
HWADDR=00:0C:29:96:38:F8(修改为提⽰信息中指出的系统期望赋给eth0的MAC)
交流使人生更美好ONBOOT=yes
重启Linux后可以正常上⽹了。
另外,VMWare的⽹络设置中要使⽤VMnet8,如下图所⽰:
注意:发现按着上述步骤操作之后,只能在esxi虚拟机内部的⼏台机⼦之间可以互相ping岛袋宽子
这个最可能的原因是你所在单位的ip地址和mac地址需要绑定通,ping⽹关都⽆法ping通,这个最可能的原因是你所在单位的
之后才能上⽹

本文发布于:2024-09-23 13:29:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/104027.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系统   地址   发现   设置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议