【nmcli】Linuxコマンド_ネットワークインターフェースの確認・設定

LinuxOSでネットワークインターフェースの設定を変更するには「nmcli」コマンドを使用します。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「nmcli」コマンドの使い方(Linux)

「nmcli」コマンドでは以下のコマンドを実行することで、「ens192」と言うデバイスが表示されます。

[root@centos8 /]# nmcli connection show
NAME     UUID                                  TYPE      DEVICE
ens192   cc1cb0e1-8841-4988-ad7c-53e5ac83eb86  ethernet  ens192 

このように「nmcli」コマンドはネットワークインターフェースのデバイス情報を表示することができます。

「nmcli」コマンドのインストール

nmcliコマンドが入っていない場合は以下のコマンドでパッケージを事前に「NetworkManager」をインストールしておきます。

インストールには「dnf」、もしくは「yum」コマンドを実行します。

[root@centos8 /]# dnf -y install NetworkManager

or

[root@centos8 /]# yum -y install NetworkManager

上記で「NetworkManager」をインストールするだけでは「nmcli」コマンドは以下のように使用できません。

[root@centos8 /]# nmcli con show
Error: NetworkManager is not running.

「NetworkManager」サービスを起動し、「nmcli」コマンドを使えるようにする

使用するには「NetworkManager」のサービスを起動することが必要となります。

「NetworkManager」パッケージインストール時の状態は以下のようにステータスが「inactive (dead)」となっています。

[root@centos8 /]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:NetworkManager(8)

「NetworkManager」サービスを以下コマンドで起動します。
「enable」コマンドは再起動後も継続してサービスが使用できるようにするコマンドとなります。

[root@centos8 /]# systemctl start NetworkManager
[root@centos8 /]# systemctl enable NetworkManager

上記、サービス起動後、ステータスが「active (running) 」となっていることが確認できます。

[root@centos8 /]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-05-23 04:50:56 UTC; 20s ago
     Docs: man:NetworkManager(8)
 Main PID: 359 (NetworkManager)
    Tasks: 3 (limit: 11814)
   Memory: 3.1M
   CGroup: /docker/a9e43d10ac214244de636ca2508bbd7707b6bd17628a449078b5552b79ee9ad9/system.slice/NetworkManager.service
           └─359 /usr/sbin/NetworkManager --no-daemon

全てのネットワークインターフェースの状態確認

「nmcli dev status」コマンドでは現状のすべてのネットワークインターフェースの状態が確認できます。

[root@centos8 ~]# nmcli dev status
DEVICE       TYPE      STATE            CONNECTION
ens192       ethernet  接続済み         ens192
docker0      bridge    接続済み (外部)  docker0
veth456b2ad  ethernet  管理無し         --
lo           loopback  管理無し         --

ネットワーク接続(接続)の状態確認

「nmcli connection show」コマンドは現状の接続済みのネットワークインターフェースの状態を確認することができます。

[root@centos8 ~]# nmcli connection show
NAME     UUID                                  TYPE      DEVICE
ens192   cc1cb0e1-8841-4988-ad7c-53e5ac83eb86  ethernet  ens192
docker0  7dfd6ab1-4da6-4441-b4a7-149f006f5cb6  bridge    docker0

また、対象のネットワークデバイスの詳細情報を表示するには以下のコマンドを実行します。
※「ens192」デバイスの詳細情報の表示例

[root@centos8 ~]# nmcli connection show ens192
connection.id:                          ens192
connection.uuid:                        cc1cb0e1-8841-4988-ad7c-53e5ac83eb86

------中略------

ipv4.dns:                               10.0.0.5
ipv4.dns-search:                        --

------中略------

ipv4.addresses:                         192.168.1.5/22
ipv4.gateway:                           192.168.1.253

IPアドレス割り当て設定

IPアドレスを固定で割り当てたい場合ば以下の手順となります。
また、DHCPで自動でIPアドレスを割り当てられている場合は以下のように詳細情報で「ipv4.method」が「auto」となっています。

ipv4.method:                            manual

固定で、IPアドレスを割り当てる場合は以下の手順でデバイスを停止し、変更を行います。

対象のネットワークデバイスを停止

[root@centos8 ~]# nmcli connection down ens192
接続 'ens192' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)

固定IPアドレスを設定

[root@centos8 ~]# nmcli connection modify ens192 ipv4.method manual ipv4.addresses 192.168.1.2/24

デフォルトゲートウェイ変更

[root@centos8 ~]# nmcli connection modify ens192 ipv4.gateway 192.168.1.254

DNSルータ変更

[root@centos8 ~]# nmcli connection modify ens192 ipv4.dns 10.0.0.1

対象のネットワークデバイスを起動

[root@centos8 ~]# nmcli connection up ens192
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)

設定変更は以上となります。
再度「nmcli connection show ens192」コマンドで設定が変更されていることを確認します。

「nmcli」コマンドオプション

「nmcli」コマンドのオプションは以下の通りとなります。

[root@centos8 ~]# nmcli --help
使い方: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -a, --ask                                ask for missing parameters
  -c, --colors auto|yes|no                 whether to use colors in output
  -e, --escape yes|no                      escape columns separators in values
  -f, --fields <field,...>|all|common      specify fields to output
  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f
  -h, --help                               print this help
  -m, --mode tabular|multiline             output mode
  -o, --overview                           overview mode
  -p, --pretty                             pretty output
  -s, --show-secrets                       allow displaying passwords
  -t, --terse                              terse output
  -v, --version                            show program version
  -w, --wait <seconds>                     set timeout waiting for finishing operations

OBJECT
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

「nmcli」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!