
nmcli(Network Manager command-line)は、nmtuiと同様にNMと通信を行いネットワークの設定を行うツールです。 nmcliは、nmtuiと同等の機能を提供するので、通常のネットワーク設定は、視覚的に分かりやすいnmtuiを使用すればよいですが、 より詳細な情報を知りたい場合や、ネットワークの設定を変更するスクリプトなどを作成する場合、 nmcliコマンドを使うと良いでしょう。
なお、設定を参照するコマンドは一般ユーザで実行可能ですが、変更を行う作業はroot権限が必要なので sudoを付加しています。
nmcli コマンドは以下のように実行します。
$ nmcli [オプション] オブジェクト { コマンド | ヘルプ }
主に使用するオプション
-h: ヘルプを表示する。
-p: 読みやすい形式で出力する
-a: パラメーターが足りない場合問い合わせる
-w: 動作完了までのタイムアウトを設定する
オブジェクト
g[eneral]: NetworkManagerの全般的な状態と動作
c[onnection]: NetworkManagerの接続状況
d[evice]: NetworkManagerで管理しているデバイス
n[etworking]: ネットワーク制御に関する全般
r[adio]: NetworkManagerラジオスイッチ
ヘルプは、
$ nmcli help
$ nmcli オブジェクト help
$ nmcli オブジェクト コマンド help
NetworkManager の全般的ステータスを表示します。
$ nmcli general status
状態 接続性 WIFI ハードウェア WIFI WWAN ハードウェア WWAN
接続済み 完全 有効 有効 有効 有効
コマンドは以下のように全て短縮して実行できます。
$ nmcli g s
状態 接続性 WIFI ハードウェア WIFI WWAN ハードウェア WWAN
接続済み 完全 有効 有効 有効 有効
NetworkManager のログ情報を表示します。
$ nmcli general logging
レベル ドメイン
INFO
PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD
ログレベルの変更は以下のとおり。
$ sudo nmcli general logging level DEBUG
全ての接続情報を表示します。
$ nmcli connection show
名前 UUID タイプ デバイス
MyAccessPoint e42fe936-7168-11e6-a370-bbf03d6838e9 802-11-wireless wlp4s0
enp3s0 eec7e786-7168-11e6-9cc8-5f5aeb5d59a8 802-3-ethernet enp3s0
Buffalo-G-XXXX f1137e56-7168-11e6-894b-3bb595740d07 802-11-wireless -- <- 設定が保存されているが未接続の場合
NetworkManager が認識するデバイスとその状態を表示します。
$ nmcli device show
GENERAL.デバイス: enp0s3
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 08:00:00:11:22:33
GENERAL.MTU: 1500
GENERAL.状態: 10 (管理無し)
GENERAL.接続: --
GENERAL.CON パス: --
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.0.5/24
IP4.ゲートウェイ: 192.168.0.1
IP6.アドレス[1]: fe80::a00:27ff:0011:2233/64
nmcliでEthernetの設定をする場合。
プロファイルを追加します。
インターフェイス名 プロファイル名
$ sudo nmcli connection add type ethernet ifname enp0s3 con-name enp0s3
プロファイルを削除します。
プロファイル名
$ sudo nmcli connection delete enp0s3
アドレスの手動設定。
プロファイル名 IPアドレス/サフィックス ゲートウェイ DNS
$ sudo nmcli connection modify enp0s3 ipv4.method manual ipv4.addresses 192.168.0.5/24 ipv4.gateway 192.168.0.1 ipv4.dns 8.8.8.8
アドレスのDHCP設定
プロファイル名 IPアドレスの設定はauto
$ sudo nmcli connection modify enp0s3 ipv4.method auto
IPエイリアスの設定
追加
$ sudo nmcli connection modify enp0s3 +ipv4.addresses "10.1.1.3/24"
$ sudo nmcli connection up enp0s3
削除
$ sudo nmcli connection modify enp0s3 +ipv4.addresses "10.1.1.3/24"
$ sudo nmcli connection up enp0s3
nmcliでnmcliでWi-Fi の設定をする場合。
プロファイルを追加します。
インターフェイス名 プロファイル名 SSID
$ sudo nmcli connection add type wifi ifname wlp4s0 con-name wlp4s0 ssid SSID
Wi-Fiアクセスポイントに接続する場合
SSID パスワード
$ sudo nmcli device wifi connect SSID password PASSWORD
利用可能な Wi-Fi アクセスポイントを表示する場合。
$ nmcli device wifi list
* SSID モード CHAN レート 信号 バー セキュリティ
* MyAccessPoint インフラ 5 54 Mbit/s 76 ▂▄▆_ WPA1 W
logitec5555 インフラ 1 54 Mbit/s 42 ▂▄__ WP
Buffalo-G-0000 インフラ 1 54 Mbit/s 22 ▂___ WPA
Buffalo-G-1111 インフラ 9 54 Mbit/s 19 ▂___ WPA
aterm-222222-g インフラ 2 54 Mbit/s 17 ▂___ WPA1 WPA
:
インターフェイスの起動停止
$ sudo nmcli connection down enp0s3
$ sudo nmcli connection up enp0s3
Wi-Fiの開始、停止する場合。
$ nmcli radio wifi on
$ nmcli radio wifi off
ホスト名を表示する
$ nmcli general hostname
ubuntu
ホスト名を変更する。
$ sudo nmcli general hostname myserver
nmcli ツールには、接続タイプを対話形式で選択することが出来る、 インタラクティブ接続エディターというものがあります。 以下のように設定ウィザード形式で設定が行えます。
以下のように設定ウィザード形式で設定が行えます。
$ sudo nmcli connection edit
(process:28550): nmcli-CRITICAL **: check_valid_name: assertion 'val' failed
有効な接続タイプ: generic, 802-3-ethernet (ethernet), pppoe, 802-11-wireless (wifi), wimax, gsm, cdma, infiniband, adsl, bluetooth, vpn, 802-11-olpc-mesh (olpc-mesh), vlan, bond, team, bridge,
bond-slave, team-slave, bridge-slave, no-slave, tun, ip-tunnel, macvlan, vxlan
接続タイプを入力してください: ethernet <- 接続タイプを ethernet に設定。
nmcli> describe ipv4 <- ipv4 の設定方法を表示
<<< ipv4 >>>
=== [method] ===
[NM プロパティの詳細]
IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support "auto", "manual", and "link-local". See the subclass-specific documentation for other values. In general, for the "auto"
method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties
modify this behavior. For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty. For IPv4 method "shared", the IP subnet can be configured by adding
one manual IPv4 address or otherwise 10.42.x.0/24 is chosen.
:
nmcli> set ipv4.method auto
nmcli> save <- 設定完了後は保存します。
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (はい/いいえ) [はい] はい
接続 'ethernet-1' (111ffe9f-34db-41d4-b5f7-024573add7fa) が正常に保存されました。
nmcli> quit <- 終了します。
※ nmtui、nmcli コマンドで設定した値は、
CentOS の場合
/etc/sysconfig/network-scripts/ifcfg-プロファイル名
Ubuntu の場合
/etc/NetworkManager/system-connections/デバイス名
に保存されます。
/etc/sysconfig/network-scripts/ifcfg-XXX
TYPE="Ethernet"
BOOTPROTO=none
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="XXX"
UUID="8a2048e1-f1f4-4ea0-0000-112233445566"
DEVICE="XXX"
ONBOOT="yes"
DNS1=192.168.0.1
IPADDR=192.168.0.2
PREFIX=24
GATEWAY=192.168.0.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
/etc/NetworkManager/system-connections/XXX
[connection]
id=enp3s0
uuid=255a5141-6499-450a-0000-112233445566
type=ethernet
interface-name=XXX
permissions=
secondaries=
[ethernet]
mac-address-blacklist=
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto