配置以太网网络

配置以太网网络

我有一个有线网络连接,如果我使用网络管理器(以下简称“NM”),除了硬件地址(它不会改变)之外,一切都正常工作。我正在考虑使用/etc/network/interfaces。因此,我添加了一些代码,它看起来像这样:

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address #corresponding value
netmask #corresponding value
gateway #corresponding value
hwaddress #corresponding value

重新启动网络后我收到以下消息:

*Reconfiguring network interfaces...
#here some help code appears
Failed to bring up eth1.

与 NM 配合使用的默认接口是 eth0。请指教如何处理该问题。

答案1

eth0 或 eth1 是 Linux 为您的网卡赋予的逻辑名称(我不知道具体哪个组件负责命名,但我猜是内核)。如果 eth0 或 eth1 是为您的卡赋予的逻辑名称,那么您只能使用它,否则不能。

回到您的原始问题,即在不同位置使用不同的硬件地址,这可以通过在/etc/network/interfaces文件中定义逻辑名称映射来实现,但您每次都必须使用ifup命令手动连接到网络。

为此,请打开/etc/network/interfaces文件并将其内容替换为以下内容

auto lo
iface lo inet loopback

mapping eth0
      script /home/<username>/net.sh
      map eth0 eth0-home
      map eth0 eth0-work

iface eth0-home inet static
      address #ip address for home
      netmask #subnet mask for home
      hwaddress ether #MAC address for home

iface eth0-work inet static
      address #ipaddress for work
      netmask #netmask for work
      hwaddress ether #MAC address for work

根据需要设置 eth0-home 和 eth0-work 的 ip 地址、网络掩码和硬件地址。同时替换<用户名>在脚本的第四行输入您的用户名。现在保存并关闭接口文件。

现在创建一个文件 /home/<username>/net.sh,内容如下

#!/bin/sh
echo eth0

保存并关闭 net.sh 文件。

现在您已全部设置完毕。您可以使用命令sudo ifup eth0=eth0-home以 eth0-home 设置启动网络,并sudo ifup eth0=eth0-work以 eth0-work 设置启动网络。

还请注意,当接口配置为自动连接时,interfaces 文件中的映射部分和我们在用户主目录中创建的脚本文件实际上是需要的。但我们需要提供它们才能正常工作。因此,脚本文件的内容和映射部分的内容只是占位符。如果您对自动连接感兴趣,则需要修改这两个。有关这两个的进一步讨论,您可以查看接口 (5) 的手册页或访问以下链接http://addisu.taddese.com/blog/mapping-in-linux-network-interfaces/

答案2

您必须决定是否要使用 NM 或文件中的“硬编码”配置interfaces。就我的经验而言,将它们混合使用不是一个好主意,您会遇到问题。您可能想放弃使用 NM,好的。但是,像和这样的名称eth0eth1分配给以太网 NIC,因此如果您使用eth1,我会认为您的机器中有两个 NIC。是的,您可能只有eth1和没有eth0(您甚至可以重命名 NIC),但我不明白这里的重点。请/sbin/ifconfig -a在终端中发出命令并使用您在那里看到的 eth 名称。如果您只看到eth1和没有eth0,也可以使用,这是可能的:udev 规则根据硬件地址(“MAC 地址”)命名接口,以确保如果您更改 PCI 卡位置和类似内容,您的接口不会被重新编号。我有过这样的经历,用另一张卡替换一张卡只会导致eth1(根本没有eth0)因为 udev 记住了旧卡的硬件地址,所以名称eth0是为此目的保留的,因此我有了eth1新的 NIC。我不确定你在想使用时指的是这个,eth1但最好提一下(顺便说一下,udev 在这里存储分配:)/etc/udev/rules.d/70-persistent-net.rules

相关内容