我有一台带网卡的 Debian Stretch 服务器。我希望它连接到我的(正常配置的标准 DHCP)路由器。
所以通常我会说类似这样的话iface eth0 inet dhcp
。但我安装了带有两个额外以太网端口的网卡。
根据网卡的PCI插槽不同,端口的名称也不同:
- 未安装网卡。以太网插孔称为
enp5s0
- 网卡安装在 PCI 插槽 1 中:主板插孔称为
enp8s0
第一个卡插孔称为enp3s0
第二个卡插孔称为enp4s0
- 网卡安装在 PCI 插槽 2 中:主板插孔称为
enp9s0
第一个卡插孔称为enp6s0
第二个卡插孔称为enp7s0
enp5s0
我希望我的服务器能够通过或enp8s0
任何enp9s0
可用作普通 dhcp 客户端的设备连接到路由器。
我不想使用其他连接,因为我稍后要分配特殊的虚拟化配置:)
有人可以推荐我一个可以实现这一点的 /etc/network/interfaces 配置吗?
答案1
三年前,我在 Ubuntu 12.04 下遇到一个问题,即两台相同的服务器之间的硬件名称不一致。修复方法非常简单,我认为您可以在 Debian 下做同样的事情。
我的解决方案是使用 udev 根据设备的 mac 地址重命名设备。这样,无论你将其插入哪个插槽,设备的名称始终相同。
这应该在 Debian 下可以工作。
例如获取卡的 mac 地址ifconfig
enp0s25 Link encap:Ethernet HWaddr 20:cf:30:2f:40:79
inet addr:192.168.0.114 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::ecb9:ee41:b487:b54a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:338426 errors:0 dropped:0 overruns:0 frame:0
TX packets:168905 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:385564822 (385.5 MB) TX bytes:32387645 (32.3 MB)
Interrupt:20 Memory:f9de0000-f9e00000
然后编辑或创建文件 /etc/udev/rules.d/010_netinterfaces.rules(在 Ubuntu 12.04 下它被称为 /etc/udev/rules.d/70-persistent-net.rules)
为每张卡片添加一行:
KERNEL=="eth*", SYSFS{address}=="20:cf:30:2f:40:79", NAME="eth0"
/etc/network/interfaces
然后用新名称更新您的。
# The primary network interface
auto eth0
iface eth0 inet dhcp
现在您可以将卡插入任何插槽且设备名称始终为eth0
。