可以通过在以下配置中列出特定接口来禁用它:
[密钥文件] 未管理设备=接口名称:enx6c4bca1ac914
但我希望所有 USB 以太网适配器都是不受管理的,并且不想每次连接新适配器时都去编辑配置。
这是否仅在 NetworkManager 中可行,还是我需要一些黑客技术?可以通过 udev 配置重命名接口,为其指定一个固定名称,例如“usb”,然后将其添加到非托管配置中。但我还希望接口不同,以便在我的网络设置脚本中识别特定设备。
是否知道 udev 配置是否支持某种字符串连接以实现名称生成,例如“enx6c4bca1ac914”重命名为“usb_enx6c4bca1ac914”?
答案1
如果您已经在使用 udev 规则,只需直接ENV{NM_UNMANAGED}="1"
为基于 USB 的网络接口设置即可。当前版本的 NetworkManager 将读取此属性,因此无需绕远路定义特殊接口名称。
默认情况下,systemd 不会对任何内容使用基于enx
/ wlx
MAC 地址的命名 - Debian 和 Ubuntu 有自己的自定义 udev 规则,可以启用此名称格式仅有的对于 USB 接口。因此,除非您明确启用了其他接口类型的基于 MAC 的名称样式,否则您只需匹配enx*
。
根据文档,NetworkManager 的当前版本还提供了多种“接口匹配”格式interface-name:
(请参阅手册页中的“设备列表格式”)。其中,driver:
如果您的所有 USB 适配器都是同一类型,则这些格式将非常有用 - 尽管您目前无法按总线或路径匹配“所有 USB 设备”:
[keyfile]
unmanaged-devices=driver:cdc_ether;driver:rtl8192u;
相同的也可以在其“基于匹配”的配置部分中使用,其工作方式与 systemd-networkd 的 .network 文件类似(但同样,没有基于总线或 syspath 的匹配):
[device-usb]
match-device=driver:cdc_ether
managed=0