「静的IPを設定したいのに、変更が反映されない」
NetworkManagerをコマンドラインで操作する nmcli は、RHEL系・Ubuntu系問わず現代Linuxのネットワーク管理に欠かせないコマンドです。
ifconfigやnetstatが非推奨になった今、現場では nmcli が事実上の標準になっています。
この記事では、nmcliコマンドの基本的な使い方から、静的IP設定・DHCP切り替え・接続の追加と削除まで、実務でよく使う操作を体系的に解説します。
RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。
この記事のポイント
・nmcli connection show でネットワーク接続を一覧確認できる
・静的IPはnmcli connection modifyで変更し、up/downで反映する
・接続の追加はnmcli connection add、削除はnmcli connection deleteで行う
・nmcli device status でNICの状態とIPアドレスをすぐ確認できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
nmcliとは何か?ifconfigとの違い
nmcliは「Network Manager Command Line Interface」の略で、NetworkManagerデーモンをコマンドラインから操作するツールです。従来の ifconfig・route・netstat コマンドは iproute2 パッケージの ip・ss コマンドに置き換わりましたが、設定の永続化まで担う nmcli はさらに上位の存在です。
・ifconfig:アドレスを一時的に変更するだけ(再起動で消える)
・ip addr add:同じく一時変更のみ
・nmcli:設定ファイル(/etc/NetworkManager/system-connections/)に書き込み、再起動後も設定が残る
本番サーバーのネットワーク設定を変更するなら nmcli が正解です。
nmcliの基本構文と主要サブコマンド
nmcliの基本構文は次のとおりです。# 基本構文 nmcli [オプション] サブコマンド [サブコマンドの操作] [引数] # 主要なサブコマンド nmcli general # 全体のステータス確認 nmcli connection # 接続プロファイルの管理 nmcli device # ネットワークデバイス(NIC)の管理 nmcli networking # ネットワーク機能の有効/無効
現在のネットワーク状態を確認する
1. デバイスの状態を確認する
まず現在のNICとIPアドレスを確認します。# デバイス一覧と状態を表示 nmcli device status # または省略形 nmcli dev status
DEVICE TYPE STATE CONNECTION ens3 ethernet connected ens3 lo loopback unmanaged --
2. 接続プロファイルの一覧を確認する
# 接続プロファイルの一覧 nmcli connection show # または省略形 nmcli con show
NAME UUID TYPE DEVICE ens3 a1b2c3d4-e5f6-7890-abcd-ef1234567890 ethernet ens3
3. 特定の接続プロファイルの詳細を確認する
# 接続名を指定して詳細を表示 nmcli connection show ens3 # IPアドレス関連の設定だけ抽出 nmcli connection show ens3 | grep -E "ipv4\.(address|gateway|dns|method)"
ipv4.method: manual ipv4.dns: 192.168.1.1 ipv4.addresses: 192.168.xxx.yyy/24 ipv4.gateway: 192.168.xxx.1
Linux ポート確認の全コマンドと組み合わせると、ネットワーク状態の全体像を素早く把握できます。
静的IPアドレスを設定する
1. IPアドレス・ゲートウェイ・DNSを設定する
静的IPを設定する基本コマンドは次のとおりです。# 静的IPアドレスを設定(サブネットマスク付き) nmcli connection modify ens3 ipv4.addresses 192.168.1.100/24 # デフォルトゲートウェイを設定 nmcli connection modify ens3 ipv4.gateway 192.168.1.1 # DNSサーバーを設定(複数ある場合はスペースで区切る) nmcli connection modify ens3 ipv4.dns "8.8.8.8 8.8.4.4" # 設定方式をDHCPから静的に変更 nmcli connection modify ens3 ipv4.method manual
2. 設定を反映させる
modify を実行しただけでは反映されません。接続を再起動して設定を有効にします。# 接続をいったん切断してから再接続(設定反映) nmcli connection down ens3 && nmcli connection up ens3 # または再起動せずにNetworkManagerへ再読み込みを指示 nmcli connection reload nmcli connection up ens3
Linux DNS 設定の基本も合わせて確認すると、DNSの設定が正しく反映されているか確認できます。
DHCPに切り替える
静的IPからDHCPへ変更したい場合は、method を `auto` に切り替えます。# DHCPに変更 nmcli connection modify ens3 ipv4.method auto # 静的IP設定を削除(DHCPと静的の両方が残ると競合する) nmcli connection modify ens3 ipv4.addresses "" ipv4.gateway "" ipv4.dns "" # 設定を反映 nmcli connection down ens3 && nmcli connection up ens3
新しい接続プロファイルを追加する
1. イーサネット接続を新規作成する
# DHCPでイーサネット接続を追加 nmcli connection add type ethernet con-name myconn ifname ens4 ipv4.method auto # 静的IPでイーサネット接続を追加(1コマンドで全オプションを指定) nmcli connection add \ type ethernet \ con-name myconn-static \ ifname ens4 \ ipv4.method manual \ ipv4.addresses 10.0.0.10/24 \ ipv4.gateway 10.0.0.1 \ ipv4.dns "10.0.0.1 8.8.8.8"
2. 作成した接続を有効にする
# 接続を起動 nmcli connection up myconn-static # 設定が正しく反映されたか確認 nmcli connection show myconn-static | grep -E "ipv4\.(address|gateway|dns|method)"
接続プロファイルを削除する
# 接続プロファイルを削除 nmcli connection delete myconn-static # 接続中の場合は自動的に切断されてから削除される # 削除後に確認 nmcli connection show
トラブルシュート・エラー対処
「Error: unknown connection」が出る時
接続名を間違えている可能性があります。`nmcli connection show` で正確な接続名を確認してください。# 接続名の一覧を確認(NAME列が接続名) nmcli connection show
変更しても設定が反映されない時
NetworkManagerのサービスが停止している可能性があります。# NetworkManagerのステータス確認 systemctl status NetworkManager # 停止していた場合は起動 systemctl start NetworkManager # 自動起動が無効になっていれば有効化 systemctl enable NetworkManager
静的IPを設定したのにDHCPのアドレスが残る時
前述のとおり、ipv4.method を manual に変更した後も古いDHCPリース情報が残ることがあります。# デバイスの現在のアドレス一覧を確認 ip addr show ens3 # 不要なアドレスが残っている場合は一時削除(再起動で消える) ip addr del 192.168.1.50/24 dev ens3 # NetworkManagerを再起動して設定を確実に再読み込み systemctl restart NetworkManager
nmcliが「NetworkManager is not running」と言う時
# サービスを起動 systemctl start NetworkManager # 起動後に一般ステータス確認 nmcli general status
本記事のまとめ
nmcliコマンドの主要な操作をまとめます。| やりたいこと | コマンド |
|---|---|
| デバイスの状態を確認する | nmcli device status |
| 接続プロファイルを一覧表示する | nmcli connection show |
| 接続の詳細を確認する | nmcli connection show 接続名 |
| 静的IPアドレスを設定する | nmcli connection modify 接続名 ipv4.addresses IP/マスク |
| ゲートウェイを設定する | nmcli connection modify 接続名 ipv4.gateway GW_IP |
| DNSサーバーを設定する | nmcli connection modify 接続名 ipv4.dns "DNS1 DNS2" |
| 静的IP設定に切り替える | nmcli connection modify 接続名 ipv4.method manual |
| DHCPに切り替える | nmcli connection modify 接続名 ipv4.method auto |
| 接続を再起動して設定を反映する | nmcli connection down 接続名 && nmcli connection up 接続名 |
| 新しい接続プロファイルを追加する | nmcli connection add type ethernet con-name 名前 ifname デバイス |
| 接続プロファイルを削除する | nmcli connection delete 接続名 |
Linux DNS 設定の基本やLinux ポート確認の全コマンドも組み合わせると、ネットワークトラブルの切り分けがさらにスムーズになります。
ネットワーク設定を含めた、安定したサーバー運用の基礎を固めませんか?
nmcliによるネットワーク設定はサーバー運用の基礎の一つですが、ユーザー管理・ファイアウォール・ログ監視と合わせて体系的に身につけることで、現場で頼られる存在になれます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:ausearchコマンドでLinuxの監査ログを検索・分析する方法|aureportでのレポート生成と実務活用も
- 前のページへ:blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法|fstabへの応用まで
- この記事の属するカテゴリ:Linuxtips・ネットワーク管理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます