nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ネットワーク管理コマンド > nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も
「nmcliコマンドを打ったけど、オプションが多すぎて何をすればいいか分からない」
「静的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アドレスをすぐ確認できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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 # ネットワーク機能の有効/無効

サブコマンドは省略形が使えます。`connection` は `con`、`device` は `dev` と入力しても動作します。

現在のネットワーク状態を確認する

1. デバイスの状態を確認する

まず現在のNICとIPアドレスを確認します。

# デバイス一覧と状態を表示 nmcli device status # または省略形 nmcli dev status

実サーバーでの出力例:

DEVICE TYPE STATE CONNECTION ens3 ethernet connected ens3 lo loopback unmanaged --

STATE が `connected` であれば正常に接続されています。`disconnected` や `unavailable` の場合は物理リンクやケーブルを確認してください。

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

`ipv4.method` が `manual` なら静的IP、`auto` ならDHCPです。
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

※ `down` を実行するとSSH接続が切断されます。リモート作業の場合は、`down && up` を1行で実行することで再接続できる可能性が高まります。
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

静的IPの設定を残したままmethodをautoにすると、DHCPで取得したアドレスと静的アドレスが両方有効になることがあります。切り替え時は必ず addresses・gateway・dns も空にしてください。

新しい接続プロファイルを追加する

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"

`con-name` は接続プロファイルの名前(任意)、`ifname` はNIC名(物理デバイス名)です。

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

削除した設定は `/etc/NetworkManager/system-connections/` から該当の .nmconnection ファイルも削除されます。復元するにはバックアップが必要なので、削除前にコピーを取る習慣をつけましょう。

トラブルシュート・エラー対処

「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 接続名
nmcliは最初に覚えるオプションが多く感じますが、「show(確認)→ modify(変更)→ down/up(反映)」の3ステップを身につけるだけで、現場の大半のネットワーク作業をこなせるようになります。
Linux DNS 設定の基本Linux ポート確認の全コマンドも組み合わせると、ネットワークトラブルの切り分けがさらにスムーズになります。

ネットワーク設定を含めた、安定したサーバー運用の基礎を固めませんか?

nmcliによるネットワーク設定はサーバー運用の基礎の一つですが、ユーザー管理・ファイアウォール・ログ監視と合わせて体系的に身につけることで、現場で頼られる存在になれます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。