Linuxコマンド辞典 nmcli・nmtuiコマンド(ネットワーク)

linuxコマンド辞典 Linux
この記事は約16分で読めます。

NetworkManagerを利用してネットワーク設定を行う「nmcli」コマンドと疑似的なGUI操作で設定できる「nmtui」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS

使用頻度:3.0

スポンサーリンク

概要・使用方法

書式

$ nmtui

nmtuiは「Network Manager」の主な設定、操作をテキストベースのインターフェースで行えるコマンドです。GUI環境がないシステムでも疑似的にGUI操作が可能です。

GUI Network Manager画面イメージ
GUI Network Manager画面 IPアドレス設定画面イメージ

書式

$ nmcli [オプション] オブジェクト [コマンド]

最近のディストリビューションでは、ネットワークを管理するサブシステムとして「NetworkManager」が導入されています。はホストのネットワーク設定を管理するシステムです。GNOMEデスクトップ環境では、アプレットやGUI設定ツールなども用意されています。GUI環境がない場合は「nmcli」か「nmtui」というcurses版クライアントを利用します。nmcliは引数のオブジェクトとコマンドで「接続名」で設定を管理します。各「接続名」設定を変更しても、その「接続名」設定を再起動しないと有効になりません。

オプション

-t
–terese
簡単な表示で出力する
-p
–pretty
飾った表示で出力する
-m tabular | multiline
–mode tabulaer | multiline
tabularは表形式で、multilineは複数行形式で表示する(デフォルトはtabular)
-f フィールド1、・・・| all | common
–fields フィールド1,・・・|all|common
表示するフィールドを指定する「
-w 秒
–wait 秒
動作のタイムアウトを秒単位で指定する

オブジェクトとコマンド

オブジェクト 説明
g、general NetworkManagerの状態を扱う
status NetworkMangerの状態を表示する
hostname [ホスト名] 「ホスト名」を指定しないと現在のホスト名を表示する。指定するとそのホスト名に変更する
permissions 接続/切断のようなアクションの実行権限を表示する
logging [level レベル]
[domains ドメイン]
指定した「ドメイン」のログレベルを指定した「レベル」にする。ドメインとレベルはNetworkManager
n、networking ネットワーク全般を扱う
on ネットワークを有効にする
off ネットワークを無効にする
connectivity
[check]
ネットワーク状態を表示する
r、radio 無線接続を扱う(WiFiだけでなくWimaxも)
all[on|off] すべての無線接続をon/offする
wifi[on|off] すべてのWiFi接続をon/offする
wwan[on|off] モバイルブロードバンドをon/offする
wimax[on|off] WiMaxをon/offする
c、connection NetworkManagerの接続状態を扱う
show 接続情報を表示する
up 引数に渡す情報で接続を有効にする
down 引数に渡す情報で接続を無効にする
add 引数に渡す情報の新しい接続を追加する
modify 引数に渡す情報で接続を修正する
edit 対話エディタで新規追加/修正する
delete 引数に渡す情報の接続を削除する
reload すべての接続設定ファイルを読み直す
load ファイル名 ファイルから読み込んだ接続設定を読み込む
d、device NetworkManagerで管理するデバイスの状態扱う
status デバイスの状態を表示する

show インターフェイス名

デバイスの情報を表示する
connect インターフェイス名 デバイスを接続する
disconnect インターフェイス名 デバイスを切断する
wifi list WiFiアクセスポイントを表示する
wifi connect WiFiアクセスポイントに接続に行く
wifi rescan WiFiアクセスポイントを再建策する

NetworkManagerの状態を表示する

$ nmcli general status

実行結果

[root@centos ~]# nmcli general status
STATE     CONNECTIVITY  WIFI-HW  WIFI  WWAN-HW  WWAN 
接続済み  完全          有効     有効  有効     有効 
[root@centos ~]# 

接続を表示する

$ nmcli general status

実行結果

[root@centos ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
eth-1   c33e38a7-8d18-4f19-be73-db46410f318e  ethernet  eth0   
virbr0  11d9fc00-3f8e-4451-809c-7ecc1ab6c345  bridge    virbr0 
[root@centos ~]# 

現在設定されているIPアドレスを表示する

$ nmcli connection show インターフェイス名 | grep ipv4

実行結果

[rin@localhost ~]$ nmcli connection show eth0|grep ipv4
ipv4.method:                            manual
ipv4.dns:                               192.168.0.1
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.0.60/24
ipv4.gateway:                           192.168.0.1
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                いいえ
ipv4.ignore-auto-dns:                   いいえ
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                はい
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     いいえ
ipv4.may-fail:                          はい
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.dhcp-reject-servers:               --
[rin@localhost ~]$ 

接続名を変更する

$ nmcli connection modify 接続名(変更前) connection.id 接続名(変更後)

実行結果

[root@localhost ~]# nmcli connection show  #接続一覧を表示する
NAME    UUID                                  TYPE      DEVICE 
eth0    c33e38a7-8d18-4f19-be73-db46410f318e  ethernet  eth0   
virbr0  11d9fc00-3f8e-4451-809c-7ecc1ab6c345  bridge    virbr0 
[root@localhost ~]# nmcli connection modify eth0 connection.id eth-1 #接続名を変更する
[root@localhost ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
eth-1   c33e38a7-8d18-4f19-be73-db46410f318e  ethernet  eth0   
virbr0  11d9fc00-3f8e-4451-809c-7ecc1ab6c345  bridge    virbr0 
[root@localhost ~]# 

出力項目をカスタイマイズする

項目に日本語は指定不可

$ nmcli -f カスタイマイズ項目,・・・ c

実行結果

[root@localhost ~]# nmcli -f NAME,DEVICE,TIMESTAMP-REAL,AUTOCONNECT c
NAME    DEVICE  TIMESTAMP-REAL               AUTOCONNECT 
eth-1   eth0    2022年12月18日 11時35分41秒  はい        
virbr0  virbr0  2022年12月18日 11時35分41秒  いいえ      
[root@localhost ~]# 

ホスト名を変更する

$ nmcli general hostname ホスト名

実行結果

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# nmcli general hostname centos
[root@localhost ~]# hostname
centos
[root@localhost ~]# 

ログレベルを変更する

$ nmcli general loggin level DEBUG domains IP4

実行結果

[root@localhost ~]# nmcli general loggin level DEBUG domains IP4
[root@localhost ~]# journalctl -f
-- Logs begin at Sat 2022-12-17 19:57:59 JST. --
12月 18 11:38:14 centos NetworkManager[913]: <info>  [1671331094.2750] audit: op="hostname-save" arg="centos" pid=15746 uid=0 result="success"
12月 18 11:38:14 centos NetworkManager[913]: <info>  [1671331094.2751] hostname: static hostname changed from "localhost.localdomain" to "centos"
12月 18 11:38:14 centos NetworkManager[913]: <info>  [1671331094.2751] policy: set-hostname: current hostname was changed outside NetworkManager: 'centos'
12月 18 11:38:14 centos dbus-daemon[893]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' requested by ':1.9' (uid=0 pid=913 comm="/usr/sbin/NetworkManager --no-daemon ")
12月 18 11:38:14 centos systemd[1]: Started Hostname Service.
12月 18 11:38:14 centos systemd[1]: Starting Network Manager Script Dispatcher Service...
12月 18 11:38:14 centos dbus-daemon[893]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
12月 18 11:38:14 centos systemd[1]: Started Network Manager Script Dispatcher Service.
12月 18 11:38:24 centos systemd[1]: NetworkManager-dispatcher.service: Succeeded.
12月 18 11:38:44 centos systemd[1]: systemd-hostnamed.service: Succeeded.

IPアドレスを設定する

IPv4アドレスを手動設定にする

nmcli connection modify インターフェイス名 ipv4.method manual ipv4.addresses IPアドレス/サブネットマスク ipv4.gateway IPアドレス(デフォルトゲートウェイ) ipv4.dns IPアドレス(DNS)

実行結果

[root@centos ~]# nmcli connection modify eth-1 ipv4.method manual ipv4.addresses 192.168.0.60/24 ipv4.gateway 192.168.0.1 ipv4.dns 192.168.0.1

ダウンした後に自動的にアップも実行するようにする記述方法

[root@centos ~]# nmcli connection down eth-1;nmcli connection up eth-1
接続 'eth-1' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/4)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@centos ~]# 

名前解サーバーを指定する

DNSサーバを指定する

nmcli connection modify インターフェイス名 ipv4.dns "DNS IPアドレス ・・・"

IPアドレスを設定する

nmcli connection modify インターフェイス名 ipv4.dns-search "ドメイン"

実行結果

[root@centos ~]# nmcli connection modify eth-1 ipv4.dns "192.168.0.1 192.168.0.2" #DNSサーバを指定
[root@centos ~]# nmcli connection modify eth-1 ipv4.dns-search "example.jp"       #検索ドメイン名を指定
[root@centos ~]# nmcli connection down eth-1;nmcli connection up eth-1            #接続のダウン・アップ
接続 'eth-1' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@centos ~]# cat /etc/resolv.conf      #/etc/resolv.confを確認
# Generated by NetworkManager
search example.jp
nameserver 192.168.0.1
nameserver 192.168.0.2
[root@centos ~]# 

インタフェースがシステム起動時に有効になるように設定

/etc/sysconfig/network-scripts/ifcfg-eth0/ifcfg-<IF名>も変更される

nmcli connection modify インターフェイス名 connection.autoconnect yes

実行結果

[root@centos ~]# nmcli connection modify eth-1 connection.autoconnect yes
[root@centos ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth-1
UUID=c33e38a7-8d18-4f19-be73-db46410f318e
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.0.60
PREFIX=24
GATEWAY=192.168.0.1
DNS1=192.168.0.1
IPV6_PRIVACY=no
DNS2=192.168.0.2
DOMAIN=example.jp
[root@centos ~]# 

DHCPを利用するようにする

nmcli connection modify インターフェイス名 ipv4.method auto

IPv4アドレスを手動で設定する

nmcli connection modify インターフェイス名 ipv6.address fe80::75f5:1c39:17c1:aac6

周辺のSSIDを表示する

nmcli device wifi list

ネットワーク有効/無効にする

無効にする

nmcli network off

有効にする

nmcli network on

インタフェースを起動/停止する

起動にする

nmcli connection up インタフェース名

停止にする

nmcli connection down インタフェース名

無線LANインタフェースの状態を表示する

nmcli dev show 無線LANインターフェイス
タイトルとURLをコピーしました