Raspberry Pi に固定 IP を設定する
ネットワーク確認
Windows の場合、ipconfig /all
でデフォルトゲートウェイとサブネットマスク、DHCP サーバーを確認できる。
| イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
(省略)
IPv4 アドレス . . . . . . . . . . . .: 192.168.11.4(優先)
サブネット マスク . . . . . . . . . .: 255.255.255.0
(省略)
デフォルト ゲートウェイ . . . . . . .: xxxx::xxxx:xxxx:xxxx:xxxx%xx
192.168.11.1
DHCP サーバー . . . . . . . . . . . .: 192.168.11.1
(省略)
|
サブネットマスク
サブネットマスクが255.255.255.0
なので、
先頭の 24 ビット分はネットワークアドレス、残りの 8 ビットがホストアドレスとわかる。
CIDR 表記
IP アドレスとサブネットマスクの 2 つでネットワークアドレスとホストアドレスがわかるのだが、2 つも書くのはダルいので(多分) CIDR という表記もある。
名前 |
値の例 |
説明 |
IP アドレス |
192.168.11.4 |
よく見るやつ。 |
サブネットマスク |
255.255.255.0 |
IP アドレスのうち、ここまでがネットワークアドレスだと示すもの。 |
ネットワークアドレス |
192.168.11.0 |
IP アドレスとサブネットマスクの AND を取った値。端末が異なっていても同一ネットワーク内であれば同じ値になる。 |
ホストアドレス |
4 |
IP アドレスとサブネットマスクの AND を取ったときのあまり。同一ネットワーク内でユニークな値にする必要がある。 |
CIDR 表記による IP アドレス |
192.168.11.4/24 |
左の IP アドレスのうち、左 24 ビットはネットワークアドレスであることを示している。 |
デフォルトゲートウェイ
デフォルトゲートウェイはルーター自身の IP アドレスである。
値が192.168.11.1
なので、サブネットマスクと併せてネットワークアドレスは192.168.11
とわかる。これがルーター内のネットワークのアドレスを表す。また1
はルーター自身を表す。
ここまでで、IP を割り振りたい端末のアドレス(ホストアドレス)は192.168.11.XXX
にする必要があることがわかる。(XXX: 2 ~ 254, 255 はブロードキャスト用のため割り当て不可)
Raspberry Pi の固定 IP の割り当て
以下コマンドで Wi-Fi の IP アドレス設定をする。
| $ sudo nano /etc/NetworkManager/system-connections/preconfigured.nmconnection
|
書き換えるのは[ipv4]
のところだけでよい。
preconfigured.nmconnection |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | [connection]
id=preconfigured
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=wifi
[wifi]
mode=infrastructure
ssid=xxxxxxxx
hidden=false
[ipv4]
address1=192.168.11.10/24,192.168.11.1
dns=192.168.11.1;
method=manual
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
[wifi-security]
key-mgmt=wpa-psk
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
有線 LAN は以下の要領で設定する。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | $ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet eth0
preconfigured xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx wifi wlan0
lo xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx loopback lo
$ sudo nmcli connection modify "Wired connection 1" ipv4.addresses "192.168.11.4/24"
$ sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1.nmconnection
[connection]
id=Wired connection 1
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type=ethernet
autoconnect-priority=-999
interface-name=eth0
timestamp=1703468836
[ethernet]
[ipv4]
address1=192.168.11.4/24,192.168.11.1
dns=192.168.11.1;
method=manual
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
|
最後にsudo reboot
する。
sudo nano /etc/dhcpcd.conf
で以下の設定を追記する。
| interface eth0
static ip_address=192.168.11.5/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
static domain_search=
interface wlan0
static ip_address=192.168.11.5/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
static domain_search=
|
IP アドレスにある/24
は CIDR 表記と呼ばれ、左のアドレスの 24 ビット分はネットワークアドレスであることを表している。
IP アドレスは 8 ビットごとに.
で区切られているので、192.168.11
はネットワークアドレスであることがわかる。またこれから先の値はホストアドレスであることがわかる。
最後にsudo reboot
する。
IP アドレス変更後、SSH 接続できない
設定した IP を DHCP の端末が使用済みの可能性がある。
開発 PC やスマートフォンが IP アドレスを再起動してみる。