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