ふと思い立って押し入れに眠っていたラズパイ3にUbuntu Serverでも入れてみようと思い立ったものの、WiFi接続の方法やIPの固定の仕方が分からなかったので備忘録として残しておきます。
Ubuntu Server 22.04のインストールに関しては、公式からダウンロードできるRaspberry Pi Imagerを用いてインストールするのが一番良いかと思います。
動作環境
- Raspberry Pi 3
- Ubuntu Server 22.04(Raspberry Pi Imagerでインストール)
- netplan + systemd-networkd(Ubuntu Serverの標準構成)
Ubuntu Server 24.04で同じことをやる手順はUbuntu Server 24.04でのWiFi接続設定&IP固定に別途まとめています。設定ファイルの構造自体は同じですが、インストーラ側で設定できる部分が増えています。
WiFi接続&IP固定
WiFiの接続設定とIPの固定は同じ設定ファイル上で行います。
編集するファイル
/etc/netplan/50-cloud-init.yaml
設定内容
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
wifis:
renderer: networkd
wlan0: # Wifiの設定
access-points:
"接続したいSSID":
password: "パスワード"
addresses:
- 192.168.1.10/24 # 固定したいIP
routes:
- to: default
via: 192.168.1.1 # デフォルトゲートウェイ
nameservers:
addresses:
- 192.168.1.1 # DNS
dhcp4: false # IP固定したいのでDHCPは無効にする
optional: true
以上の設定をしたら以下のコマンドでチェックする。
sudo netplan try
以下の表示が出るので問題なければEnterを押して設定を反映する。
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 117 seconds
以上でWiFiへの接続とIP固定は完了です。
設定ファイルのパーミッションを変更しておく
一つ注意点があります。この設定ファイルにはWiFiのパスワードが平文で書かれています。
Ubuntuの標準では、このファイルのパーミッションが644(他のユーザからも読める状態)になっていることがあり、netplanを実行すると次のような警告が出ます。
Warning: Permissions for /etc/netplan/50-cloud-init.yaml are too open. Netplan configuration should NOT be accessible by others.
動作自体には影響しませんが、サーバに複数のユーザアカウントがある場合、一般ユーザがWiFiのパスワードを読めてしまいます。root以外から読めないようにしておくのが安全です。
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
複数人で使うサーバでの権限設計についてはチーム向けLinuxファイルサーバ構築:権限設定とユーザ管理にまとめました。
netplan try が使えない場合
netplan try は、設定を適用して一定時間内にEnterが押されなければ自動で元に戻す、という安全機構です。設定を間違えてネットワークごと切断されたときに復旧できるので、リモートで作業する場合は基本的にこちらを使います。
ただし、環境によっては netplan try がうまく動作しないことがあります。その場合は直接適用します。
sudo netplan apply
こちらは自動で元に戻らないため、設定を間違えるとSSHで入れなくなります。ラズパイのように後からモニタとキーボードを直結できる環境なら問題ありませんが、そうでない場合は事前に設定内容をよく確認してから実行してください。
適用しても繋がらない場合は、次のコマンドで生成された設定と実際の状態を確認できます。
sudo netplan get # 現在の設定内容を確認
networkctl status wlan0 # インタフェースの状態を確認
設定後にSSHのパスワード認証がうまくいかない場合はUbuntu Server 22.04でSSH接続のパスワード認証を有効に出来ないを参照してください。Ubuntu Server 24.04での手順はUbuntu Server 24.04でのWiFi接続設定&IP固定にあります。