WLAN号码分配

WLAN号码分配

Linux 如何或在哪里确定网络设备的分配?特别wlan0wlan1对于无线 USB 设备。

我前段时间插了一个TP USB无线,就分配了wlan0。我把它去掉了。本周我插入了 Edimax USB 无线设备,它显示为wlan1。我今天将其取下来尝试第二个 Edimax USB 无线设备(我买了两个),现在它又出现了wlan2

我对 Unix/Linux 有足够的了解,知道这是在某处配置的,如果我删除未使用的配置文件,我可以使最新的 Edimax 成为wlan0.但如何/在哪里?

答案1

乌德夫是决定 Linux 下设备名称的系统组件 - 主要是 下的文件名/dev,但也包括网络接口的名称。

从 099 到 196 的 udev 版本都有记录网络接口名称的规则,并且对于同一设备始终使用相同的编号。从 udev 174 开始,这些规则默认被禁用,但您的发行版仍然可以启用(例如 Ubuntu 保留它们)。一些发行版提供不同的规则集。

记录和保留接口名称以供将来使用的脚本是 /lib/udev/rules.d/75-persistent-net-generator.rules。它在 中编写规则 /etc/udev/rules.d/70-persistent-net.rules。因此,从您的 中删除现有的wlan0和条目,然后更改为.运行(或您找到与您的设备匹配的任何参数)以将规则重新应用到已插入的设备。wlan1/etc/udev/rules.d/70-persistent-net.ruleswlan2wlan0udevadm --trigger --attr-match=vendor='Edimax'--attr-match

答案2

systemdv197 起,通过引入网络设备持久命名,此问题已得到解决。

根据freedesktop可预测的网络接口名称页上,内核只是根据相关驱动程序探测名称的顺序来分配名称:

内核应用的网络接口的经典命名方案是简单地将以“eth0”、“eth1”等开头的名称分配给驱动程序探测的所有接口。由于现代技术的驱动程序探测通常是不可预测的,这意味着一旦多个网络接口可用,名称“eth0”、“eth1”等的分配通常不再固定,并且很可能会发生“一次启动时的“eth0”在下一次启动时最终会变为“eth1”。

如果您的发行版使用 systemd,您可以使用可预测分配但可能难以使用的名称,例如,wlp0s11或者您可以编写一条udev规则来给它们一个您更舒服的名称,例如wifi1基于 mac 地址...

/etc/udev/rules.d/在名为 的文件中包含一个文件10-network-device.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="22:bb:cc:33:44:dd", NAME="wifi1"

相关内容