在Ubuntu中为网卡设定固定的名称


0x00 前言

在NAS上插了一条傲腾M10,结果再次开机后就连不上网了。检查一番后发现是网卡名称发生了变化,这倒也好解决,修改一下/etc/netplan目录下配置文件里的网卡名然后sudo netplan apply就行了。但为防止将来再次出现类似情况导致失联之类的严重后果,我需要一种能为网卡设定固定名称的方法,故写下此文,权当备忘。
本文内容应亦适用于所有以版本不低于v197systemd作为init的Linux系统。

0x01 Predictable Network Interface Names——systemd/udev的网卡命名规则

Predictable Network Interface Names是systemd自v197开始引入的一种网卡命名方式,如其名所示,它按照一定的规则为网卡提供可预测的名称,该规则可见于systemd.net-naming-scheme(7)
在这里我们的网卡名由enp11s0变成了enp12s0,由上述文档可知是由于添加新PCIe设备导致网卡的总线号发生了变化,从而导致网卡名称改变。

0x02 使用.link文件为网卡设定固定名称

上一节标题中的文档提到了三种不使用上述命名规则的方法:

  1. /usr/lib/systemd/network/99-default.link连接至/dev/null以将其禁用
  2. 自己写一个.link文件以应用一种不同的命名规则
  3. 启动时向内核传递net.ifnames=0

其中1和3都会启用旧式的eth<数字>命名法,故这里采用第二种方法。

.link文件的格式规定可参考systemd.link(5)

创建/usr/lib/systemd/network/50-net0.link文件,其内容如下:

[Match]
;使用MAC地址进行匹配
MACAddress=01:23:45:67:89:ab

[Link]
Name=net0

之后修改netplan配置文件即可。

本站所有文章均采用CC BY-NC-SA 3.0协议进行授权


『嘆く祈りこそ人の業』