2026年9月2日

2026年9月2日

サーバーに静的 IP アドレスを設定する手順|Ubuntu の netplan・RHEL 系の nmcli・クラウドの固定 IP の考え方

サーバーに静的 IP を設定する手順は、Ubuntu なら /etc/netplan/ の YAML に dhcp4: false と addresses・routes・nameservers を書いて netplan try、RHEL 系なら nmcli connection modify で ipv4.method manual と ipv4.addresses を指定して nmcli connection up です。どちらも書く内容は「IP アドレス / プレフィックス長、ゲートウェイ、DNS」の 3 つで、確認は ip a と ip r で行います。

結論を先にまとめます。

  • 自宅や社内の物理サーバー・仮想マシンでは、OS の中で静的 IP を設定します(またはルーターの DHCP で MAC アドレスに固定の IP を割り当てます)。
  • クラウドや VPS では OS の中で固定しません。 IP はクラウド側が DHCP で配り、固定したいときは Elastic IP(AWS)、静的パブリック IP(Azure)、静的外部 IP アドレス(Google Cloud)のように、クラウド側で予約して割り当てます。OS 側で勝手に固定すると、クラウドのネットワークと食い違って切断されます。
  • 設定ミスで SSH が切れると戻せなくなるので、netplan try(自動で元に戻る)や、コンソール(VNC・シリアルコンソール)を開いた状態で作業します。
  • WordPress のサーバー移転で IP が変わるときは、DNS の TTL を先に短くしておくと切り替えの待ち時間を減らせます。
静的 IP を設定する 4 段階。現在の設定を確認、設定ファイルを書く、安全に反映して確認、DNS や FW を更新

静的 IP とは

静的 IP アドレスとは、DHCP で自動的に割り当てられて変わる可能性のあるアドレス(動的 IP)に対して、手動で固定したアドレスのことです。サーバーは他の機器から「決まった住所」で参照されるため、原則として固定します。

用語 意味
IP アドレスとプレフィックス長 192.0.2.10/24 のように書く。/24 はサブネットマスク 255.255.255.0 と同じ
デフォルトゲートウェイ 自分のネットワークの外へ出るときに渡すルーターのアドレス
DNS サーバー 名前解決に使うサーバー。ルーターや 1.1.1.1・8.8.8.8 など
インターフェース名 eth0、enp0s3、ens192 など。ip link で確認する

静的 IP には「ネットワーク内のプライベート IP を固定する」話と、「インターネットから見えるグローバル IP を固定する」話があります。この記事は前者(OS の設定)が中心で、後者はクラウドの節で扱います。

手順 1: 現在の設定を確認する

まず、いまのアドレス・インターフェース名・ゲートウェイ・DNS を控えます。

ip -br address
ip route show default
resolvectl status | grep -A3 "Current DNS"

ip -br address でインターフェース名と現在の IP が、ip route show default で default via 192.0.2.1 dev enp0s3 のようにゲートウェイが分かります。固定するアドレスは、ルーターの DHCP が配る範囲の外から選ぶか、ルーター側で予約します。他の機器と重複すると両方が不安定になります。

手順 2: Ubuntu / Debian(netplan)で設定する

Ubuntu 18.04 以降は netplan で設定します。既存のファイルを確認します。

ls /etc/netplan/
sudo cat /etc/netplan/*.yaml

クラウドのイメージでは 50-cloud-init.yaml が置かれていることがあります。これは cloud-init が生成するもので、直接編集すると再生成で上書きされます。その場合は別名のファイル(例: /etc/netplan/01-static.yaml)を作り、cloud-init のネットワーク設定を無効にする手順(Ubuntu の公式ドキュメントに記載)を踏みます。クラウドではそもそも OS で固定しない、という後述の原則も思い出してください。

静的 IP の設定例です。インターフェース名・アドレス・ゲートウェイ・DNS は自分の環境の値に置き換えます。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: false
      addresses:
        - 192.0.2.10/24
      routes:
        - to: default
          via: 192.0.2.1
      nameservers:
        addresses:
          - 192.0.2.1
          - 1.1.1.1

古い記事に出てくる gateway4: は非推奨で、routes: の to: default の書き方に置き換わっています。YAML はインデントが意味を持つので、タブではなく空白で揃えます。ファイルの権限は sudo chmod 600 /etc/netplan/01-static.yaml にしておきます(緩いと警告が出ます)。

反映は、まず try で行います。

sudo netplan try

netplan try は設定を適用したあと 120 秒待ち、その間に Enter を押さなければ元の設定に戻します。SSH が切れて何も押せなければ自動で戻るので、遠隔作業の安全装置になります。新しいアドレスで SSH をつなぎ直して問題なければ、Enter で確定します(sudo netplan apply でも同じ結果になります)。

手順 3: RHEL 系(AlmaLinux / Rocky Linux / Fedora)で設定する

RHEL 系は NetworkManager の nmcli で設定します。接続名を確認します。

nmcli connection show
nmcli device status

接続名(NAME 列、例: ens192)を使って、静的 IP に変更します。

sudo nmcli connection modify ens192 \
  ipv4.method manual \
  ipv4.addresses 192.0.2.10/24 \
  ipv4.gateway 192.0.2.1 \
  ipv4.dns "192.0.2.1 1.1.1.1"
sudo nmcli connection up ens192

接続名に空白が含まれる場合("Wired connection 1" など)は引用符で囲みます。設定は /etc/NetworkManager/system-connections/ に保存され、再起動後も有効です。反映で SSH が切れた場合に備え、クラウドやハイパーバイザーのコンソールを開いてから実行します。

確認は Ubuntu と同じです。

ip -br address
ip route show default
ping -c 3 1.1.1.1
getent hosts example.com

アドレス・ゲートウェイ・外部への疎通・名前解決の 4 つが通れば完了です。

手順 4: クラウド・VPS では OS で固定しない

AWS・Azure・Google Cloud・多くの VPS では、仮想マシンのプライベート IP はクラウド側が管理し、OS には DHCP で渡しています。OS の中で別の値に固定すると、クラウドの仮想ネットワークが知っているアドレスと食い違い、通信できなくなります。

やりたいこと 正しいやり方
プライベート IP を固定したい クラウド側で VM に割り当てた IP は、VM を停止・起動しても原則変わらない(AWS EC2 のプライマリプライベート IP など)。必要なら「静的」として予約する
グローバル IP を固定したい AWS: Elastic IP を割り当てる。Azure: パブリック IP の割り当てを「静的」にする。Google Cloud: 静的外部 IP アドレスを予約して VM に付ける
OS の中で何か設定する しない。DHCP のままにする

グローバル IP を予約せずに VM を停止・起動すると、クラウドによっては別のグローバル IP になります。WordPress サイトを載せている VM では、最初に静的なグローバル IP を割り当てておきます。

手順 5: 切断されたときの復旧

設定を誤って SSH が切れたときは、次の順で戻します。

  1. ハイパーバイザーやクラウドのコンソール(VMware / Hyper-V のコンソール、AWS の EC2 シリアルコンソール、VPS の VNC)からログインする。
  2. netplan なら、作ったファイルを削除するか元の内容に戻して sudo netplan apply。nmcli なら sudo nmcli connection modify ens192 ipv4.method auto ipv4.addresses "" ipv4.gateway "" で DHCP に戻し、nmcli connection up ens192。
  3. 戻ったら、間違いを直してやり直す。

よくある誤りは、ゲートウェイが自分のサブネットの外にある(/24 なのに別の第 3 オクテットを書いた)、インターフェース名の綴り違い、YAML のインデント崩れ、の 3 つです。

WordPress の観点

WordPress 自体は IP アドレスを直接意識しませんが、サーバーの IP が変わる場面では次の点に関わります。

  • サーバー移転: 新サーバーのグローバル IP に DNS の A レコードを向け替えます。切り替え前に TTL を短く(300 秒程度)しておくと、旧サーバーを見続ける時間が短くなります。移転の手順と費用は「サーバー移行(引っ越し)を頼む場合の費用・期間・準備」を参照してください。
  • IP で制限している設定: .htaccess や Nginx の allow で管理画面を社内 IP に限定している場合、社内側の IP が変わるとログインできなくなります。社内の回線が動的 IP なら、固定 IP のオプションか VPN を使います。
  • 送信元 IP の評判: VPS で IP が変わると、メール送信の評判(レピュテーション)や、外部サービスに登録した許可 IP も更新が必要です。

よくある質問

ルーターの DHCP で固定するのと OS で固定するのはどちらがよいですか

小規模な社内ネットワークなら、ルーター側で MAC アドレスに IP を予約する方法(DHCP 予約)が管理しやすいです。OS 側の設定を変えずに済み、重複も起きません。ルーターに予約機能が無い、またはネットワーク機器を自分で管理していない場合は OS 側で固定します。

netplan apply のあと SSH が切れました

netplan try を使えば 120 秒で自動的に元に戻ります。apply で切れた場合はコンソールから入り、設定ファイルを戻して再度 apply します。クラウドの VM なら、OS で固定したこと自体が原因のことが多いので、DHCP に戻します。

IPv6 も固定する必要がありますか

IPv6 を使っているなら、同じファイル・同じコマンドで addresses に IPv6 アドレスを追加し(netplan は dhcp6: false と routes に to: default、nmcli は ipv6.method manual と ipv6.addresses)、固定できます。使っていなければそのままで構いません。

DNS サーバーは何を指定すればよいですか

社内ならルーターや社内 DNS のアドレス、無ければ 1.1.1.1(Cloudflare)や 8.8.8.8(Google)のような公開 DNS です。2 つ以上書いておくと、1 つが止まっても名前解決が続きます。

まとめ

  • 静的 IP の設定は、Ubuntu は netplan の YAML(dhcp4: false、addresses、routes、nameservers)、RHEL 系は nmcli connection modify で行い、ip a・ip r・ping・名前解決で確認します。
  • 遠隔作業では netplan try やコンソールを使い、切断されても戻せる状態で反映します。
  • クラウド・VPS では OS で固定せず、Elastic IP や静的パブリック IP をクラウド側で予約して割り当てます。

関連記事

参考: Netplan documentation、Ubuntu Server – Configuring networks、Red Hat – Configuring an Ethernet connection by using nmcli、AWS – Elastic IP addresses

更新履歴: 2026-11-09 全面改訂(定型の手順を、netplan と nmcli の具体的な設定例、クラウドで OS 固定をしない理由、切断時の復旧手順に置き換え、WordPress のサーバー移転での注意を追加)。この記事はワードプレス博士(ライトセンド株式会社)が運営しています。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲