linux 虚拟ip 漂移,网卡序号漂移的解决办法(复制虚拟机IP问题)

产生此问题的原因我就不多说了,比如:换主板(集成网卡)、换网卡、虚拟机COPY等都会发生网卡序号漂移现象。而我们批量处理的脚本一般是针对固定网卡序号(如:eth0/eth1)的,如果它变成了eth2/eth3显然会对批量操作造成不便。

1.识别现有网卡

可使用ifconfig  -a | grep

HWaddr来查看所有网卡的MAC(记录好需要修改序号的的网卡对应的MAC)。如果要唯一确定具体哪一块物理网卡,可用拔插网线的方法配合sudo

ethtool ethX来确定(在输出结果中:Linked detected:yes,说明是接好网线的;Linked

detected:no,说明没有连接网线)。

2.修改配置文件

Ubuntu保存MAC地址的配置文件为"/etc/udev/rules.d/70-persistent-net.rules",该文件内容如下:

SUBSYSTEM=="net",

ACTION=="add", DRIVERS=="?*", ATTR{address}=="8c:89:a5:61:99:c3",

ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x10c9 (igb)

SUBSYSTEM=="net",

ACTION=="add", DRIVERS=="?*", ATTR{address}=="8c:89:a5:61:99:c2",

ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x10c9 (igb)

SUBSYSTEM=="net",

ACTION=="add", DRIVERS=="?*", ATTR{address}=="6c:62:6d:b3:bb:32",

ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x8086:0x10c9 (igb)

SUBSYSTEM=="net",

ACTION=="add", DRIVERS=="?*", ATTR{address}=="6c:62:6d:b3:bb:33",

ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

天火的BLOG:.html

用vi编辑这个文件,根据目前的MAC地址将以前的eth0/eth1配置删除,然后修改eth2的NAME="erh2"为NAME="eth0",eth3的NAME="erh3"为NAME="eth1",修改后的内容如下:

SUBSYSTEM=="net",

ACTION=="add", DRIVERS=="?*", ATTR{address}=="6c:62:6d:b3:bb:32",

ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x10c9 (igb)

SUBSYSTEM=="net",

ACTION=="add", DRIVERS=="?*", ATTR{address}=="6c:62:6d:b3:bb:33",

ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

保存退出,重启系统,Ubuntu就会使用新的配置文件来设置网卡了。

注意:重启系统之前,请修改/etc/network/interfaces中的网卡序号(目前为eth2和eth3)为变更后的新序号(变更后为eth0和eth1),否则,系统重启后由于变更了网卡序号,网卡无法启动,从远程会无法访问,切记!

若不重启则可重启加载udev规则并重启udev

/sbin/udevadm control --reload-rules

/sbin/start_udev

service network restart