Raspberry Pi で新しいNetworkManagerの固定IP化設定、nmcliコマンド

ネットワークの設定ファイルをみてみよう

先ず、中身をみる前に、NAME、UUID、TYPE、DEVICEといった情報から見ていきます。
一度分かれば済む話です。

表示するコマンドは、次のどれか。

nmcli c
または

nmcli con
または

nmcli connection
または

nmcli connection show

 

ウチの環境だとこんな感じですね。

NAME          UUID                                  TYPE      DEVICE  
XXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXXXXXXXXXX4d7bb4d2e  wifi      wlan0   
docker0       2715a57e-7dc5-48ba-95bb-b630844c34c7  bridge    docker0 
lo            1cb012bf-2fea-4a9a-b911-3270c51edc19  loopback  lo      
有線接続 1    5911eb2f-3d03-35ee-94a0-e8bd7d98c846  ethernet  --

ここで知りたいのは、主にNAMEとDEVICEです。

画像はWi-Fiで繋がっている状態で、NAMEとUUIDは隠していますが、NAMEにはSSID名が採用されているハズです。

では次に、設定ファイルを見てみます
Raspberry Pi Imagerで設定したなら以下にあります。

sudo nano /etc/NetworkManager/system-connections/SSIDから付けられているID名.nmconnection

 

中身をみてみます。

[connection]
id=XXXXXXXXXX
uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXX4d7bb4d2e
type=wifi
interface-name=wlan0
timestamp=1699793657

[wifi]
mode=infrastructure
ssid=XXXXXXXXXX

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

[ipv4]
method=auto

[ipv6]
addr-gen-mode=default
method=auto

[proxy]

色々とありますね。
確認したいのは、idとssidが同じですよね。

IPアドレスを固定化するのに、ここにある接続IDに紐付いた[ipv4]セクションを書き換えます。
このまま手動で書き換えてもOKです。

例えば、ゲートウェイ(ルーターの)が192.168.1.1、固定IPアドレスを192.168.1.39と設定したい場合

[ipv4]
method=manual
address1=192.168.1.39/24,192.168.1.1

 

methodをautoからmanualに変更し、IPアドレス、サブネットマスク、デフォルトゲートウェイの順番で、デフォルトゲートウエイとの区切りはカンマで繋げます。

address1はmethod=manualとセットで記述し、autoなら要りません。

コマンドで実行する

手動でも何ら問題はありませんが、設定ファイルの場所を覚えるより、1行コマンドで実行すると楽ちんです。

次のようになります。

sudo nmcli con mod "SSIDから付けられているID" ipv4.method "manual" ipv4.addresses "192.168.1.39/24" ipv4.gateway "192.168.1.1" 

 

SSIDから付けられている名前も含め、tabキーで補完入力できます。

もしipv6を無効化するならdisabledにします。

sudo nmcli con mod "SSIDから付けられているID" ipv6.method disabled

 

コマンドでの修正設定はこれだけです。

修正したものを適用させる(再起動なし)

このままでは反映していませんから適用させます。

再起動をしなくても修正した設定を適用させることはできます。

SSHで作業している場合はコネクションが切れますので、新たにSSH接続し直してください。

sudo nmcli connection reload
sudo nmcli connection up SSIDから付けられているID

 

IPアドレスを確認する。

ip a
または

ip -4 a
または

ip -4 a show dev wlan0

 

こんなエラーの解決法

ネットワーク関連をイジっていて、sudoしたらホスト名のエラーに出くわすことがあります。

sudo: ホスト hostname の名前解決ができません: 名前またはサービスが不明です

 

/etc/hostsファイルを見直すと良いでしょう。

sudo nano /etc/hosts

 

ここの最下段にホスト名を追記します。

127.0.1.1    hostname

 

hostnameがrpios12としたら、127.0.1.1 rpios12とします。空白はTABキーで入れておきましょう。

ちなみに、hostnameは、/etc/hostnameと同じにしないとなりません。

まとめ

コマンドで行えば、.nmconnectionを編集しなくても良くて楽です。設定ファイルの場所を覚えられないですからね。

まとめとしてもう一度書いておきます。

sudo nmcli con mod "SSIDから付けられている名前NAME" ipv4.method "manual" ipv4.addresses "固定化したいアドレス/24" ipv4.gateway "ルーターのIPアドレス" 

 

変更を適用する。

sudo nmcli connection reload
sudo nmcli connection up 設定変更したSSIDから付けられている名前

 

初めての場合、nmcliのヘルプを見ておくと良いでしょう。

nmcli --help
nmcli connection --help

 

コマンドであるconnectionは省略してconとも書け更にcでも良く、続けて修正するmodifyもmodと書けます。
分かりやすく、一文字だとオプションと間違えやすいので、con modでしょうか。

NAMEとDEVICE名を一緒にするといった情報を見ました。
細かい設定はまだたくさんあります。また調べて検証してみます。

一先ず、Raspberry Pi で固定IP化する最低限の手法はこれで良いので試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です