ネットワーク設定 · 1 min read · Sep 29, 2025

CentOSでネットワークインターフェースをeth0にリネームする方法

この記事では、Linuxのインターフェース名付けについて学びます。これは、AlmaLinux、CentOS、Rocky LinuxなどのRHELベースのLinuxディストリビューション向けに書かれています。Linuxのネットワークインターフェースがeth(X)、ens(X)、eno(X)などと名付けられている理由を学びます。

まず、Linuxシステムにおけるネットワークインターフェースの命名概念について、従来の命名規則、biosdevname、system udevポリシーを含めて学びます。

1. 従来の命名規則

従来の命名規則は、Linuxカーネルドライバによって提供されるデフォルトの従来のインターフェース命名スキームです。従来の命名規則は、Ethernetデバイスにはeth(n)、無線LANデバイスにはwlan(n)、usbnetにはusb(n)などがあります。

従来の命名規則では、すべてのネットワークハードウェアはカーネルドライバによって同じように扱われます。接続の種類については十分に教えてくれますが、あなたが慣れ親しんでいるハードウェアの性質についてはあまり役に立ちません。

2. Biosdevname

Biosdevnameは、Dellによって始められたプロジェクトで、ネットワークデバイスの一貫した命名を提供します。Biosdevnameは、ハードウェアの物理的な位置に基づいてネットワークデバイスの一貫した命名メカニズムを提供するudevユーティリティヘルパーです。

以下は、biosdevnameによって提供されるデフォルトの命名スキームのポリシーです:

  • オンボードネットワークデバイスは「 em[_] 」として名付けられます。
  • アドオンNICデバイスは「 pp[_] 」として名付けられます。

詳細は以下の通りです:

  • em = オンボードネットデバイス
  • = 対応するPCIスロット
  • = NICのポート番号(マルチポートNICがある場合)
  • = SRIOVおよび/またはNPARインスタンスインデックス
  • アドオンNICの「 p 」はそれぞれPCIスロットとポートを表します。

3. Systemd Udevルール

現在、Ubuntu、CentOS、Debianなどの人気のあるLinuxディストリビューションは、Systemdをシステムおよびサービスマネージャとして使用しています。そして、バージョン197以降、systemdはbiosdevnameに似たネットワークインターフェースのネイティブ命名ポリシーとスキームに追加されました。

以下は、Systemdベースのシステムのネットワークインターフェース命名の5つのポリシーです:

  1. オンボードネットワークデバイスは「eno1」、「eno2」などとして名付けられます。
  2. ファームウェア/BIOSが提供するPCI Expressホットプラグスロットインデックス番号を組み込む場合、「ens1」と名付けられます。これは、最初のポリシーが失敗した場合に適用されます。主にVMWareやKVMなどの仮想マシンで使用されます。
  3. ハードウェアのコネクタの物理的な位置を組み込んだ名前(例:enp2s0)は、適用可能な場合に適用され、そうでない場合はすべての他のケースでスキーム5に直接戻ります。
  4. インターフェースのMACアドレスを組み込んだ名前(例:enx78e7d1ea46da)は、デフォルトでは使用されませんが、ユーザーが選択すれば利用可能です。
  5. すべての他の方法が失敗した場合、従来の予測不可能なカーネル命名スキームが使用されます(例:eth0)。

これで、Linuxインターフェースの命名規則について学びました。

次に、ネットワークインターフェースの名前を従来の「et0」、eth1などに変更する方法を示します。これを行う方法は2つあり、’biosdevname’を通じてネットワークインターフェース名を変更する方法と、’systemd udevルール’を通じて変更する方法です。

1. Biosdevnameを無効にしてインターフェース名をeth0に変更する

上記で述べたように、biosdevnameはDellによって作成されたudevユーティリティで、システムBIOSによって提案されたネットワークインターフェースの命名を行います。そして、デフォルトでは、biosdevnameパッケージはLinuxシステムにインストールされています。

Linuxシステムでbiosdevnameを無効にするには、システムのgrub設定を編集してブートレベルで無効にする必要があります。

先に進む前に、以下のコマンドを使用してシステム上の現在のインターフェースを確認しましょう。

ifconfig -a  
ip addr

以下はその結果です。

その結果、2つのネットワークインターフェース「ens3」と「ens8」があります。

次に、CentOS 8システムのgrub設定と各インターフェースのネットワーク設定を編集して、両方のインターフェースを「eth0」と「eth1」にリネームします。

- Grub2の設定

‘/etc/sysconfig/‘ディレクトリに移動し、vimエディタを使用して’grub’設定を編集します。

cd /etc/sysconfig/  
vim grub

‘GRUB_CMDLINE_LINUX’設定に、biosdevnameとnet.ifnamesカーネルパラメータを無効にするための以下の設定を追加します。

net.ifnames=0 biosdevname=0

保存して閉じます。

その後、以下のように’grub2-mkconfig’コマンドを使用して新しいgrub設定を生成します。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

そして、以下の結果が得られます。

- ネットワークスクリプトの編集

次に、’/etc/sysconfig/network-scripts/‘ディレクトリにある設定で両方のネットワークインターフェースをリネームする必要があります。

‘/etc/sysconfig/network-scripts/‘に移動します。

cd /etc/sysconfig/network-scripts/

両方のインターフェース名を’ifcfg-ethX’にリネームします。

mv ifcfg-enp0s3 ifcfg-eth0  
mv ifcfg-enp0s8 ifcfg-eth1

その後、以下のsedコマンドを使用して、両方のファイルで両方のインターフェースを’ethX’に変更します。

sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0  
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1

CentOS 8システムを再起動します。

sudo reboot

- テスト

再度ログインしたら、以下のコマンドを使用して利用可能なネットワークインターフェースを確認します。

ifconfig  
ip addr

以下のような結果が表示されます。

CentOS 8システムの両方のネットワークインターフェースが変更され、現在は従来の命名規則を使用しています。ネットワークインターフェースは、システムブート中に’biosdevname’を無効にすることで変更されました。

- オプション

システムブートの変更に関する詳細を確認したい場合は、以下のコマンドを実行できます。

dmesg | grep -i eth

デフォルトのインターフェース名が従来の名前’ethX’に変更されたことが表示され、カスタムudevルールを通じて変更されました。

2. Udevルールを使用してインターフェース名をeth0に変更する

ネットワークインターフェース名を従来の命名(eth0など)に変更する別の方法は、カスタムudevルールを作成することです。カスタムudevルールを使用することで、システムの後にネットワークインターフェースが変更されます。

- カスタムUdevルールの作成

‘/etc/udev/rules.d/‘ディレクトリに移動し、vimエディタを使用して’70-persistent-net.rules’というカスタムルールを作成します。

cd /etc/udev/rules.d/  
vim 70-persistent-net.rules

macアドレスとデフォルトインターフェース’ens3’と’ens8’を自分のものに変更し、そこに貼り付けます。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:6c:a8:e6", ATTR{type}=="1", KERNEL=="ens3", NAME="eth0"  
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:97:cf:33", ATTR{type}=="1", KERNEL=="ens8", NAME="eth1"

保存して閉じます。

- ネットワークスクリプトの編集

次に、’/etc/sysconfig/network-scripts’ディレクトリに移動します。

cd /etc/sysconfig/network-scripts/

両方のインターフェース名を’ifcfg-ethX’にリネームします。

mv ifcfg-enp0s3 ifcfg-eth0  
mv ifcfg-enp0s8 ifcfg-eth1

その後、以下のsedコマンドを使用して、両方のファイルで両方のインターフェースを’ethX’に変更します。

sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0  
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1

CentOS 8サーバーを再起動します。

sudo reboot

- テスト

再度ログインしたら、以下のコマンドを使用してすべての利用可能なネットワークインターフェースを確認します。

ifconfig  
ip addr

新しいインターフェース’ethX’が割り当てられたことが確認できます。

- オプション

システムブートの変更に関する詳細を確認したい場合は、以下のコマンドを実行できます。

dmesg | grep -i eth

‘ensX’の名前が従来の名前’ethX’に変更されたことが表示され、カスタムudevルールを通じて変更されました。

参考

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。