今回はnmcliコマンドの使い方について紹介していきたいと思います。
Linuxエンジニアにとって、ネットワーク設定やトラブルは、必ずといっていいほどついて回る課題です。
ifconfig, ifup ifdow,ipコマンドで、IPアドレスの変更が上手くいかない時は、nmcliコマンドを使用してみてもいいかもしれません。
実行環境は、MXLinuxを使用しています。
nmcliコマンドとは
nmcli(Network Manager command-line)は、NetworkManagerを介してネットワークの状況を確認したり、設定を変更するコマンドです。
これまで、netstatなどネットワークに関するコマンドがありますが、より詳細な情報を取得したいとき、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コマンドでパラメータの設定をします。
設定方法は以下のフォーマットで設定できます。
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]が必要になります。
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
CentOS
さいごに
今回はnmcliコマンドについてまとめました。もしipアドレスを設定したのに、うまく接続できない、反映されない場合は、nmcliコマンドを使用してみるといいかもしれません。
コメント