
長年CentOS(RHEL系)でサーバーを触ってきた管理人ですが、新サーバーへブログを移転するにあたり、WordPressの構築・管理ツールとして定評のある「WordOps」を導入しようとしたところ、これがRed Hat系(CentOSなど)に非対応で、Debian系/Ubuntuしか使えないことが判明。
背に腹は代えられないということで、今回、涙をのんで初のUbuntuサーバーを構築するに至りました。
結論から言うと、「ネットワーク周りのお作法が全然違う」ので、CentOS感覚で突っ込むと一瞬で迷子になります。今回はその違いを交えながら、UbuntuでのIP固定化(Netplan)の手順をメモしておきます。
🚨 最大の違い:NetworkManager(nmcli)は使わない
CentOS Stream 9であれば、IPの固定はみんな大好き nmcli コマンドを使うか、/etc/NetworkManager/system-connections/ 配下の .nmconnection ファイルをいじりますよね。
- CentOS 9の場合:
nmcli connection modify...で一発。 - Ubuntuの場合: 基本は Netplan(ネットプラン) という仕組みを使い、
/etc/netplan/にある YAMLファイル を直接書き換えます。
1. ネットワークカード名(インターフェース名)を調べる
ここは両者同じです。まずは固定したいNICの名前を確認します。
ip aCentOSだと enp0s3 や eth0 だったりしますが、Ubuntuでも同様に enp3s0 などの名前が出てくるので、それを控えておきます。
2. YAMLファイルを編集する(ここが本番)
Ubuntuのネットワーク設定は、すべて /etc/netplan/ の中にあるYAMLファイルで管理されています。
ls /etc/netplan/※ 01-netcfg.yaml や 50-cloud-init.yaml のようなファイルが1つ転がっているはずです。これを nano や vim で開きます。
sudo nano /etc/netplan/01-netcfg.yaml中身を以下のように書き換えます。
network:
version: 2
renderer: networkd
ethernets:
enp3s0: # ここにさっき確認したNIC名
dhcp4: no
addresses:
- 192.168.1.100/24 # 固定したいIPアドレス
routes:
- to: default
via: 192.168.1.1 # ルーター(ゲートウェイ)のIP
nameservers:
addresses:
- 8.8.8.8 # DNSサーバー
- 1.1.1.1- インデントはスペースのみ:YAML形式なので、タブ文字を使うとパースエラーで怒られます。スペース2個ずつで綺麗に揃えるのが鉄則です。
- gateway4は非推奨:古いネットのトピックスだと
gateway4: 192.168.1.1と書かれていることが多いですが、今のUbuntuでは非推奨(Deprecated)です。上記のようにroutes➔viaで書くのがナウいやり方です。
3. 設定を適用する(Ubuntuの超優秀な安全機能)
CentOS Stream9なら nmcli connection up や systemctl restart NetworkManager を叩いて一発ですが、Ubuntuには神コマンドがあります。
sudo netplan tryこれを叩くと、設定を一時的にテストしてくれます。 もし設定をミスってSSHが切断されてしまっても、120秒間何も入力がなければ、自動的に元の設定にロールバック(復元)してくれます。リモート作業でサーバーを孤立させる恐怖がないので、これはCentOSにも欲しいレベルで優秀な機能です。
画面に「設定キープする?(Enter押して)」的なメッセージが出て、通信が死んでいなければ、そのままEnterを押すか、以下で本適用します。
sudo netplan apply最後に ip a で指定したIPに変わっていれば完了です!
💡 おまけ:DNS設定が反映されているか確認する罠(CentOSとの違い)
IPと同時にDNS(8.8.8.8 など)を設定したあと、CentOSユーザーなら確認のために /etc/resolv.conf を覗きたくなりますよね。
ですが、Ubuntuでそれをやるとこうなっています。
nameserver 127.0.0.53「あれ?設定したGoogleのDNSが反映されてない!?」と焦る必要はありません。 Ubuntuはデフォルトで systemd-resolved というDNSキャッシュの仕組みが動いており、すべてのDNS問い合わせを一度ローカルの 127.0.0.53 に集約する仕様になっています。
本当にNetplanで設定したDNSが裏で認識されているか確認したいときは、以下のコマンドを叩きます。
resolvectl statusコマンドを叩いて、出力の最後に以下のように自分が設定したDNS(DNS Servers)が表示されていれば、内部的には大成功でカチッと反映されています。
Link 2 (enp3s0)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS :
DNS Servers: 8.8.8.8
1.1.1.1まとめ
長年CentOS(RHEL系)のコマンドを体に染み込ませてきた身としては、YAMLファイルを直接いじるUbuntuの「Netplan」は最初はかなり戸惑いました。
ですが、設定ミスでSSHが切断されても自動で巻き戻してくれる netplan try の優秀さを知ると、「Ubuntuもなかなかやるじゃないか」と思わされます。
お作法は違えど、狙い通りのIPとDNSがカチッと反映され、通信が通ればこちらのもの。
結論:なんか動いたからヨシ!
今後もWordOpsの運用のためにUbuntuと付き合っていくことになるので、またCentOSユーザー目線で「おや?」と思った小手先の設定云々があればメモを残していきます。
今回は以上です。お疲れ様でした!



コメント