【Linux】nmcliコマンドの使い方

nmcliコマンド Linux
スポンサーリンク

今回はnmcliコマンドの使い方について紹介していきたいと思います。

Linuxエンジニアにとって、ネットワーク設定やトラブルは、必ずといっていいほどついて回る課題です。

ifconfig, ifup ifdow,ipコマンドで、IPアドレスの変更が上手くいかない時は、nmcliコマンドを使用してみてもいいかもしれません。

実行環境は、MXLinuxを使用しています。

nmcliコマンドとは

nmcli(Network Manager command-line)は、NetworkManagerを介してネットワークの状況を確認したり、設定を変更するコマンドです。

これまで、netstatなどネットワークに関するコマンドがありますが、より詳細な情報を取得したいとき、nmcliコマンドを使用します。

nmcliコマンドの使い方

nmcli [オプション] オブジェクト {コマンド | ヘルプ}

とりあえず、どんなオプションがあるか見てみましょう。

mxlinux@mxlinux:~
$ nmcli --help
使い方: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -o[verview]                                    overview mode (hide default values)
  -t[erse]                                       terse output
  -p[retty]                                      pretty output
  -m[ode] tabular|multiline                      output mode
  -c[olors] auto|yes|no                          whether to use colors in output
  -f[ields] <field1,field2,...>|all|common       specify fields to output
  -g[et-values] <field1,field2,...>|all|common   shortcut for -m tabular -t -f
  -e[scape] yes|no                               escape columns separators in values
  -a[sk]                                         ask for missing parameters
  -s[how-secrets]                                allow displaying passwords
  -w[ait] <seconds>                              set timeout waiting for finishing operations
  -v[ersion]                                     show program version
  -h[elp]                                        print this help

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

まず、何も引数を指定せず実行しましょう。

mxlinux@mxlinux:~
$ nmcli
eth0: 接続済み to Wired connection 1
        "Intel xxxxxx"
        ethernet (e1000), xx:xx:xx:xx:xD:xx, hw, mtu xxx0
        ip4 デフォルト
        inet4 xx.x.x.xx/24
        route4 0.0.0.0/0
        route4 x0.x.x.x/24
        inet6 fxxx::xxxd:2xx5:4xxxx:2xx/64
        route6 xxx0::/64
        route6 xxx0::/8

lo: 管理無し
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu xxxxx

DNS configuration:
        servers: xxx.xxxx.x.x
        interface: eth0

既知のデバイスに関する情報を取得するには、"nmcli device show" を使用します。
アクティブな接続プロファイルの概要を取得するには、"nmcli connection show" を使用します。

引数なしで実行すると、現在認識しているデバイス情報が表示されます。

アクティブなデバイス情報を表示

nmcliコマンドで、現在アクティブとなっているデバイス情報を取得する方法は以下のコマンドで実行します。

mxlinux@mxlinux:~
$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  exxxxxxx-dxxx-3xxx-9xxx-xxxxxxxxxxxx  ethernet  eth0   

デバイスを指定して情報を表示

nmcliコマンドで特定のデバイス情報を取得します。

mxlinux@mxlinux:~
$ nmcli connection show eth0

指定したデバイスをアクティブにする

指定したデバイスをアクティブにする方法は、以下のコマンドで実行できます。

mxlinux@mxlinux:~
$ nmcli connection up eth0
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)

指定したデバイスを非アクティブにする

nmcliコマンドで、指定したデバイスを非アクティブにするときは以下のように実行します。

mxlinux@mxlinux:~
$ nmcli connection down eth0
接続 'eth0' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)

指定したデバイスを再起動する

nmcliコマンドでデバイスを再起動する場合は、先程のアクティブ・非アクティブコマンドを使用して再起動を実行します。

mxlinux@mxlinux:~
$ nmcli connection down eth0 && nmcli connection down eth0 

パラメータの設定

nmcliコマンドでパラメータの設定をします。

設定方法は以下のフォーマットで設定できます。

nmcli connection modify [Connection Name] [パラメータ] [値]

Connection名を変更する

先程、nmcli connection showでデバイス情報を取得した際に、NAMEがWired connection 1でした。

Connection名がDevice名と異なっており、非常に扱いづらいです。

そこで、nmcliコマンドでConnectio名を変更したいと思います。

変更前

mxlinux@mxlinux:~
$ nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  exxxxxxx-dxxx-3xxx-9xxx-xxxxxxxxxxxx  ethernet  eth0 

変更後

変更には、以下の書式で実行すると変更できます。

sudo nmcli connection modify ‘Wired connection 1’ connection.id eth0

また、設定の変更には管理者権限[sudo]が必要になります。

mxlinux@mxlinux:~
$ sudo nmcli connection modify 'Wired connection 1' connection.id eth0
[sudo] mxlinux のパスワード:

mxlinux@mxlinux:~
$ nmcli connection show
NAME  UUID                                  TYPE      DEVICE 
eth0  exxxxxxx-dxxx-3xxx-9xxx-xxxxxxxxxxxx  ethernet  eth0  

IPアドレスを変更する

nmcliコマンドで設定をipアドレスを変更するには、以下の手順で実行します。

# 変更対象のデバイスを非アクティブにする
mxlinux@mxlinux:~
$ nmcli connection down eth0
# 手動で変更することを伝える
mxlinux@mxlinux:~
$ nmcli connection modify eth0 ipv4.method manual
# ipアドレスの変更
mxlinux@mxlinux:~
$ nmcli connection modify eth0 ipv4.address 192.168.11.11
# 対象デバイスをアクティブにする
mxlinux@mxlinux:~
$ nmcli connection up eth0

DHCPを有効化/無効化する

nmcliコマンドでDHCPの設定を行うには、デバイス名の後に以下のオプションを入力します。

【有効化】ipv4.ignore-auto-dns yes

【無効化】ipv4.ignore-auto-dns no

今回は無効化にしてみます。

mxlinux@mxlinux:~
$ nmcli connection modify eth0 ipv4.ignore-auto-dns no

設定を反映させる

パラメータ等を変更した場合、変更内容を反映させるには再度読み込みをさせる必要があります。

mxlinux@mxlinux:~
$ sudo  nmcli connection reload eth0

設定ファイルの配置場所

Debian

ls -l /etc/NetworkManager/system-connections/

CentOS

ls -l /etc/sysconfi/network-scripts/ifcfg-*

さいごに

今回はnmcliコマンドについてまとめました。もしipアドレスを設定したのに、うまく接続できない、反映されない場合は、nmcliコマンドを使用してみるといいかもしれません。

コメント

タイトルとURLをコピーしました