我实际上喜欢可预测的接口名称,我只是想在 Debian dist 升级后重新启动之前知道它们,以便我可以/etc/network/interfaces
相应地更改。知道如何预测它们吗?
答案1
笔记:当您升级最初使用旧式名称的 Debian 系统时,默认情况下它将继续使用旧式名称:升级过程将放置一个到 /dev/null 的符号链接,这/etc/systemd/network/99-default.link
将覆盖新的命名策略文件/lib/systemd/network/99-default.link
。如果您选择使用新样式,请rm /etc/systemd/network/99-default.link
在升级后重新启动之前。
如果新版本的udev
规则集已经就位(如您所示:在apt dist-upgrade
重新启动之后但之前),那么
udevadm info -q all -p /sys/class/net/<current name of interface> |grep ID_NET_NAME
应按优先级降序显示所有命名选项:
enoN
如果有 DMI 信息将网络接口标识为板载集成 NIC,则会出现ID_NET_NAME_ONBOARD 。默认情况下,该名称优先于所有其他选项。- 如果网卡位于 PCIe 热插拔插槽中,您可能会看到 ID_NET_NAME_SLOT
ensN
编号,用于标识相应的插槽编号 - ID_NET_NAME_PATH
enpNsM
对应于 PCI 设备 ID N:M.0。不幸的是,设备名称编号采用十进制,而 PCI 设备 ID 使用十六进制,因此可能需要进行一些转换。 - 如果 NIC 具有多个显示为单独 PCI 功能的端口 (PCI id N:ML),则将改为 ID_NET_NAME_PATH
enpNsMfL
。 - 还有 ID_NET_NAME_MAC
enx<MAC address in hex>
格式。默认情况下不使用此功能,但在 USB 连接的 NIC 上可能很方便。
如果您还没有运行升级,则过程将是:
- 第一次运行
dmidecode -t10
。如果它报告任何以太网接口,它们将被列为板载接口 (enoN
)。 - 如果您有 NIC热插拔能力PCIe 插槽,您的硬件手册有望识别插槽编号。
然后,使用
ethtool -i ethN | grep bus-info
查看网卡的 PCI 总线标识符。将总线 ID 号从十六进制转换为十进制,您就会知道enp...
新名称的形式。例如:总线信息:0000:00:19.0
将映射到 enp0s25,以及一个双端口 NIC
bus-info: 0000:01:00.0
和
bus-info: 0000:01:00.1
将映射到enp1s0f0
和enp1s0f1
。
如果您想调整默认命名,可以使用目录.link
中的文件来完成/etc/systemd/network/
:请参阅man systemd.link
获取详细信息。例如,如果您想使用enx<MAC>
USB网络接口的样式命名,您可以添加/etc/systemd/network/81-usbnet.link
包含以下内容的文件:
[Match]
Path=*usb*
[Link]
NamePolicy=database mac