※Raspberry Pi OS(bookworm)のリリースから、ネットワークサービスがNetworkManagerに変更されました。
固定IPアドレス(IPv4)の設定方法をnmcliのコマンドで設定する方法を紹介します。他にテキストユーザインターフェース(nmtui)がありますが、Linuxなので基本的にコマンドベースの設定を優先させます。
ネットワークの状態確認
コネクション名は下記の記事を参考にeth0に変更しておいてください。
ももぶろ
NetworkManagerを利用するので、コネクション名Wired connection 1をeth0に変更します。方法は下記記事を参照ください。
現在の状態を確認します。
$ nmcli -f ipv4 connection show eth0
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)
上記の通り現在、赤文字のautoが設定されています。
固定IPアドレスの設定
下表に基づき設定を進めます。
設定項目 | 設定内容 | 説 明 |
ipv4.method | manual | IPアドレスを固定で設定 |
ipv4.addresses | 192.168.100.100/24 | 設定するIPアドレス |
ipv4.gateway | 192.168.100.1 | ルータのIPアドレス |
ipv4.dns | 192.168.100.1,8.8.8.8 | ルータのIPアドレスとgoogleのDNSサーバ |
コマンドでの設定の順番は、下記の通りとしてください。
$ sudo nmcli connection modify eth0 ipv4.addresses 192.168.100.100/24
$ sudo nmcli connection modify eth0 ipv4.gateway 192.168.100.1
$ sudo nmcli connection modify eth0 ipv4.dns 192.168.100.1,8.8.8.8
$ sudo nmcli connection modify eth0 ipv4.method manual
上記のコマンドを入力すると
$ nmcli -f ipv4 connection show eth0
ipv4.method: manual
ipv4.dns: 192.168.100.1,8.8.8.8
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.100.100/24
ipv4.gateway: 192.168.100.1
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)
コマンドで指示された内容が赤文字の通り設定されます。
プロパティの設定だけなので、ネットワークとして有効にするためコネクションeth0を再起動します。
$ sudo nmcli connection up eth0
上記コマンドでeth0を再起動すると、ネットワークアドレスが変更されるので、接続しているssh(teraterm)は反応が無くなります。
teratermも再起動して、固定のIPアドレスで接続すると接続できます。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:20:91:fa brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/24 brd 192.168.100.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether b8:27:eb:75:c4:af brd ff:ff:ff:ff:ff:ff
赤文字の通り192.168.100.100/24が設定されています。