このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

IPアドレスを設定する:nmcliコマンド

nmcliコマンドの概要

 Linuxシステムのネットワーク管理において、IPアドレスの設定は基本的かつ重要な作業です。IPアドレスは、ネットワーク内でのデバイス間の通信を可能にし、適切な設定がなされていない場合、ネットワーク接続が不安定になる、または接続ができなくなる可能性があります。ここでは、nmcliコマンドを使用してIPアドレスを手動で設定する方法について解説します。

 nmcliコマンドは、NetworkManagerを操作してLinuxシステム上のネットワークインターフェースにIPアドレスを設定するための強力なツールです。このコマンドを使用すると、設定ファイルが自動的に書き換えられ、恒久的な設定が行えます。ただし、既にIPアドレスが割り当てられているインターフェースに新たにIPアドレスを設定する場合、設定が即時反映されないことがあります。その場合、Linuxシステムやネットワークサービスの再起動が必要となります。

【構文】IPアドレスの設定
nmcli connection modiify コネクション名 ipv4.addresses IPアドレス/プレフィックス値

IPアドレスの設定の基本構文の解説
コマンド説明
nmcli connection modifyコネクションの設定を変更するためのコマンドです。
コネクション名IPアドレスを設定する対象のコネクション名を指定します。
ipv4.address IPアドレス/プレフィックス値設定したいIPアドレスとサブネットマスクを指定します。
ipv4.method manualIPアドレスの取得方法を手動設定に変更します。
IPアドレスの設定の基本構文の解説

 この構文を使って、特定のコネクションにIPアドレスを設定すると、NetworkManagerがその設定を保持し、再起動後も維持されます。

IPアドレス設定の使用例と解説

注意:nmcliコマンドでは、オブジェクト名を省略することができます。例えば、connectionをcon、modifyをmodと省略することができます。connectionを1文字の c と省略することも可能です。

1.su -コマンドを使用してrootユーザーに切り替える。

・「su -」コマンドを実行します。

 su -コマンドを使用すると、rootユーザーに切り替わります。-オプションをつけることで、rootユーザーの環境変数が適用され、rootユーザーとしての操作が可能になります。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~# 
2.デバイス名とコネクション名を表示する。

 VirtualBoxでは、1つ目のNICにenp0s3が設定されます。一般的な Linuxディストリビューションではeth0となることが多い。DEVICE名と、自動で設定される CONNECTION名が異なる場合があるため、次のコマンドを実行します。

・「nmcli device status」コマンドを実行します。

 このコマンドは、現在のネットワークデバイスとそれに関連するコネクションの状態を表示します。例えば、enp0s3はイーサネットデバイスの名前であり、有線接続 1はそのデバイスに関連するコネクション名です。

root@ubuntu-vm:~# nmcli device status
DEVICE  TYPE      STATE     CONNECTION
enp0s3  ethernet  接続済み  有線接続 1 
lo      loopback  管理無し  --
出力結果の例説明
DEVICEネットワークデバイスの名前
TYPEデバイスタイプ(イーサネット、Wi-Fi、ループバックなど)
STATEデバイスの状態(接続済み、接続なしなど)
CONNECTIONデバイスに関連付けられた接続名(コネクション名)
出力結果の例
3.CONNECTION名を変更する。

 DEVICE名と、自動で設定される CONNECTION名が異なる場合があるため、次のコマンドを実行します。

・「nmcli c mod '有線接続 1' connection.id enp0s3」コマンドを実行します。

 このコマンドで、有線接続 1というコネクション名をenp0s3に変更します。コネクション名とデバイス名を一致させることで、管理が容易になります。

root@ubuntu-vm:~# nmcli c mod '有線接続 1' connection.id enp0s3
4.デバイス名とコネクション名を再表示する。

・「nmcli device status」コマンドを実行します。

再度、このコマンドを実行することで、コネクション名が変更されたことを確認できます。

root@ubuntu-vm:~# nmcli device status
DEVICE  TYPE      STATE     CONNECTION
enp0s3  ethernet  接続済み  enp0s3
lo      loopback  管理無し  --
5.IPアドレスを変更する。

NICの設定は、DEVICE名ではなくCONNECTION名を指定する必要があるため、注意してください。

・「nmcli con mod enp0s3 ipv4.method manual ipv4.addresses 10.0.2.100/24」コマンドを実行します。

 nmcli con modを使って、enp0s3のコネクションに手動でIPアドレス「10.0.2.100/24」を設定します。手動で設定する方法に切り替えるには、IPアドレスの指定の前に「ipv4.method manual」を指定します。

root@ubuntu-vm:~# nmcli con mod enp0s3 ipv4.method manual ipv4.addresses 10.0.2.100/24
6.IPアドレスを確認する。

・「ip addr show dev enp0s3」コマンドを実行します。

  このコマンドは、デバイスenp0s3に現在設定されているIPアドレスを表示します。IPアドレスが「10.0.2.15/24」で設定した「10.0.2.100/24」に変更されていません。これは、enp0s3が現在使用中なので即座にIPアドレスが反映されないからです。

root@ubuntu-vm:~# ip addr show dev enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:1a:84:ef brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 82890sec preferred_lft 82890sec
    inet6 fe80::4a7c:c6e7:227e:5fd7/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
7.ネットワークサービスを再起動する。

以下のコマンドを実行します。

  • nmcli con down enp0s3」コマンド
  • nmcli con up enp0s3」コマンド

 これらのコマンドを使って、ネットワークインターフェースenp0s3を一度無効にしてから再度、有効にすることで、設定したIPアドレスが反映されます。

root@ubuntu-vm:~# nmcli con down enp0s3
接続 'enp0s3' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/1)
root@ubuntu-vm:~# nmcli con up enp0s3
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
8.再度IPアドレスを確認する。

・「ip addr show dev enp0s3」コマンドを実行します。

 ネットワークの再起動後、設定したIPアドレス「10.0.2.100/24」が正しく反映されていることを確認します。

root@ubuntu-vm:~# ip addr show dev enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:1a:84:ef brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.100/24 brd 10.0.2.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::4a7c:c6e7:227e:5fd7/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

nmtuiコマンドでのIPアドレス設定

 nmcliコマンドは強力ですが、やや複雑で初心者には難しいかもしれません。そのため、より簡単な設定ツールであるnmtuiの使用が推奨されます。nmtuiはテキストベースのGUIで、直感的にネットワーク設定を行うことができます。

まとめ

  • nmcliは強力なコマンドですが、初心者には難しい場合があります。
  • IPアドレスの設定やコネクション管理は、手動で行う場合に正確さが求められます。
  • 簡単に設定を行いたい場合は、nmtuiの利用を推奨します。