NetworkManagerをコマンドラインから操作するには? nmcliコマンドネットワーク管理の基本Tips

従来Linuxでは、ネットワークの状態確認やデバイスの設定など機能ごとにコマンドを使い分けていましたが、Red Hat Enterprise LinuxおよびCentOSには、統合ツールとして「NetworkManager」およびCLI版の「nmcli」が用意されています。

» 2015年02月10日 19時32分 公開
[海上忍,@IT]

バックナンバー

連載バックナンバー

 本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回は、RHELやCentOSにおけるネットワーク統合管理ツールである「NetworkManager」をコマンドラインから操作するためのnmcliを見ていきます。

NetworkManagerの機能をコマンドラインから使う(RHEL/CentOS)

nmcli [オプション] オブジェクト [設定項目]

※[ ]は省略可能な引数を示しています



nmcliとは?

 Red Hat Enterprise LinuxおよびCentOSでは、「NetworkManager」という管理ツールが用意されています。「NetworkManager」はネットワークデバイスの検出と関連システムの設定支援を行います。

 nmcliは、NetworkManagerの機能にコマンドラインからアクセスできます。ifconfigなど、他のコマンドを利用するか、/etc/sysconfig/network-scriptsディレクトリ以下にあるスクリプトを直接編集していたネットワーク関連の設定を、一元的に処理することが可能です。

 基本的な用法は、以下で紹介する、コマンド名に続いて操作対象を意味するオブジェクト設定項目とそのオプションの順となります。有効なネットワークデバイスの一覧やIPアドレスなど設定情報を確認するだけでなく、ホスト名やIPアドレスの設定変更、回線のオン/オフなど、NetworkManagerで行う作業のほぼ全てがコマンドラインから実行できます。

 なお、NetworkManagerおよびnmcliと同等の管理作業を行うためのツールとして「nmtui」も用意されています。こちらは対話型のツールであり、カーソルキーで項目を選びReturnキーで確定という方法で設定作業を行うことができます。

書式解説

 nmcliコマンドで使える「オブジェクト」とオプション、各オブジェクトの設定項目は次の通りです。

表1 nmcliコマンドで使えるオブジェクト
オブジェクト名称 役割
connection NetworkManagerの接続状況
device NetworkManagerで管理しているデバイス
general NetworkManagerの全般的な状態と動作
networking ネットワーク制御に関する全般
radio NetworkManagerラジオスイッチ
表2 nmcliコマンドのオプション
オプション 内容
-t 簡潔な形式で出力する
-p 読みやすい形式で出力する
-m 出力モードを変更する(tabular=タブ分割、multiline=行分割)
-f 出力フィールドを指定する
-e コラムセパレーターをエスケープする
-n NetworkManagerおよびnmcliのバージョンチェックを行わない
-a パラメーターが足りない場合問い合わせる
-w 動作完了までのタイムアウトを設定する
表3 各オブジェクトの設定項目
オブジェクト 設定項目 意味
general status NetworkManagerの設定項目を全て表示する
hostname ホスト名を表示/設定する
permissions NetworkManagerの各種スイッチを表示する
logging ログを表示/取得範囲を設定する
networking on(off) 指定した回線を有効化(無効化)する
connectivity 接続ステータスを表示する
radio all radioオブジェクトの全スイッチの状況を表示する
wifi NetworkManagerが管理する無線LANの項目を表示/設定する
wwan モバイルブロードバンド回線をオン/オフする
wimax WiMAX回線をオン/オフする
connection show 接続状況を表示する
up(down) 指定した回線を有効化(無効化)する
add 新しいネットワークデバイスを追加する
edit 既存のネットワークデバイスを編集する(インタラクティブ)
modify 既存のネットワークデバイスを編集する
delete 既存のネットワークデバイスを削除する
reload 全ての接続をディスクから読み直す
load ファイルから接続設定を読み取る
device status ネットワークデバイスの状態を表示する
show ネットワークデバイスの詳細情報を表示する
connect ネットワークデバイスを接続する
disconnect ネットワークデバイスの接続を解除する
wifi 有効なWi-Fiアクセスポイントを一覧する
wimax WiMAXの接続事業者を一覧する

コマンドラインからネットワークデバイスの設定を確認するには?

 nmcliコマンドでは、操作対象(オブジェクト)とその設定項目を指定することで各種処理を行います。上の表3のように、設定項目はオブジェクトごとに異なり、状態を確認するだけでなく設定を変更することも可能です。

 オブジェクトは「connection」や「device」のようにフルネームを指定する他、前方一致の省略形を利用することも可能です。例えば、「connection」は「con」と省略できますが、他に「c」から始まるオブジェクトが存在しないため、「c」とだけ記述すれば通用します。

$ nmcli dev show
GENERAL.デバイス:                       eth0
GENERAL.タイプ:                         ethernet
GENERAL.HWADDR:                         00:3C:22:1D:97:CB
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           eth0
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        ip = 192.168.12.10/24, gw = 192.168.12.1
IP4.DNS[1]:                             192.168.12.1
IP6.アドレス[1]:                        ip = fe80::21c:12ff:fe2d:c7ab/64, gw = ::
GENERAL.デバイス:                       lo
GENERAL.タイプ:                         loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.状態:                           10 (管理無し)
GENERAL.接続:                           --
GENERAL.CON パス:                       --
IP4.アドレス[1]:                        ip = 127.0.0.1/8, gw = 0.0.0.0
IP6.アドレス[1]:                        ip = ::1/128, gw = ::

コマンドラインからホスト名を変更するには?

 nmcliコマンドでは、ネットワークの設定変更を行うことも可能です。ただし、管理者権限が必要となるため、rootとして作業するかsudoコマンドを併用する形で処理します。

 以下のコマンド実行例では、ローカルホストの名称を「mylinux.local」に変更しています。systemd(initと互換性がある起動処理とサービス管理の仕組み)で導入されたsystemctlコマンドと同期しているため、hostnamectlコマンドやhostnameコマンドで変更を確認できます。

$ nmcli g hostname
localhost.localdomain
$ sudo nmcli g hostname mylinux.local
$ hostname
mylinux.local
ローカルホスト名をmylinux.localに変更する場合

「ネットワーク管理の基本Tips」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。