在Arch Linux中禁用网络接口

时间:2012-01-12 04:13:52

标签: linux networking ethernet archlinux

我有以下问题。我的电脑很旧,它有一个内置的以太网端口无法正常工作,不是由于配置错误,我认为它是物理损坏的。它在Ubuntu甚至在Windows上都不起作用。我有一个以太网PCI卡,这是我使用的。问题是,由于一些奇怪的原因,有效的卡有时会从eth0更改为eth1而我必须运行dhcpd,因为我并不总是通过DHCP获取IP。现在,实际的问题是,是否有某种方法可以禁用使用其MAC地址无效的卡?我无法停用eth0eth1,因为我确信它并不总是“指向”同一张卡。

4 个答案:

答案 0 :(得分:6)

它们是相同类型的芯片组还是不同的芯片组?

如果它们不同,那么最简单的解决方案可能就是将以太网芯片组的模块列入黑名单。

首先需要找到模块名称(这是针对eth0):

dmesg | grep eth0

看看你是否有以下内容:

[    2.209295] r8169 0000:05:00.0: eth0: RTL8168d/8111d at 0xffffc90000c6e000, 00:24:1d:11:b6:64, XID 081000c0 IRQ 44

在我的情况下,'r8169'是模块名称。您还可以使用'lsmod'查看当前加载的模块列表,因此请检查它是否显示在那里。

接下来,您需要将模块列入黑名单。对此有一个entry on the Arch wiki

答案 1 :(得分:6)

这里的弓箭手;我有一种方法可以根据硬件pci id禁用我的nVidia显卡的HDMI端口音频芯片;也许你可以对你的nic应用相同的方法:

找到以太网的pci id:

$ lspci | grep Eth
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 05)

找到相应的目录:

$ find /sys/devices -name *00:19.0
/sys/devices/pci0000:00/0000:00:19.0

该目录中应该有一个名为“remove”的文件。 您可以通过编辑/etc/rc.local

在启动时禁用该设备
echo 1 > /sys/devices/pci0000:00/0000:00:19.0/remove

第二个想法;如果在/etc/rc.local完成之前加载了模块,那么这可能不适用于你的情况......在“错误”的顺序中分配/ dev / eth0和/ dev / eth1然后有一点好处/etc/rc.conf禁用其中一个...你仍然可以将你喜欢的nic作为eth1。这曾经是多声卡上的alsa的问题,因此设计了通过模块参数分配卡的编号的方法。也许模块本身允许这个?

答案 2 :(得分:4)

我正在通过板载网卡收集你的描述。最好的解决方案是在主板BIOS而不是操作系统中禁用它。这种方法因制造商而异,但我确信您可以在某处找到适合您的模型的手册。

答案 3 :(得分:0)

我很困惑,它没有出现:如果您不需要cjpembo提出的低级解决方案,您可以使用

ip link set dev <interface name> down

您通过ip link show获得了它们。