Raspberry Pi OS (Trixie) で NIC に固定 IP アドレスを付与する方法をメモしておく。 どうやら Bookworm 以降は Network Manager を使ってネットワークを設定するようになったらしい。
公式のドキュメントには、固定 IP アドレスを付与する方法として DHCP サーバで MAC アドレスにアドレスを対応させる方法が書いてある。 それはそれとして、端末側で完結した形で固定 IP アドレスを設定したい。
使った環境は次のとおり。
$ cat /etc/*-release PRETTY_NAME="Debian GNU/Linux 13 (trixie)" NAME="Debian GNU/Linux" VERSION_ID="13" VERSION="13 (trixie)" VERSION_CODENAME=trixie DEBIAN_VERSION_FULL=13.2 ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" $ uname -srm Linux 6.12.47+rpt-rpi-2712 aarch64
もくじ
NIC の状態を確認する
ひとまず NIC の状態を確認する。
有線 LAN に eth0、無線 LAN に wlan0 が使えることが分かる。
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DORMANT group default qlen 1000 link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
nmcli を使って設定する
今回は nmcli コマンドを使ってターミナルから設定していく。
まずはイーサネットに設定された connection があるか確認する。
$ nmcli connection show | grep -i ethernet
もし既存の connection が不要なときは nmcli connection delete で削除する。
$ sudo nmcli connection delete <connection-name>
新たに eth0 を使う connection を作成する。
以下では connection に wire という名前をつけている。
$ sudo nmcli connection add type ethernet con-name wire ifname eth0 $ nmcli connection show | grep ethernet wire 80f2a4d0-e95a-4644-af7d-f4d50b437bd0 ethernet --
connection に固定で付与したい IPv4 アドレスを ipv4.addresses に指定する。
$ sudo nmcli connection modify wire ipv4.addresses "172.16.X.X/16"
connection を down / up して設定を反映する。 もし有線 LAN 経由で操作しているときは接続が切れてしまうので注意する。
$ sudo nmcli connection down wire $ sudo nmcli connection up wire
NIC の状態を確認すると、指定したアドレスが付与されている。 それとは別に DHCP でもアドレスが付与されているが、特に不都合もないので気にしないでおく。
$ ip address show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff inet 172.16.X.X/16 brd 172.16.255.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.16.X.Y/16 brd 172.16.255.255 scope global secondary dynamic noprefixroute eth0 valid_lft 259196sec preferred_lft 259196sec inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX/64 scope global dynamic noprefixroute valid_lft 2591989sec preferred_lft 604789sec inet6 fe80::XXXX:XXXX:XXXX:XXXX/64 scope link noprefixroute valid_lft forever preferred_lft forever
いじょう。
