如何恢复 USB wifi 接口名称(从 wlxXXXXXXXXXXXX 到 wlanX)?

如何恢复 USB wifi 接口名称(从 wlxXXXXXXXXXXXX 到 wlanX)?

在 Ubuntu 16.04 中,USB wifi 接口现在为 wlxXXXXXXXXXXXX,其中 X 是设备 mac 地址的数字(可预测接口名称的策略),有关更多信息可以在这里找到:systemd:可预测网络接口名称

实际上所有接口命名都已更改,但我能够回到旧的方式(ethX 表示以太网接口,wlanX 表示内部 wifi 卡)修改/etc/默认/grub正如本帖第三条帖子所建议的那样更改网络接口名称 ubuntu 16-04 我的问题是,这个解决方案不适用于 USB 接口,而且我仍然有这个非常烦人的长名字(我经常使用命令行来玩我的 wifi 接口) 接口命名问题

 So here is my question: 

我应该怎么做才能禁用我的 USB wifi 接口的新规则? 谢谢你的建议,请原谅我的英语不好。再见

答案1

你错过了一件事https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

然后重启

我认为它应该是 /etc/udev/ 中的 80-net-setup-link.rules 文件,因为我从 15.10 更新到 Ubuntu 16.04 的一台笔记本电脑仍然包含一个名为 /lib/udev/rules.d/73-usb-net-by-mac.rules 的文件,它包含

# Use MAC based names for network interfaces which are directly or indirectly
on USB and have an universally administered (stable) MAC address (second bit
is 0).

IMPORT{cmdline}="net.ifnames", ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end" PROGRAM="/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules", RESULT=="/dev/null", GOTO="usb_net_by_mac_end"

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \ ATTR{address}=="?[014589cd]:*", \ IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

LABEL="usb_net_by_mac_end"

它指定了 /etc/udev/rules.d/80-net-setup-link.rules

我安装的任何 Ubuntu 16.04 版本中都没有这个文件,但是它的一部分肯定存在于其他源代码中

答案2

对于那些寻找类似用例的人来说,请注意:

我遇到了 USB WiFi 加密狗的驱动程序无法进行验证的问题,因为 Debian(stretch)中的接口名称太长。

解决步骤:

  1. 复制/lib/udev/rules.d/80-net-setup-link.rules/etc/udev/rules.d/

  2. 变成$env{ID_NET_NAME}$env{ID_NET_SLOT}

这样在缩短接口名称的同时,也保持了其唯一性。

更新:这似乎不再是 Debian 10 的问题。

答案3

您可以覆盖重命名功能,为您的接口赋予您自己的自定义名称,而不是完全禁用重命名功能。这样可以保留静态命名,但会为您提供一个您可以记住并输入的名称。

现有的命名系统 ( /lib/udev/rules.d/80-net-setup-link.rules) 仅在接口尚未命名时才对其进行重命名。因此,您可以以更高的优先级添加自己的规则,/etc/udev/rules.d以自己的方式命名接口,然后阻止默认系统命名这些接口。

我的系统中有一个文件70-wifi.rules,它根据接口所连接的网络来命名接口:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0f:00:4a:c4:c9", NAME="wifi-root"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:19:86:31:dd:b7", NAME="wifi-main"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="38:2c:4a:48:27:49", NAME="wifi-local"

它由接口的 MAC 地址作为关键字,结果是:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 3c:d9:2b:73:ad:5d brd ff:ff:ff:ff:ff:ff
15: wifi-main: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:19:86:31:dd:b7 brd ff:ff:ff:ff:ff:ff
16: wifi-local: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 38:2c:4a:48:27:49 brd ff:ff:ff:ff:ff:ff
17: wifi-root: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:0f:00:4a:c4:c9 brd ff:ff:ff:ff:ff:ff

你可以将它们重命名为 wlan0、wlan1 等。这种方法的好处在于你可以得到你想要的名字,静态网络接口命名将为您带来好处。因此接口将始终使用相同的名称。

答案4

我有 ubuntu studio 并且遇到了同样的问题:wlxxxxx 名称很长并且 wifi 已连接但不工作!

Ubuntu Studio 有一个特殊的低延迟内核,我怀疑长名称可能是一个问题。

因此,受此线程启发,我将其重命名为 wlan0。我做了以下事情:

1)将 /lib/udev/rules.d/80-net-setup-link.rules 复制到文件夹 /etc/udev/rules.d/

2) 在那里编辑名称。在我的例子中,有一行:NAME=="", ENV{ID_NET_NAME}!="",NAME="$env{ID_NET_NAME}"

我只是把“wlan0”替换成了“$env{ID_NET_NAME}”。

现在 wifi 可以正常工作了!

生长素

相关内容