Linux 网络设备命名规则

在 Linux 系统中,网络接口的命名规则已经经历了几次重要变化,特别是从传统的以 ethwlan 开头的名称,转变到更现代、更具描述性的命名方式 enp2s0wlp3s0

传统命名约定

在早期的 Linux 发布版本中,网络接口通常遵循如下命名约定:

  • 以太网接口eth0eth1 等,其中数字代表设备的顺序。
  • 无线接口wlan0wlan1 等。

这种命名方式简单直观,但在多网卡场景下可能导致命名冲突和不一致,尤其是在硬件更换或多个网络接口动态出现时。

持久性网络设备命名

为解决设备命名的一致性和可预测性问题,Linux 引入了基于 udev 的持久性命名规则:

  • 基于 MAC 地址:通常是 eth_id_MAC,其中 MAC 是网络接口的 MAC 地址的一部分。
  • 基于总线位置:如 eth_bus_info,根据设备在系统总线上的位置来命名。

这种方法提高了网络接口命名的稳定性,但名称往往较长且不易记忆。

可预测的网络接口名称(现)

最近,systemd 引入了一种新的网络接口命名方案,称为 Predictable Network Interface Names(可预测的网络接口名称)。这种方法的目标是提供一种更加稳定和可预测的方式来命名网络接口,且不依赖于接口顺序或设备路径,减少了命名冲突的可能性。常见的接口名称包括:

  • en:代表以太网 (Ethernet) 接口。

    enp<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
    
    • eno1:其中 o1 表示基于板载网络接口的逻辑编号。
    • enp2s0:其中 p2s0 表示第 2 个 PCI 总线上的第 0 个插槽上的设备。
    • enp2s0f0np0:其中 f0 表示该接口是多功能设备中的第 0 个功能(function),np0 表示该接口是网络端口 0。
  • wl:代表无线 LAN 接口。

    • wlp3s0:无线接口在第 3 个 PCI 总线上的第 0 个插槽上的设备。
  • ww:代表 WWAN 设备,如 LTE 模块。

    • wwp0s20u3:WWAN 接口在 USB 总线上的设备。

参见:

posted @ 2024-04-26 16:43  Undefined443  阅读(299)  评论(0)    收藏  举报