ネットワークインタフェースの名前変更

ネットワークインタフェースの名前変更

ワイヤレスアダプタの名前をint&extに変更したいと思います。デフォルトでは、名前はランダムに指定されます。

  ┌─╼[~] 
  └────╼ ifconfig
enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 98:40:bb:43:28:54  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 545  bytes 70113 (70.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 545  bytes 70113 (70.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fd6f:40b0:565e::e84  prefixlen 128  scopeid 0x0<global>
        inet6 fe80::ec56:29b9:d982:cf64  prefixlen 64  scopeid 0x20<link>
        inet6 fd6f:40b0:565e:0:4ce5:90a:87e1:cae8  prefixlen 64  scopeid 0x0<global>
        inet6 fd6f:40b0:565e:0:5a4c:704e:d968:40d2  prefixlen 64  scopeid 0x0<global>
        ether a8:6b:ad:77:42:5f  txqueuelen 1000  (Ethernet)
        RX packets 14636  bytes 17950827 (17.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11826  bytes 1675564 (1.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlx00c0ca59bd42: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:c0:ca:59:bd:42  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp1s0の名前をwlan0に変更し、別の名前をwlan1に変更したいと思います。このフォーラムで2つのスレッドを見つけましたが、残念ながら私の場合は動作しません。

1:私はsystemd-bootloaderでpop_osを使います。

2:そのうちの1つはudevルールを使用することを提案しましたが、私のディレクトリにはルールがなく、/etc/udev/rules.d/システムによって生成された多くのルールを持つ別のディレクトリがありましたが、それらのどれも* percious-net.rulesを含んでいませんでした。

3: 誰かがnet.ifnames=0grub の使用を提案しましたが、暗号化と一緒に systemd-boot を使用しているので、私が読んだ内容によれば、再インストールせずに暗号化を無効にすることはほとんど不可能です。

(udevに関するいくつかの記事を読んでMellanoxの知識ベースの投稿からいくつかをコピーした後)、ルールを自分で作成しようとしましたが、うまくいきませんでした。これが私のルールです。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a8:6b:ad:77:42:5f", KERNEL=="wlp1s0", NAME="wlan0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:ca:59:bd:43", KERNEL=="wlx*", NAME="wlan1"

答え1

たとえば、/etc/systemd/networkという名前の2つのファイルを作成します。その内容は次のとおりです。70-wlan0.link71-wlan1.link

[Match]
MACAddress=a8:6b:ad:77:42:5f

[Link]
Name=wlan0

そして

[Match]
MACAddress=00:c0:ca:59:bd:42

[Link]
Name=wlan1

udevルールを削除してinitramfsファイルを更新し(initramfsフェーズ中にNICがロードされた場合に備えて)、再起動します。これで仕様に応じてインターフェイスの名前を変更する必要があります。man systemd.link詳細は参照してください。

ところで、この名前はランダムではありません。

wlp1s0方法勝つ怒るPCIバスのessデバイスそのまま:バス1 Sたくさん0...その時からF関数は指定されておらず、またゼロです。したがって、lspciリスト内のデバイスは1:0.0です。同様に、enp2s0デバイス2:0.0。

USBデバイスでは、パスベースの名前はUSBコントローラのバスとスロットの識別子で始まり、USBバスとポート番号に基づく追加の識別子で続きます。これらの識別子は、デバイスを接続するたびに変更されることがあります。違いがありますwlx。別のポートに接続されていても、デバイスに残っているMACアドレスに基づくワイヤレスデバイスのインターフェイス名の接頭辞。

何らかの理由でカーネルブートオプションが利用できない場合は、次のファイルを使用してnet.ifnames=0同じ効果を得ることができます。/etc/systemd/network/99-default.link

[Match]

[Link]
NamePolicy=kernel

[Match]の部分はすべてのデバイスと一致し、設定はまたはNamePolicy=kernelなどの古典的なカーネル生成インターフェイス名を使用します。eth0wlan0

では、/etc/systemd/network英数字順に一致する最初のファイルが優先されるため、各インターフェイスに一致するファイルの名前を指定すると、優先順位番号を少なく使用する限り、インターフェイス固有のリンクファイルを作成して特定のインターフェイスを99-default.linkオーバーライドするオプションが引き続き提供されます。になります。ファイル名に99個以上が含まれています。

関連情報