Ubuntu 22.04 では、サーバーのネットワーク設定に Netplan を使用します。Netplan は /etc/netplan/*.yaml に書いた設定を読み取り、systemd-networkd や NetworkManager 向けの設定へ変換する仕組みです。
この記事は、Ubuntu 22.04 を前提にした既存環境や当時の構築記録を確認するための記事です。新規構築では Ubuntu 26.04 側の記事を優先しつつ、22.04 環境を読み解くための基礎として参照してください。
- Netplan と renderer の役割
- 現在のインターフェース名と設定ファイルの確認
- DHCP と固定 IP の基本的な書き方
gateway4ではなくroutesを使う考え方netplan tryとnetplan applyの使い分け
| 対象 OS | Ubuntu 22.04 Server |
|---|---|
| 設定ファイル | /etc/netplan/*.yaml |
| サーバーでよく使う renderer | systemd-networkd |
| デスクトップでよく使う renderer | NetworkManager |
| 反映前確認 | netplan generate, netplan try |
| 本反映 | netplan apply |
書籍
Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server のネットワーク設定や運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Netplan の役割
Netplan は、ネットワーク設定を直接管理し続ける常駐プロセスではありません。YAML の設定を読み取り、実際にインターフェースを制御する renderer へ設定を渡します。
- Ubuntu Server では
systemd-networkdを使う構成が多い - Ubuntu Desktop では
NetworkManagerを使う構成が多い - どちらを使うかは
rendererの指定やインストール時の構成で変わる - YAML のインデントやファイル権限の不備で反映に失敗することがある
enp1s0 は環境に合わせて変更してください。現在の設定を確認する
設定を変更する前に、現在のインターフェース名、IP アドレス、ルート、Netplan ファイルを確認します。
ip link
ip address
ip route
ip -6 route
ls -l /etc/netplan
sudo cat /etc/netplan/*.yamlip link でインターフェース名を確認し、ip address と ip route で現在のアドレスとルートを見ます。Netplan の設定例を使う場合は、この名前とネットワークアドレスを自分の環境に合わせます。
DHCP の設定例
検証環境や一時的なサーバーでは、DHCP のまま使う方が扱いやすいことがあります。Ubuntu Server のインストーラーが生成する設定も、初期状態では DHCP になることがあります。
sudo install -d -o root -g root -m 0755 /etc/netplan
sudo tee /etc/netplan/00-main.yaml >/dev/null <<'EOF'
network:
version: 2
ethernets:
enp1s0:
dhcp4: true
EOF
sudo chmod 600 /etc/netplan/00-main.yamlIPv6 も DHCPv6 や RA を使う場合は、ネットワーク側の設計に合わせて dhcp6 や RA の扱いを確認します。単純な検証では、まず IPv4 DHCP で通信できることを確認してから固定 IP へ進むと切り分けやすくなります。
固定 IP の設定例
サーバー用途では、管理しやすいように固定 IP を設定することがあります。次は IPv4 と IPv6 のアドレス、DNS、デフォルトルートを同じファイルにまとめる例です。
sudo cp -a /etc/netplan /etc/netplan.bak.$(date +%Y%m%d%H%M%S)
sudo tee /etc/netplan/00-main.yaml >/dev/null <<'EOF'
network:
version: 2
ethernets:
enp1s0:
addresses:
- 10.0.33.112/24
- fd00::a00:2170/120
nameservers:
addresses:
- 10.0.33.160
- fd00::a00:21a0
routes:
- to: default
via: 10.0.33.1
- to: default
via: fd00::a00:2101
EOF
sudo chmod 600 /etc/netplan/00-main.yamlこの例では、enp1s0 に IPv4 と IPv6 のアドレスを設定し、DNS サーバーとデフォルトルートも指定しています。実際に使う場合は、アドレス、prefix、gateway、DNS を環境に合わせて変更します。
gateway4 ではなく routes を使う
古い例では gateway4 を使う設定が見つかります。Ubuntu 22.04 の既存記事や当時のメモを読む場合も、この書き方が残っていることがあります。
現在は、デフォルトルートも routes で書く形に寄せると、IPv4 と IPv6 を同じ考え方で扱いやすくなります。既存環境で gateway4 が動いている場合に即座に壊す必要はありませんが、新しく書く設定例では routes を優先します。
| 古い例で見かける書き方 | gateway4: 10.0.33.1 |
|---|---|
| 寄せたい書き方 | routes: に to: default と via: を書く |
| 利点 | IPv4 / IPv6 のデフォルトルートを同じ構造で扱える |
反映前に構文を確認する
Netplan は YAML のインデントに敏感です。SSH で作業している場合、設定ミスはそのまま切断につながることがあります。まず netplan generate で構文を確認します。
sudo netplan generateエラーが出た場合は、該当行のインデント、コロン、リストの書き方、ファイル名を確認します。YAML ではタブではなくスペースを使います。
netplan try と netplan apply の使い分け
SSH 接続中にネットワーク設定を変える場合は、可能なら netplan try を使います。一定時間内に確認できなければ設定を戻すため、設定ミスで接続を失うリスクを下げられます。
sudo netplan try問題ないことを確認してから、本反映します。
sudo netplan applynetplan try は有用ですが、あらゆる環境で完全な保険になるわけではありません。設定後の確認
設定反映後は、アドレス、ルーティング、DNS、疎通を順番に確認します。どこで失敗しているかを分けて見ると、設定ミスの場所を見つけやすくなります。
ip address show enp1s0
ip route
ip -6 route
resolvectl status
ping -c 3 10.0.33.1
ping -c 3 8.8.8.8
getent hosts example.comIP アドレスが付いていない場合は Netplan のインターフェース名を確認します。デフォルトルートがない場合は routes の to: default と via: を確認します。名前解決だけ失敗する場合は nameservers と resolvectl status を確認します。
ファイル権限の警告に対応する
Netplan の設定ファイルの権限が広すぎると、次のような警告が出ることがあります。
Permissions for /etc/netplan/00-main.yaml are too open. Netplan configuration should NOT be accessible by others.設定ファイルは root だけが読める権限にします。
sudo chown root:root /etc/netplan/*.yaml
sudo chmod 600 /etc/netplan/*.yamlSSH 作業時の注意
- 作業前に現在の
/etc/netplanをバックアップする - 設定例のインターフェース名をそのまま使わない
- SSH 接続中は
netplan tryを優先する - 重要なサーバーではコンソール復旧手段を用意する
- IP アドレス、ルート、DNS、疎通を分けて確認する
まとめ
Ubuntu 22.04 の Netplan 設定では、/etc/netplan/*.yaml に DHCP、固定 IP、DNS、デフォルトルートを記述します。サーバーでは固定 IP を使う場面が多い一方、設定ミスは SSH 切断につながるため、反映前の確認が重要です。
既存環境では古い gateway4 の例が残っていることがあります。新しく書く設定では routes を使い、IPv4 と IPv6 のデフォルトルートを同じ形で扱うと読みやすくなります。設定後はアドレス、ルート、DNS、疎通の順に確認します。

