在ubuntu服务器中切换eth0和eth1


8

我有一个简单的问题。我有一台运行带有2个NIC的Ubuntu服务器8.04 LTS的计算机。主板上的一个连接到互联网,而一张PCI卡的连接到内部网络。在安装过程中,它检测到主板上的NIC为eth1,而PCI卡为eth0。我希望他们反过来。尤其是因为主机服务器将不会使用PCI NIC,所以它仅用于将在其上运行的某些虚拟机。

因此,当前计算机启动时会激活eth1(主板NIC)以dhcp获取IP,而单独保留eth0(PCI NIC)。这正是我想要的,除了eth0和eth1可以切换。

谢谢。

Answers:


15

正如tzafrir.net所提到的,没有更多解释,在包括Ubuntu在内的基于Debian的系统上,您需要检查/etc/udev/rules.d/70-persistent-net.rules文件,并且会发现类似于以下内容的行:

# PCI device 0x14e4:0x170c (b44)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:c5:6d:b1:9e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

显然,您会发现一个名称NAME =“ eth0”的名称,另一个名称为“ NAME = eth1”的名称,但每个名称都有各自的MAC地址。您只需交换NAME值并重新启动计算机,系统便会重命名它们。您甚至可以给它们命名不同的名称,wan或者lan没关系,只要您的路由和其他配置使用相同的名称即可。

在基于RedHat的系统(包括Fedora和CentOS)上,可以通过更改HWADDR相应/etc/sysconfig/network-scripts/ifcfg-ethX文件中的行来实现。

这样做的目的是在重新启动时保持与以前已知的内核相同的NIC,以更改可交换NIC顺序的PCI卡的寻址顺序。


1
谢谢。我还需要编辑/ etc / network / interfaces并将eth1更改为eth0。
lanrat

如果您只想更改哪个网卡是eth0,则只需要更改70-persistent-net.rules文件即可。如果启动系统时该文件不存在,则该文件实际上是由udev创建的。现在,如果您已配置interfaces文件以使用正确的NIC解决该文件,则还需要对其进行更改。
杰里米·布斯

6

您可以轻松地在/etc/udev/rules.d/70-persistent-net.rules中更改两个设备的名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.