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 とは
静的 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 が切れたときは、次の順で戻します。
- ハイパーバイザーやクラウドのコンソール(VMware / Hyper-V のコンソール、AWS の EC2 シリアルコンソール、VPS の VNC)からログインする。
- netplan なら、作ったファイルを削除するか元の内容に戻して
sudo netplan apply。nmcli ならsudo nmcli connection modify ens192 ipv4.method auto ipv4.addresses "" ipv4.gateway ""で DHCP に戻し、nmcli connection up ens192。 - 戻ったら、間違いを直してやり直す。
よくある誤りは、ゲートウェイが自分のサブネットの外にある(/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 のサーバー移転での注意を追加)。この記事はワードプレス博士(ライトセンド株式会社)が運営しています。