一、环境配置
VMware9,虚拟主机系统RHEL6.4,宿主机系统Win7(64)。
二、相关问题
1、相信用过VMware的人都有这经历:将别人的虚拟机系统拷贝过来,自己打开发现用命令"ifconfig"查看的网卡名和系统的配置不一致。例如只有一个虚拟网卡时,ifconfig显示网卡名是eth1,但是网卡配置文件却是"/etc/sysconfig/network-scripts/ifcfg-eth0",里面的内容显示依然是eth0的配置,哪来的eth1啊?且使用命令"service network restart"重启网络服务可能出现错误。
这是由于拷贝的虚拟系统重新打开时,VMware会为网卡设置不同的MAC地址或者会为网卡创建新的名字,这个配置保存在"/etc/udev/rules.d/70-persistent-net.rules"文件中。
一般有两种方式可以解决:(1)删除70-persistent-net.rules文件,重启系统;(2)直接修改70-persistent-net.rules文件中的“NAME”配置,改成eth0。注意所对应的MAC地址要与“ifconfig”命令所显示的和"/etc/sysconfig/network-scripts/ifcfg-eth0"文件中的配置一致,然后重启系统。
2、同时使用系统的网络管理软件"Network Manager"与系统服务"network",会出现各种奇葩的问题;比如重启网络服务命令"service network restart"会出现错误,或者开启或者关闭网卡"ifup / ifdown eth0"会失败,或者网卡配置文件"/etc/sysconfig/network-scripts/ifcfg-eth0"失效,甚至于没有这个文件。反正会有各种各样的网络问题。
我的问题:我在VMware中删除了系统之前的所有网卡,为系统重新添加了一个NAT模式的网卡,然后使用系统的网络管理软件为这个网卡配置固定IP,网卡名设置为"eth0",发现"/etc/sysconfig/network-scripts/"目录中没有自动生成ifcfg-eth0文件。没有就没有吧,反正"ifconfig"显示没问题,能正常使用。但是有一个毛病,虚拟系统启动后,如果我不在Vmware中登录系统,从Windows是无法ping通的,更不用说使用远程登录软件(我用的XShell)登录这个虚拟系统了。我只能每次启动虚拟系统后,先手动登录,然后再使用远程连接软件连接登录【因为在虚拟系统中直接使用终端很不方便,所以我都远程登录方式】。
终于受不了了,我猜是:不在VMware中手动登录虚拟系统,系统的网络管理软件"Network Manager"是没有启动的,所以不能提供网络服务;登陆后就自动启动了【真奇怪】。然后我就自己写了个ifcfg-eth0文件,设成开机启动。我想这下行了吧,但是重启后发现还是老样子。这典型的ifcfg-eth0文件配置没有生效啊。
所以,上网了解了下,和猜测的一样,发现是系统的网络管理软件"Network Manager"惹的祸。
对于系统的网络管理,网络管理软件和network系统服务最好只选一个,随便用哪个都可以。我喜欢自动捣鼓,选后者,这时必须在网卡配置文件ifcfg-ethX文件添加一个配置"NM_CONTROLLED=no",去掉系统网络管理软件对网卡的管理权【默认是有的】,去掉后变成了这样:
然后ifcfg-eth0中的配置就生效了。
我这种问题也不一定是每人都会遇到的,但应该有类似的问题。按照上面的操作,应该是能搞定的。如果以后还遇着什么奇怪的问题是上面的方法不能解决的,我会补充的。也欢迎提出质疑。