ネットワーク設定手順

このページには、Raspberry Pi OS でネットワーク設定の手順が書いてあります。

Raspberry Pi OS のネットワーク設定 #

Raspberry Pi OS 12 “Bookworm” からネットワークの設定が dhcpcd から NetworkManager に変更されました。 以下ではそれぞれの設定方法を紹介しています。

なお、現在インストールされている OS のバージョンは /etc/os-release で確認できます。

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

NetworkManager でのネットワーク設定手順 #

固定 IP アドレスの設定 #

固定 IP アドレスの設定には設定したいネットワークインターフェースに対するプロファイル名が必要です。nmcli connection show コマンドで表示される “NAME” の列がプロファイル名です。

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  9dd96db0-c42a-360b-9d45-93a47c2c1938  ethernet  eth0
lo                  37fd429a-2f73-4e61-8583-d7a966b409dc  loopback  lo
docker0             c233afb5-14b9-4e53-b807-296598121a47  bridge    docker0

プロファイル名がわかれば、nmcli connection modify '<NAME>' で IP アドレスを設定できます。 下記のコマンドは、上記の “Wired connection 1” に対して変更する場合の例です。

$ sudo nmcli connection modify 'Wired connection 1' ipv4.addresses "<IP address>/<Prefix>" ipv4.gateway "<Gateway address>" ipv4.dns "<DNS address>" ipv4.method "manual"

設定が完了していれば設定ファイルが /etc/NetworkManager/system-connections/ ディレクトリー配下に <プロファイル名>.nmconnection という名前で作られます。

$ sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1
.nmconnection
[connection]
id=Wired connection 1
uuid=9dd96db0-c42a-360b-9d45-93a47c2c1938
type=ethernet
autoconnect-priority=-999
interface-name=eth0
timestamp=1700375419

[ethernet]

[ipv4]
address1=192.168.0.62/24,192.168.0.1
dns=192.168.0.1;
method=manual

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

[proxy]

システムを再起動すれば、IP アドレスが変わっているはずです。

dhcpcd でのネットワーク設定手順 #

固定 IP アドレスの設定 #

固定 IP アドレスをネットワークインターフェースの設定をします。

固定IPの設定をするには /etc/dhcpcd.conf を編集します。 何かわからないことがあれば man dhcpcd.conf でマニュアルを確認できます。

なお、Raspberry Pi OS の場合、有線インターフェース名は eth0 、Wi-Fi インターフェース名は wlan0 です。

コピペ用の一例です。

interface wlan0
static ip_address=192.168.0.2/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

あとは Raspberry Pi をリブートすれば再起動後には設定が変わっています。

ちなみに、Raspberry Pi OS は Debian 系なので /etc/network/interfaces に必要な設定すればよいかと思いましたが、次のとおり、Raspberry Pi OS では上記ファイルを使え、ということです。

pi@raspberrypi:/etc $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

Wi-Fi AP の接続先設定 #

Wi-Fi AP の接続先の設定情報は /etc/wpa_supplicant/wpa_supplicant.conf ファイルを変更します。

次のようなフォーマットで Wi-Fi AP の情報を記述します。

$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="xxxxxxxxxxxxxxx"
    psk=xxxxxxxxxxxxxxx
}
network={
    ssid="xxxxxxxxxxxxxxx"
    psk=xxxxxxxxxxxxxxx
}

psk には平文でパスワードを指定することもできますが、セキュリティ上好ましくないため、暗号化した文字列を使うようにします。

wpa_passphrase コマンドで暗号化したパスワードを取得できます。

$ wpa_passphrase <SSIDを入力>
# reading passphrase from stdin
<パスワードを入力>
network={
        ssid="xxxxxxxxxxxx"
        #psk="平文のパスワード"
        psk=<暗号化されたパスワード>
}

Raspberry Pi が Wi-Fi にしか接続されておらず、SSH でログインしているようであれば、そのままリブートして設定を更新することが無難かと思いますが、もしリブートが難しいようであれば、下記コマンドでも再設定可能です。

sudo systemctl restart dhcpcd.service

なお、現在接続中の Wi-Fi AP を確認する方法は次のコマンドでできます。

$ iwconfig
wlan0     IEEE 802.11  ESSID:"xxxxxxxxxxxxxxxx"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: xx:xx:xx:xx:xx:xx
          Bit Rate=72.2 Mb/s   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=64/70  Signal level=-46 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:6718  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.