Linux nmcli コマンド
nmcli とは
nmcli は NetworkManager のコマンドラインツールで、Linux システムでネットワーク接続を設定・管理するために使用します。NetworkManager の公式クライアントであり、GUI よりも強力で柔軟なネットワーク管理機能を提供します。
nmcli の主な特徴
- 全機能サポート:NetworkManager のほぼすべての機能を網羅
- スクリプトに優しい:自動化スクリプトやリモート管理に最適
- 依存関係なし:GUI 不要、純粋なコマンドライン操作
- リアルタイムフィードバック:コマンド実行結果を即座に表示
nmcli 基本構文
nmcli の基本コマンド形式は次のとおりです:
nmcli [OPTIONS] OBJECT { COMMAND | help }
よく使う OBJECT タイプ
general:ネットワーク全体の制御networking:無線ネットワークのオン/オフradio:ネットワーク接続設定connection:ネットワークデバイス管理device:ネットワークデバイス管理
よく使う OPTIONS オプション
| オプション | 説明 |
|---|---|
-t |
簡潔な出力(スクリプト処理に適する) |
-p |
見やすい出力(より読みやすい) |
-h |
ヘルプ情報を表示する |
-v |
バージョン情報を表示する |
よく使う nmcli コマンドの詳細
1. ネットワーク状態の確認
NetworkManager 全体の状態を確認:
例
nmcli general status
出力例:
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled enabled enabled
2. ネットワーク接続の管理
すべてのネットワーク接続を一覧表示:
例
nmcli connection show
接続の有効化/無効化:
例
nmcli connection up 「接続名」
nmcli connection down 「接続名」
nmcli connection down 「接続名」
3. ネットワークデバイスの管理
すべてのネットワークデバイスを一覧表示:
例
nmcli device status
出力例:
DEVICE TYPE STATE CONNECTION eth0 ethernet 已连接 有线连接 1 wlan0 wifi 已断开 -- lo loopback 未托管 --
デバイスの詳細情報を確認:
例
nmcli device show eth0
無線ネットワーク管理
利用可能な WiFi ネットワークのスキャン
例
nmcli device wifi list
WiFi ネットワークへの接続
例
nmcli device wifi connect 「SSID名」 password 「パスワード」
新しい WiFi 接続設定の作成
例
nmcli connection add type wifi ifname wlan0 con-name 「マイWiFi」 ssid 「SSID名」
nmcli connection modify 「マイWiFi」 wifi-sec.key-mgmt wpa-psk
nmcli connection modify 「マイWiFi」 wifi-sec.psk 「パスワード」
nmcli connection modify 「マイWiFi」 wifi-sec.key-mgmt wpa-psk
nmcli connection modify 「マイWiFi」 wifi-sec.psk 「パスワード」
有線ネットワーク設定
静的 IP 接続の作成
例
nmcli connection add type ethernet ifname eth0 con-name 「静的接続」 \
ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli connection modify 「静的接続」 ipv4.dns "8.8.8.8,8.8.4.4"
ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli connection modify 「静的接続」 ipv4.dns "8.8.8.8,8.8.4.4"
既存の接続を DHCP に変更
例
nmcli connection modify 「接続名」 ipv4.method auto
上級の使い方
VPN 接続の作成
例
nmcli connection add type vpn vpn-type openvpn \
con-name 「マイVPN」 ifname tun0 \
vpn.data "remote=vpn.example.com, username=user, password=pass"
con-name 「マイVPN」 ifname tun0 \
vpn.data "remote=vpn.example.com, username=user, password=pass"
ブリッジの作成
例
nmcli connection add type bridge ifname br0 con-name 「マイブリッジ」
nmcli connection add type bridge-slave ifname eth0 master br0
nmcli connection add type bridge-slave ifname eth0 master br0
VLAN の作成
例
nmcli connection add type vlan ifname eth0.100 con-name "VLAN100" \
dev eth0 id 100 ip4 192.168.100.100/24
dev eth0 id 100 ip4 192.168.100.100/24
よくある問題の解決
1. ネットワークデバイスに「未管理」と表示される
例
# NetworkManager.conf を確認する
cat /etc/NetworkManager/NetworkManager.conf
# unmanaged-devices 設定がある場合は、関連する行をコメントアウトする
# その後、NetworkManager を再起動する
systemctl restart NetworkManager
cat /etc/NetworkManager/NetworkManager.conf
# unmanaged-devices 設定がある場合は、関連する行をコメントアウトする
# その後、NetworkManager を再起動する
systemctl restart NetworkManager
2. 接続パスワードを忘れた場合
例
nmcli connection show 「接続名」 | grep psk
3. ネットワーク設定のリセット
例
nmcli connection reload
実践演習
- nmcli を使用して自分の WiFi ネットワークに接続する
- 静的 IP の有線接続を作成する
- 利用可能なすべての WiFi ネットワークをスキャンして一覧表示する
- 現在アクティブな接続の詳細情報を確認する
まとめ
nmcli は Linux システムのネットワーク管理における強力なツールです。この記事の学習を通じて、次のことができるようになります:
- nmcli の基本概念と構文構造を理解する
- nmcli を使用して有線および無線ネットワーク接続を管理する
- 静的 IP と DHCP 接続を設定する
- よくあるネットワーク接続の問題に対処する
nmcli を習得することで、GUI のないサーバー環境でも効率的にネットワークを管理できます。これは Linux システム管理者にとって重要なスキルの一つです。
その他の拡張