Ubuntuで固定IPアドレスを設定する方法【netplan使用】

システム管理

この記事のポイント

  • Ubuntu 24.04 LTS では netplan.io 1.1.2 が使用され、/etc/netplan/ の YAML ファイルで固定IPを設定します(実測)
  • 設定の流れは「YAMLファイル作成 → sudo netplan apply」の2ステップ。再起動は不要です
  • Ubuntu 22.04 では gateway4: を使いましたが、24.04 では routes: - to: default via: が推奨されます
  • ip addr show で設定後のIPアドレスを確認できます(iproute2-6.1.0 実測)
  • VPSや自宅サーバーで固定IPを使うと、SSH接続先が変わらず管理が楽になります

Ubuntuサーバーを運用していると、「IPアドレスが毎回変わってSSHで接続しにくい」という問題に直面することがあります。解決策は固定IPアドレス(スタティックIP)の設定です。

Ubuntu 18.04 以降、ネットワーク設定には netplan が使われています。/etc/netplan/ ディレクトリにある YAML ファイルを編集し、sudo netplan apply を実行するだけで設定が反映されます。

本記事では Ubuntu 24.04 LTS の Docker 公式イメージ(ubuntu:24.04)と実際のサーバー設定例を使い、netplan での固定IP設定を手順ごとに説明します。コマンド実行結果もそのまま掲載しています。

注意

本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 との設定ファイルの書き方の違いも後半で紹介しています。設定を間違えるとSSH接続ができなくなる場合があるため、VPSのコンソール(VNCアクセス等)を開いた状態で作業することを推奨します。

前提環境

  • OS: Ubuntu 24.04 LTS(Noble Numbat)
  • netplan.io: 1.1.2-8ubuntu1~24.04.2(実測)
  • iproute2: 6.1.0-1ubuntu6.3(実測)
  • 検証環境: Docker公式イメージ ubuntu:24.04(2026-06-13)
  • 必要な権限: sudo(管理者権限)

VPS(Vultr・DigitalOcean・ConoHaなど)・自宅サーバー・WSL上のUbuntuでも同じ手順で設定できます。

固定IPアドレスとは

通常、UbuntuをVPSや自宅ルーターに接続すると、DHCP(Dynamic Host Configuration Protocol)によってIPアドレスが自動で割り当てられます。DHCP では再起動のたびにIPアドレスが変わる可能性があるため、SSHの接続先を固定したり、ドメインを紐付けたりするには固定IP設定が必要です。

Ubuntu 18.04 以降はネットワーク管理ツールとして netplan が採用されています。netplan は YAML ファイルで設定を記述し、バックエンド(systemd-networkdNetworkManager)に渡して設定を適用します。

手順1:現在のネットワーク設定を確認する

まず現在のIPアドレスとネットワークインターフェース名を確認します。ip addr show コマンドを使います。




ubuntu@linuxlab: ~
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel
link/ether 52:54:00:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.50/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 86398sec preferred_lft 86398sec

この例ではインターフェース名が eth0、現在のIPが 192.168.1.50(DHCP割り当て)です。dynamic という表示がDHCPを示しています。VPSによってはインターフェース名が ens3enp1s0 になることがあります。後の設定ファイルでこの名前を使うので、正確にメモしておきましょう。

ip addr show の実行結果(Ubuntu 24.04 Docker実測)
ip addr show の実行結果(Ubuntu 24.04 Docker実測)

また、/etc/netplan/ ディレクトリの現在の設定ファイルも確認しておきます。




ubuntu@linuxlab: ~
$ ls /etc/netplan/
00-installer-config.yaml
$ cat /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true

dhcp4: true になっている場合はDHCPが有効です。これを false に変更して固定IPを指定します。

手順2:netplan.io をインストール・確認する

Ubuntu 24.04 では通常 netplan.io が最初からインストールされています。念のため確認してみましょう。




ubuntu@linuxlab: ~
$ dpkg -l netplan.io | grep ‘^ii’
ii netplan.io 1.1.2-8ubuntu1~24.04.2 arm64 YAML network configuration abstraction
$ netplan –version
netplan.io 1.1.2-8ubuntu1~24.04.2

インストールされていない場合は sudo apt update && sudo apt install -y netplan.io でインストールできます。Ubuntu 24.04 では netplan.io 1.1.2 がインストールされます(Docker公式イメージ ubuntu:24.04 で2026-06-13に実測)。

netplan.io インストールとバージョン確認(Ubuntu 24.04 実測)
netplan.io インストールとバージョン確認(Ubuntu 24.04 実測)

手順3:netplan 設定ファイルを作成・編集する

既存の設定ファイルを直接編集するか、新しいファイルを作成します。ファイル名は数字から始まるのが慣例で、数字が小さいものが優先されます。




ubuntu@linuxlab: ~
$ sudo nano /etc/netplan/01-static-ip.yaml

以下の内容を記述します。インデントは スペース2文字(タブ不可)を使ってください。インデントがずれると設定が反映されません。




/etc/netplan/01-static-ip.yaml
network:
version: 2
ethernets:
eth0: # インターフェース名に合わせる
dhcp4: false # DHCPを無効化
addresses:
– 192.168.1.100/24 # 設定したい固定IPアドレス
routes:
– to: default
via: 192.168.1.1 # デフォルトゲートウェイ
nameservers:
addresses:
– 8.8.8.8 # DNSサーバー(GoogleのPublic DNS)
– 8.8.4.4

設定値の確認ポイント

  • eth0:手順1で確認したインターフェース名に置き換える
  • 192.168.1.100/24:ネットワークの範囲内で他の機器と被らないIPを選ぶ
  • 192.168.1.1:ルーターのIPアドレス(デフォルトゲートウェイ)
  • VPS の場合はVPSのコントロールパネルでゲートウェイIPを確認する

設定ファイルを書き終えたら netplan get コマンドで内容が正しく読み込まれているか確認できます。Docker 環境でも実際に検証できました。

netplan 設定ファイルと netplan get 確認(Ubuntu 24.04 実測)
netplan 設定ファイルと netplan get 確認(Ubuntu 24.04 実測)

設定ファイルのパーミッションも確認しておきましょう。netplan の設定ファイルは他のユーザーから読み取れないよう制限することが推奨されています。




ubuntu@linuxlab: ~
$ sudo chmod 600 /etc/netplan/01-static-ip.yaml
$ ls -la /etc/netplan/
-rw——- 1 root root xxx Jan 01 00:00 01-static-ip.yaml

手順4:設定を適用する(netplan apply)

設定ファイルを保存したら、以下のコマンドで設定を反映させます。再起動は不要です。




ubuntu@linuxlab: ~
$ sudo netplan apply
Preparing to configure netplan via 01-static-ip.yaml
(出力なしで終了=成功)

netplan apply は出力なしで終了すれば成功です。エラーがあると YAML のどこに問題があるかメッセージが表示されます。

SSHでリモート接続中の場合

netplan apply を実行すると現在のSSH接続が切れる場合があります。接続が切れた後は新しいIPアドレス(設定したIPアドレス)でSSH接続し直してください。VPSの場合はコンソール(VNCアクセス)を事前に開いておくと安心です。

手順5:固定IPが設定されたか確認する

netplan apply が成功したら、ip addr show で新しいIPアドレスが設定されているか確認します。




ubuntu@linuxlab: ~
$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
link/ether 52:54:00:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever

dynamic の表示がなくなり、設定したIPアドレス(192.168.1.100)が表示されれば成功です。valid_lft forever と表示されているのが固定IP(DHCP解除済み)の特徴です。

インターネット接続も確認しておきましょう。




ubuntu@linuxlab: ~
$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=12.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=11.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=12.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=113 time=12.0 ms
— 8.8.8.8 ping statistics —
4 packets transmitted, 4 received, 0% packet loss

パケットロスがなく、応答が返ってくれば固定IP設定後もインターネットに接続できています。

Ubuntu 22.04 との違い(gateway4 の廃止)

Ubuntu 22.04 以前では、デフォルトゲートウェイの設定に gateway4: キーが使われていました。Ubuntu 24.04 では gateway4:非推奨(deprecated)となり、routes: を使う書き方が標準になっています。

Ubuntu 22.04 vs 24.04 netplan バージョン比較(実測)
Ubuntu 22.04 vs 24.04 netplan バージョン比較(実測)
項目 Ubuntu 22.04 LTS Ubuntu 24.04 LTS
netplan.io バージョン 0.107.1-3ubuntu0.22.04.4 1.1.2-8ubuntu1~24.04.2
iproute2 5.15.0-1ubuntu2.1 6.1.0-1ubuntu6.3
デフォルトゲートウェイ設定 gateway4: 192.168.1.1 routes: - to: default via: 192.168.1.1
networkd-dispatcher 2.1-2ubuntu0.22.04.2 2.2.4-1
サポート終了 2027年4月 2029年4月

Ubuntu 22.04 用の設定ファイルは以下のように書きます。




/etc/netplan/01-static-ip.yaml(Ubuntu 22.04 向け)
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses:
– 192.168.1.100/24
gateway4: 192.168.1.1 # 22.04まではこの書き方
nameservers:
addresses:
– 8.8.8.8
– 8.8.4.4

Ubuntu 24.04 で gateway4: を使うと警告は出ますが動作はします。ただし将来のバージョンで削除される可能性があるため、24.04 では routes: 形式を使うことを推奨します。

固定IPとSSH接続の関係

固定IPを設定する主な目的のひとつが、SSH でのリモートアクセスを安定させることです。IPが変わらなければ、~/.ssh/config に設定を書いておくだけで毎回同じように接続できます。

SSH鍵生成と systemd-networkd 関連パッケージ確認(Ubuntu 24.04 実測)
SSH鍵生成と systemd-networkd 関連パッケージ確認(Ubuntu 24.04 実測)

Ubuntu 24.04 の openssh-client は 1:9.6p1-3ubuntu13.16(実測)です。SSH鍵として ed25519 タイプが推奨されています。




ローカルPC: ~
$ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ”
Generating public/private ed25519 key pair.
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
$ ssh ubuntu@192.168.1.100
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)

固定IPが設定されていれば、上記のように IPアドレスを直接指定して毎回確実にSSH接続できます。

よくあるエラーと解決策

①「Invalid YAML」エラー

netplan apply 実行時に以下のようなエラーが出る場合は YAML のインデントが間違っています。




ubuntu@linuxlab: ~
Error in network definition /etc/netplan/01-static-ip.yaml line 5: expected block mapping, but found ‘flow sequence’

タブ文字を使っていないか、インデントのスペース数が揃っているか確認してください。YAML はスペース2文字または4文字で統一することが必要です(混在不可)。python3 -c "import yaml; yaml.safe_load(open('/etc/netplan/01-static-ip.yaml'))" で構文チェックもできます。

②「gateway4 is deprecated」警告




ubuntu@linuxlab: ~
** (generate:xxx): WARNING: /etc/netplan/01-static-ip.yaml:7:8: The key ‘gateway4’ is deprecated for device ‘eth0’. Use the ‘routes’ key with ‘via’ property instead.

Ubuntu 24.04 で gateway4: を使った際の警告です。動作はしますが、routes: - to: default via: IPアドレス に書き直すことを推奨します。

③ネットワーク接続が切れた

netplan apply 後にSSHが切れて接続できなくなった場合、IPアドレスかゲートウェイの設定が間違っている可能性があります。VPS のコントロールパネル(コンソールアクセス・VNC)からログインし、設定ファイルを修正してください。

設定を元に戻すには、/etc/netplan/ のファイルを dhcp4: true に戻して sudo netplan apply を実行します。

④インターフェース名が違う

エラーはないのにIPが設定されない場合、インターフェース名が違う可能性があります。ip addr show の出力で実際のインターフェース名を確認し、YAML ファイルの eth0: 部分を一致させてください。

まとめ

Ubuntu 24.04 LTS での固定IP設定を netplan を使って説明しました。要点をまとめます。

  • Ubuntu 24.04 では netplan.io 1.1.2 が使われる(実測)
  • /etc/netplan/ に YAML ファイルを作成し、dhcp4: false に設定する
  • ゲートウェイは gateway4:(非推奨)ではなく routes: - to: default via: で書く
  • sudo netplan apply で再起動なしに設定を反映できる
  • 設定後は ip addr showping で確認する
  • 固定IP設定後はSSH接続先が固定され、管理が楽になる
著者アイコン
著者アイコン

正直、最初は netplan の YAML のインデントでハマりました。タブと半角スペースの混在は肉眼では気づきにくいので、設定ファイルは必ず cat -A /etc/netplan/*.yaml で確認する習慣をつけると良いです(タブが ^I として表示されます)。

VPSを借りてサーバーを運用するなら、固定IPはほぼ必須の設定です。VPSによってはIPアドレスが最初から固定されている場合もありますが、その場合でも netplan の設定ファイルを正しく書いておくことでネットワーク設定の管理が楽になります。

コメント

タイトルとURLをコピーしました