Linuxコマンド辞典 nmcli・nmtuiコマンド(ネットワーク)
NetworkManagerを利用してネットワーク設定を行う「nmcli」コマンドと疑似的なGUI操作で設定できる「nmtui」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS
概要・使用方法
書式
$ nmtui
nmtuiは「Network Manager」の主な設定、操作をテキストベースのインターフェースで行えるコマンドです。GUI環境がないシステムでも疑似的にGUI操作が可能です。
書式
$ 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インターフェイス