lat*_*ell 1 linux network-interface
我实际上喜欢可预测的接口名称,我只想在 Debian dist-upgrade 后重新启动之前知道它们,以便我可以相应地更改它们/etc/network/interfaces。知道如何预测它们吗?
注意:当您升级最初使用旧式名称的 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
Run Code Online (Sandbox Code Playgroud)
应该按优先级降序显示所有命名选项:
enoN如果存在将网络接口标识为板载集成 NIC 的 DMI 信息,则会出现ID_NET_NAME_ONBOARD 。默认情况下,此名称优先于所有其他选项。ensN标识相应插槽编号的 ID_NET_NAME_SLOT编号enpNsM对应于 PCI 设备 ID N:M.0。不幸的是,设备名称编号为十进制,而 PCI 设备 ID 使用十六进制,因此可能需要进行一些转换。enpNsMfL改为。enx<MAC address in hex>格式。这在默认情况下不使用,但在 USB 连接的 NIC 上可能很方便。如果您还没有运行升级,那么过程将是:
dmidecode -t10。如果它报告任何以太网接口,它们将被列为板载接口 ( enoN)。然后,用于ethtool -i ethN | grep bus-info查看 NIC 的 PCI 总线标识符。将总线 ID 编号从十六进制转换为十进制,您就会知道enp...新名称的形式。例如:
总线信息:0000:00:19.0
将映射到 enp0s25,和一个双端口 NIC
bus-info: 0000:01:00.0
Run Code Online (Sandbox Code Playgroud)
和
bus-info: 0000:01:00.1
Run Code Online (Sandbox Code Playgroud)
将映射到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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |