サーバーのIPアドレスが再起動のたびに変わってしまうと、SSHで接続できなくなったり、他のサーバーからの参照が切れたりして運用になりません。サーバーには、再起動しても変わらない「固定IPアドレス」を割り当てるのが基本です。
ひと昔前は /etc/sysconfig/network-scripts/ifcfg-eth0 のようなファイルを直接編集する方法が定番でしたが、現在の主要ディストリビューションではやり方が変わっています。この記事では、現行標準である nmcli(NetworkManager)と netplan(Ubuntu)での設定方法を、検証と切り戻しまで含めて解説します。
なぜ固定IPが必要か
ネットワーク機器から自動でIPをもらう仕組み(DHCP)では、割り当てられるIPが変わることがあります。クライアントPCならそれで困りませんが、常に同じ住所でアクセスされるサーバーでは不都合です。そこで、サーバー側に「このIPを使い続ける」と固定で設定します。これが固定IP(静的IP)です。
固定IPを設定するときは、最低限つぎの情報を決めておきます。手元に控えてから作業に入ると、途中で迷いません。
- IPアドレス(例:192.168.1.50)とサブネット(例:/24)
- デフォルトゲートウェイ(例:192.168.1.1)
- DNSサーバー(例:192.168.1.1 や 8.8.8.8)
現在のIPと接続方法を確認する
まず、現状を確認します。どのインターフェース(NIC)を設定するのかを把握するのが最初のステップです。
# インターフェース名と現在のIPを確認
ip a
# 例: ens192, eth0, enp0s3 などの名前で表示される
# NetworkManager 管理下の接続を確認(RHEL系など)
nmcli connection show
いまのインターフェース名(eth0 とは限らず、ens192 や enp0s3 のこともあります)を控えておきます。以降の手順ではこの名前を使います。
手順①:nmcli で固定IPを設定する(NetworkManager)
AlmaLinux / Rocky Linux など、NetworkManager を使う環境では nmcli で設定します。接続名を ens192、固定IPを 192.168.1.50/24 とする例です。
# IPアドレス・ゲートウェイ・DNSを設定し、手動(固定)に切り替える
sudo nmcli connection modify ens192 \
ipv4.addresses 192.168.1.50/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "192.168.1.1 8.8.8.8" \
ipv4.method manual
# 設定を反映(接続を入れ直す)
sudo nmcli connection up ens192
ipv4.method manual が「DHCPをやめて固定にする」指定です。この設定は NetworkManager が設定ファイルとして保存するため、再起動しても維持されます。旧来のように設定ファイルを手で書く必要はありません。
手順②:netplan で固定IPを設定する(Ubuntu)
Ubuntu サーバーでは netplan を使います。/etc/netplan/ にある YAML ファイルを編集します(ファイル名は環境により異なります)。
# 例: /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
ens192:
dhcp4: false
addresses:
- 192.168.1.50/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 8.8.8.8]
YAML はインデント(字下げ)が崩れると読み込めません。半角スペースで揃え、タブは使わないよう注意します。編集したら、まず安全確認をしてから適用します。
# 文法チェックと、一定時間で自動的に元へ戻る安全な適用
sudo netplan try
# 問題なければ確定
sudo netplan apply
netplan try は、新しい設定を試しに適用し、一定時間内に確定操作をしなければ自動で元に戻す機能です。設定ミスで接続できなくなっても勝手に復旧するため、リモート作業では特に有効です。
設定を検証する
# 意図したIPが設定されたか確認
ip a show ens192
# ゲートウェイへ到達できるか
ping -c 3 192.168.1.1
# 名前解決と外部到達の確認
ping -c 3 www.example.com
IPアドレス・ゲートウェイ・DNSの3つがそろって初めて「使える固定IP」です。IPが付いていても、ゲートウェイやDNSの設定を忘れると外部に出られません。3点セットで確認します。
事故を防ぐ・切り戻す
IPアドレスの変更で最も多い事故は、作業中の自分のSSH接続が切れて、二度と入れなくなることです。IPを変えるとその瞬間に古いIPでの接続は切断されます。次の備えをしてから作業してください。
- コンソールを確保する:万一SSHが切れても操作できるよう、物理コンソール・仮想化基盤のコンソール・シリアル接続などの代替経路を用意しておく
- 自動で戻る仕組みを使う:netplan なら
netplan try、NetworkManager でも設定前の状態を控えておき、すぐ戻せるようにする - 変更前の設定を記録する:
nmcli connection show ens192や現行のYAMLを保存しておけば、同じ値に戻せる
切り戻しは、設定した値を元のIP(またはDHCP)に戻すだけです。nmcli なら ipv4.method auto でDHCPに戻せます。「切り戻せる状態を作ってから変更する」という順番を守れば、締め出し事故はほぼ防げます。
2026年の現行環境での違い
- ifcfg 直接編集は非推奨:
/etc/sysconfig/network-scripts/ifcfg-*を手で書き、ifdown/ifupする旧来の方法は、現行の主要ディストリビューションでは非推奨または廃止されています。RHEL系は NetworkManager(nmcli)へ、Ubuntu は netplan へ移行しました。 - インターフェース名が固定的な命名に:
eth0ではなくens192やenp0s3のような、ハードウェア位置に基づく名前が既定です。設定前にip aで実際の名前を確認してください。 - クラウドでは注意:クラウド(AWS/GCP等)のインスタンスは、OS内で固定IPを設定するのではなく、基盤側でIPを割り当てる設計が一般的です。OS内で勝手に固定化するとかえって接続できなくなることがあるため、クラウドでは基盤側の手順に従います。
まとめ
再起動しても変わらない固定IPは、現在では nmcli(NetworkManager)か netplan(Ubuntu)で設定します。IP・ゲートウェイ・DNSの3点を決め、設定後は ip a と ping で検証する。そして何より、リモート作業ではSSHの締め出しに備えてコンソールを確保し、netplan try のような自動で戻る仕組みを使う。旧来の ifcfg 編集にこだわらず、現行の標準ツールで、切り戻せる状態を作ってから変更するのが安全な運用です。

コメント