CentOS系统安装成功之后,配置网卡的IP参数保存在“/etc/sysconfig/network-scripts/ifcfg-eth0"文件中,比如我的机器是这样的:
TYPE=Ethernet
UUID=c9964628-3294-4589-889e-780b1117c324
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=xx:xx:xx:xx:xx:xx
IPADDR=192.168.1.244
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
我们都知道网卡的设备名是从eth0开始的,第二张网卡就是eth1,以此类推。如果在系统安装之后更换了网卡,由于之前配置的参数还保存在系统中,所以新的网卡设备名就继续递增。比如我的系统只有一个网卡,更换之前的旧网卡设备名是eth0,更换之后的新网卡就是eth1。如果不想修改设备名的话,你可以做一个eth1配置参数,我这里要介绍的做法是将eth1改名为eth0。
首先我们要知道新网卡的MAC地址,运行ifconfig -a命令,可以得到如下的结果:
eth0 Link encap:Ethernet HWaddr 44:37:E6:83:DF:5A
inet addr:192.168.1.244 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::4637:e6ff:fe83:df5a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4737 errors:0 dropped:0 overruns:0 frame:0
TX packets:126 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:426136 (416.1 KiB) TX bytes:23336 (22.7 KiB)
Interrupt:17
找到HWaddr后面的一串字符,就是我们所要的MAC地址,在之前的文件中找到相应的HWADDR,用我们得到的字符串来替换,然后保存文件。
此外,系统启动之后会检测所有的网卡,并记录到/etc/udev/rules.d/70-persistent-net.rules文件,比如:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="44:37:e6:83:df:5a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
把包含eth0的那行删除,然后把包含eth1的那行里面的eth1改成eth0之后保存,变成这样:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="44:37:e6:83:df:5a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
这样重启系统之后,所做的修改就会生效了。