2024/01/17(水)固定化IP(bullseye)
bullseye版の有線LANとWiFiの固定化IP(※2022年9月以前のOSはNetworkManagerのインストールから)
■ RaspiOSのbullseye版はIP設定をdhcpcdで管理しているがこれをNetworkManagerで管理するよう変更する。● WindowsのコマンドプロンプトからsshでRaspiへログインし作業を行う。(TeraTermだとnetworkを設定するので途中、通信不能になる場合がある)
C:\Users\usr_name> ssh pi@raspberrypi01 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes pi@raspberrypi01's password:***<---ここでRaspiのパスワードを聞かれるので入力 pi@raspberrypi01:~ $ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.51.138 netmask 255.255.255.0 broadcast 192.168.51.255 inet6 fe80::83aa:2980:df1c:4e9 prefixlen 64 scopeid 0x20<link> ether bc:5c:4c:e1:09:ca txqueuelen 1000 (Ethernet) RX packets 384 bytes 33732 (32.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 102 bytes 13180 (12.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 12 bytes 1738 (1.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 1738 (1.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.242 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::ed4:979e:ac64:b4cc prefixlen 64 scopeid 0x20<link> ether b8:27:eb:07:f8:cb txqueuelen 1000 (Ethernet) RX packets 335 bytes 31570 (30.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 5018 (4.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 pi@raspberrypi01:~ $ hostname -I 192.168.51.138 192.168.1.242● bullseye版をNetworkManagerに切り替える。
pi@raspberrypi11:~ $ nmcli Error: NetworkManager is not running. pi@raspberrypi01:~ $ sudo raspi-config nonint do_netconf 2<-NetworkManagerに切り替える Failed to enable unit: Unit file NetworkManager.service does not exist.<-NetworkManager自体が無い※ OSが2022年9月以前のインストールだとNetworkManager自体が無いのでこちら( NetworkManager )から作業を行う。
pi@raspberrypi01:~ $ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.51.139 netmask 255.255.255.0 broadcast 192.168.51.255 inet6 fe80::83aa:2980:df1c:4e9 prefixlen 64 scopeid 0x20<link> ether bc:5c:4c:e1:09:ca txqueuelen 1000 (Ethernet) RX packets 1109 bytes 95613 (93.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 202 bytes 26389 (25.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 12 bytes 1738 (1.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 1738 (1.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 4e:47:2d:3b:42:5f txqueuelen 1000 (Ethernet) RX packets 1030 bytes 97051 (94.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 71 bytes 9034 (8.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ・WiFiが無くなり、eth0が192.168.51.139になっている。 pi@raspberrypi11:~ $ sudo reboot● Windowsのコマンドプロンプトから再度、sshでRaspiへログイン
・ 現状でRaspiから見えているWiFiを確認する。
pi@raspberrypi01:~ $ nmcli dev wifi IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY 00:24:A5:C9:98:61 0024A5C99861 Infra 5 130 Mbit/s 100 ▂▄▆█ WPA1 WPA2 06:24:A5:C9:98:61 0024A5C99861-1 Infra 5 130 Mbit/s 100 ▂▄▆█ WPA1 B0:C7:45:34:20:60 Buffalo-G-206A Infra 8 195 Mbit/s 75 ▂▄▆_ WPA2 00:D0:1D:26:96:6D CWN Infra 11 130 Mbit/s 44 ▂▄__ WPA2 802.1X 00:D0:1D:26:96:94 -- Infra 11 130 Mbit/s 39 ▂▄__ -- CC:32:E5:A8:96:CB EU_WIRELESS_4th_floor Infra 2 270 Mbit/s 37 ▂▄__ WPA2 CA:32:E5:A8:96:CC EU_WIRELESS Infra 2 270 Mbit/s 37 ▂▄__ WPA1 WPA2 00:D0:1D:26:96:6C -- Infra 11 130 Mbit/s 37 ▂▄__ -- 00:D0:1D:26:96:95 CWN Infra 11 130 Mbit/s 37 ▂▄__ WPA2 802.1X 18:C2:BF:15:2C:13 Buffalo-G-2C12 Infra 1 130 Mbit/s 32 ▂▄__ WPA2 86:BA:3B:8A:83:73 DIRECT-xE73-MB5400series Infra 3 65 Mbit/s 30 ▂___ WPA2 00:D0:1D:26:96:9C -- Infra 11 130 Mbit/s 22 ▂___ -- pi@raspberrypi01:~ $ systemctl status NetworkManager.service Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Drop-In: /usr/lib/systemd/system/NetworkManager.service.d └─10-dhcpcd.conf Active: active (running) since Wed 2024-01-31 16:22:51 JST; 8min ago ・dhcpcd.confが Drop-In 扱いとなって NetworkManager enabled; となっている。 ・NetworkManagerは立ち上がっておりWiFiも認識しているようなのでWiFiの設定から先に行う。 pi@raspberrypi01:~ $ hostname -I 192.168.51.139<--WiFiが消えた
ここまででWiFiが認識できているようなので、bullseye版のWiFiを固定化IPとする
● 現在のWiFi状態を確認するpi@raspberrypi01:~ $ nmcli radio wifi enabled pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk" Device 'wlan0' successfully activated with 'aae8b353-1070-485f-ba75-e997a47b5484'. ・このコマンドで0024A5C99861.nmconnectionファイルが以下の場所へ作成される。 /etc/NetworkManager/system-connections/0024A5C99861.nmconnection pi@raspberrypi01:~ $ nmcli con show NAME UUID TYPE DEVICE Wired connection 1 2d286ab1-58ac-30bf-8c8d-acb1d812b328 ethernet eth0 0024A5C99861 aae8b353-1070-485f-ba75-e997a47b5484 wifi wlan0<--追加された pi@raspberrypi01:~ $ hostname -I 192.168.51.139 192.168.1.242<--追加された この192.168.1.242を固定化IPとする。 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.addresses 192.168.1.242/24 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.gateway 192.168.1.1 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.dns 8.8.8.8 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.method manual pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/0024A5C99861.nmconnection [ipv4] address1=192.168.1.242/24,192.168.1.1<--追加された dns=8.8.8.8;<--追加された dns-search= method=manual<--変更された● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk" pi@raspberrypi01:~ $ sudo nmcli c down 0024A5C99861 && sudo nmcli c up 0024A5C99861 ・ここで認証エラーが出た場合、rebootする。(NetworkManagerへ切り替えた直後なのでまだdhcpcdを引き継いでいる?)
有線LANを固定化IPとする
● ネットワークの設定ファイルにおいて、「キーファイル」と「ifcfgスタイル」の2種類があるがNetworkManagerのbookworm版は「キーファイル」の設定が優先される。
・「キーファイル」でIPアドレス設定する場合、「キーファイル」の保存先:
/etc/NetworkManager/system-connections/eth0.nmconnection<--例
配下にファイルが存在しないことを確認する。
● IPアドレス設定前の初期設定
・NetWorkインターフェースの「NAME」を変更する。
・変更前の例 pi@raspberrypi01:~ $ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 2d286ab1-58ac-30bf-8c8d-acb1d812b328 ethernet eth0 0024A5C99861 aae8b353-1070-485f-ba75-e997a47b5484 wifi wlan0 ・NAME:Wired connection 1をNAME:enp0s10とする(DEVICEの管理をNAME名:enp0s10で行うため) pi@raspberrypi01:~ $ sudo nmcli connection modify 2d286ab1-58ac-30bf-8c8d-acb1d812b328 connection.id enp0s10 ・このコマンドで以下のファイルが作られる。このファイルを変更することで固定IP化する。 /etc/NetworkManager/system-connections/enp0s10.nmconnection pi@raspberrypi01:~ $ nmcli connection show NAME UUID TYPE DEVICE enp0s10 2d286ab1-58ac-30bf-8c8d-acb1d812b328 ethernet eth0 0024A5C99861 aae8b353-1070-485f-ba75-e997a47b5484 wifi wlan0 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.addresses 192.168.51.139/24 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.gateway 192.168.51.1 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.dns 8.8.8.8 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.method manual pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/enp0s10.nmconnection [ipv4] address1=192.168.51.139/24,192.168.51.1<--nmcliコマンドで追加された dns=8.8.8.8;<--nmcliコマンドで追加された method=manual<--nmcliコマンドで追加された● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload pi@raspberrypi01:~ $ sudo nmcli c down enp0s10 && sudo nmcli c up enp0s10 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)● IPが固定できたのでこれ以降の作業はTeraTermで行う。