このページで解説している内容は、以下の 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 manual | 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
の利用を推奨します。