Wi‑Fi優先度付きSSID登録マニュアル(NetworkManager)
0. 事前準備
SSID_NEW="aaaaaaa"
PASS_NEW="password123"
IFACE="wlan0"
PRIO=20 # 既存最大より大きい値(例: 10 → 20)
PROFILE="${SSID_NEW}-prio${PRIO}"
1) 管理方式の確認(NetworkManager であること)
if command -v nmcli >/dev/null 2>&1; then echo "MODE=NetworkManager";
elif [ -f /etc/wpa_supplicant/wpa_supplicant.conf ]; then echo "MODE=wpa_supplicant";
else echo "MODE=unknown"; fi
2) 既存Wi‑Fiプロファイルの確認(優先度順)
nmcli -t -f NAME,TYPE connection show | grep -E ':(wifi|802-11-wireless)$' || echo "No saved wifi profiles"
for P in $(nmcli -t -f NAME,TYPE connection show | awk -F: '$2 ~ /(wifi|802-11-wireless)/{print $1}'); do
nmcli -g connection.id,802-11-wireless.ssid,connection.autoconnect,connection.autoconnect-priority \
connection show "$P" | paste -sd'\t' -
done | awk -F'\t' '{printf "PROFILE=%s\tSSID=%s\tAUTO=%s\tPRIO=%s\n",$1,$2,$3,($4==""?0:$4)}' \
| sort -t$'\t' -k4,4nr
3) 仕込み(まだ切り替えない)
現在のSSH接続を維持したまま、新SSIDを自動接続&高優先度で登録。
sudo nmcli connection add type wifi ifname "$IFACE" con-name "$PROFILE" ssid "$SSID_NEW"
sudo nmcli connection modify "$PROFILE" \
wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PASS_NEW"
sudo nmcli connection modify "$PROFILE" \
connection.autoconnect yes connection.autoconnect-priority "$PRIO"
- WPA3(SAE)専用APの場合:
sudo nmcli connection modify "$PROFILE" \
802-11-wireless.security wpa-psk wifi-sec.key-mgmt sae wifi-sec.psk "$PASS_NEW"
登録内容の確認
nmcli -g connection.id,802-11-wireless.ssid,connection.autoconnect,connection.autoconnect-priority \
connection show "$PROFILE"
※ この時点では切り替わらない。次回の再接続/再起動で新SSIDが最優先になる。
切替
sudo nmcli connection up "$PROFILE" ifname "$IFACE"
既存の優先度を変更する場合(優先度30に変更)
sudo nmcli connection modify "YOUR_SSID" connection.autoconnect-priority 30
切り替え
sudo nmcli connection up "YOUR_SSID"
メモ
-
connection.autoconnect-priority
は 数値が大きいほど優先 - NetworkManager は“安定接続中”は勝手に乗り換えない。即時切替は手動
connection up
を使う