在 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)中的接口名称太长。
解决步骤:
复制
/lib/udev/rules.d/80-net-setup-link.rules
到/etc/udev/rules.d/
变成
$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 可以正常工作了!
生长素