CUBE SUGAR CONTAINER

技術系のこと書きます。

Raspberry Pi OS (Trixie) で NIC に固定 IP アドレスを付与する

Raspberry Pi OS (Trixie) で NIC に固定 IP アドレスを付与する方法をメモしておく。 どうやら Bookworm 以降は Network Manager を使ってネットワークを設定するようになったらしい。

www.raspberrypi.com

公式のドキュメントには、固定 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

いじょう。