在Arch Linux中禁用网络接口

问题描述 投票:3回答:4

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

linux networking ethernet archlinux
4个回答
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


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的问题,所以设计了一些方法来通过模块参数分配卡的编号。也许模块本身允许这样做?


4
投票

我是从您的描述中收集到的,这是板载NIC。最好的解决方案是在主板BIOS中而不是在OS中禁用它。此方法因制造商而异,但我相信您可以在网上找到适合您的模型的手册。


0
投票

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

ip link set dev <interface name> down

您通过ip link show获得它们。

© www.soinside.com 2019 - 2024. All rights reserved.