宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「CentOS7でIPアドレスを固定したいけど、昔のifcfgファイル直編集でいいのか不安」
「nmcliの使い方が多すぎて、どれを覚えればいいか分からない」
CentOS7/RHEL7以降のLinuxでは、ネットワーク管理の仕組みがNetworkManager中心に切り替わりました。

この記事では、CentOS7/RHEL7系でのネットワーク設定方法について、NetworkManagerとnmcliコマンドを中心に、固定IPアドレス設定・DNS設定・デフォルトゲートウェイ・接続状態の確認・トラブル対処までを解説します。現場でそのまま使える実践コマンドを中心にまとめています。
【この記事でわかること】
・CentOS7/RHEL7以降はNetworkManagerが標準。設定はnmcliコマンドで行うのが現場流
・接続プロファイル単位で管理され、connectiondeviceの2階層を理解すれば全体像が掴める
・固定IP・DNS・ゲートウェイ・DHCP切り替えまで、nmcliだけで完結できる

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

CentOS7/RHEL7以降のネットワーク管理の仕組み

CentOS6以前は、/etc/sysconfig/network-scripts/ifcfg-*ファイルを直接編集し、service network restartで反映するのが一般的でした。CentOS7以降はNetworkManagerが標準となり、設定・反映・死活監視まで一元的に管理する仕組みに変わっています。

NetworkManager:ネットワーク接続を管理するデーモン。常時起動
nmcli:NetworkManagerを操作するコマンドラインツール
nmtui:テキストUI版。対話的に設定したい場合に便利
ifcfgファイル:nmcliで設定すると自動的に更新される。手動編集も可能だが、競合を避けるため推奨されない

基本的な使い方

1. 接続状態を確認する

まずは全体像を把握します。nmcliを引数なしで実行すると、現在の接続状況を一覧表示します。

# 全体のサマリを表示 nmcli # デバイス一覧 nmcli device status # 接続プロファイル一覧 nmcli connection show

2. IPアドレス・ゲートウェイ・DNSを確認する

特定のデバイスや接続の詳細を確認するには、次のようにします。

# デバイスの詳細情報 nmcli device show eth0 # 特定の接続プロファイルの設定 nmcli connection show eth0

3. 固定IPアドレスを設定する

接続プロファイルに対してIPv4の設定をまとめて反映します。反映にはconnection upが必要です。

# IPアドレス・ゲートウェイ・DNSを設定 sudo nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 sudo nmcli connection modify eth0 ipv4.gateway 192.168.1.1 sudo nmcli connection modify eth0 ipv4.dns "8.8.8.8 1.1.1.1" sudo nmcli connection modify eth0 ipv4.method manual # 設定を反映 sudo nmcli connection up eth0

4. DHCPに戻す

IPv4のmethodをautoに戻すだけでDHCPクライアントとして動作します。

# DHCPに切り替え sudo nmcli connection modify eth0 ipv4.method auto sudo nmcli connection modify eth0 ipv4.addresses "" sudo nmcli connection modify eth0 ipv4.gateway "" sudo nmcli connection up eth0

応用・実務Tips

DNS自動更新を止める(ipv4.ignore-auto-dns)

DHCP環境で/etc/resolv.confが勝手に書き換えられる問題は、ipv4.ignore-auto-dnsをyesにすることで防げます。

# DHCPから受け取るDNSを無視し、手動設定を優先 sudo nmcli connection modify eth0 ipv4.ignore-auto-dns yes sudo nmcli connection modify eth0 ipv4.dns "192.168.1.53" sudo nmcli connection up eth0

ホスト名を変更する

hostnamectlを使うのがCentOS7以降の標準です。

# ホスト名を変更 sudo hostnamectl set-hostname web01.example.com # 確認 hostnamectl

nmtui(対話モード)で設定する

コマンドを覚えきれない場合は、テキストUIのnmtuiを使うとメニュー形式で設定できます。

# テキストUIを起動 sudo nmtui

ifcfgファイルの場所と内容

nmcliで設定した内容は、最終的に以下のファイルに保存されます。設定の確認やバックアップに使います。

# 設定ファイルを確認 ls /etc/sysconfig/network-scripts/ifcfg-* cat /etc/sysconfig/network-scripts/ifcfg-eth0

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

設定を変更しても反映されない場合

nmcli connection up eth0を実行するか、NetworkManager自体を再起動してください。物理リンクがdownしている可能性もあるため、ip linkで状態を確認します。

# 接続を再適用 sudo nmcli connection up eth0 # NetworkManagerの再起動 sudo systemctl restart NetworkManager # リンク状態の確認 ip link

「Error: Connection activation failed」が出る場合

IPアドレスの重複、ゲートウェイ到達不可、無効なサブネットマスク指定などが典型的な原因です。journalctl -u NetworkManagerでログを追うと原因が掴めます。

# NetworkManagerのログを確認 sudo journalctl -u NetworkManager -xe

resolv.confが勝手に書き換わる場合

DHCPで受け取るDNSが上書きしています。前述のipv4.ignore-auto-dns yesを設定してください。

systemctl restart networkが使えない場合

CentOS8/RHEL8以降はnetworkサービス自体が廃止されました。NetworkManager一本に統一されているため、sudo systemctl restart NetworkManagerを使ってください。

本記事のまとめ

やりたいこと コマンド
接続・デバイスの状態確認 nmcli device status
接続プロファイルの一覧 nmcli connection show
固定IPアドレスの設定 sudo nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24
ゲートウェイの設定 sudo nmcli connection modify eth0 ipv4.gateway 192.168.1.1
DNSの設定 sudo nmcli connection modify eth0 ipv4.dns "8.8.8.8 1.1.1.1"
手動設定モードに切り替え sudo nmcli connection modify eth0 ipv4.method manual
DHCPに戻す sudo nmcli connection modify eth0 ipv4.method auto
設定を反映する sudo nmcli connection up eth0
ホスト名を変更する sudo hostnamectl set-hostname web01.example.com

CentOS/RHEL系のネットワーク設定を、迷いなく扱えるエンジニアになりませんか?

nmcliの使いこなしは、サーバー構築・障害対応・セキュリティ運用の全てに関わる基礎体力です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

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

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

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

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

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

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

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

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

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

この記事を書いた人

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

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

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