固定IPアドレスを設定する 【Raspberry Pi】

Raspberry Pi

Raspberry Pi で固定IPアドレスを設定する手順についてまとめておきます。
加えて、ローカルネットワーク内に Windows や Linux が混在している場合のコマンドや表示についてもポイントをまとめておきます。

以下の環境で確認をしています。
環境:
・ Windows 10
・ Raspberry Pi 3 model b+ (buster および bullseye)
・ LAN ネットワーク(インターネット、Wi-Fi 接続用)
★ Windows パソコンと Raspberry Pi はあらかじめ、ローカル LAN に接続済み。

背景

日頃、Windows パソコンと Raspberry Pi (複数台)を自宅のローカルネットワークに接続して、自動化や技術検討用に活用しています。

Raspberry Pi をデフォルトのまま使っていると、起動の際、Wi-Fi 接続が失敗することがあると思います。IP アドレスを固定化することでネットワークの接続が安定します。
また、ローカルネットワーク内で Raspberry Pi をファイルサーバーや Web サーバー化するなど、有効活用しようとすると、やはり IP アドレスを固定化したくなります。
また、Windows パソコンなどからリモートデスクトップでアクセスしたい場合も、IP アドレスを固定しておいたほうが便利です。
そこで、Raspberry Pi の IP アドレスを固定化する手順についてまとめておきます。

また最近、Raspbery Pi のバージョンアップが続き、新旧の異なる Linux が共存しています。また、Windows と Linux ではネットワーク環境を確認・設定するコマンド、用語も異なっており煩雑です。
そこで、ネットワークに関連する Windows と Linux のコマンドについても集約しておきます。

なお、以下の具体例は、Wi-Fi に接続する場合を想定しています。
LAN ケーブルで接続する場合は、Wireless LAN (wlan) 等となっている部分をイーサネット(ether)等と読み替えるようにしてください。

手順

⓪ あらかじめ、Windows パソコンと Raspberry Pi を Wi-Fi などでローカルネットワークに接続しておきます。

Windows 側での確認: ルーターの IP アドレス等を確認する

① Windows パソコンのコマンドプロンプトを起動し、以下を実行します。

> ipconfig /all

② 以下の設定値の部分を確認します。数値は一例です。
Wireless LAN adapter Wi-Fi:
デフォルト ゲートウェイ: 192.168.X.X
サブネット マスク: 255.255.255.0
DHCP サーバー :  192.168.X.X
DNS サーバー : 192.168.X.X

★ DHCP サーバー: Dynamic Host Configuration Protocol サーバー
「DHCP」は、「動的にホストを構成するプロトコル」です。DHCP サーバーは実質的に、いわゆるルーターという理解でよいと思います。以下の⑨の “routers” に対応しています。⑨で使いますので、IP アドレスを確認しておきます。
★ DNS サーバー: Domain Name System サーバー
DNS は、ローカルネットワーク内で DHCP とともに設定されているサーバーです。以下の⑨で使いますので、IP アドレスを確認しておきます。なお、サーバーをレンタルしてドメイン名の取得を依頼する際にも DNS という表現が出てきました。

③ さらに、以下を実行します。

> arp -a

④ ネットワークに接続されたデバイスの IPアドレスを確認しておきます。

表示の例
インターフェイス: 192.168.X.X     … Windows パソコンのローカルIPアドレス
インターネット アドレス    物理アドレス
192.168.X.1  00-XX-XX-XX-XX-XX  … 上記のデフォルトゲートウェイ/DHCPサーバーに対応
192.168.X.2  00-XX-XX-XX-XX-XX  …   Wi-Fi のアクセスポイント
192.168.X.10 b8-27-eb-XX-XX-XX  …   Raspberry Pi の現在の IPアドレスと MAC アドレス

★ 「インターネット アドレス」は、ローカルネットワークの IP アドレスのことです。Windows ではこのような表現となっています。ローカルネットワークに接続された各機器の IP アドレスが列挙されます。
この IPアドレスは、ネットワーク上では固有の値となっていますが、必ずしも常にハードウェアに1対1で対応するものではありません。電源の再投入などにより、また、ローカルネットワークに接続する機器の台数や接続などにより、変化しうるものです。
★ 「物理アドレス」は、MAC アドレスのことです。機器固有の文字列となっています。
MAC アドレス:  Media Access Control Address
ネットワーク機器の仕様として、ハードウェアに1対1で対応するように識別番号が与えられていると理解すればよいと思います。
★ ”b8-27-…” となっているものは、Raspberry Pi の MAC アドレスです。
他に、Raspberry Pi の基板に対応して “dc-a6-…”、”e4-5f-…” となっている場合もあります。
★ arp -a コマンドを実行することで、Raspberry Pi がネットワークに正常に接続できているかどうかを Windows 側から確認しておきます。

Raspberry Pi 側の確認

つぎに、Raspberry Pi 側で確認をします。
⑤ Raspberry Pi の GUI 画面で、タスクバー右上の Wi-Fi のマーク上にマウスを合わせ、表示を確認します。
表示の例
eth0: Link is down
wlan0: Associated with XXXXXXXXX
wlan0: Configured 192.168.X.X/24   … ローカルネットワーク内での現在の Raspberry Pi の IP アドレス
★ 上記は、イーサーネットは接続しておらず、Wi-Fi (wlan0) で接続している状態での表示の例です。
★ ここで、Raspberry Pi の IP アドレスは、wlan0 として表示されており、④で Windows 側で確認した IP アドレスと一致しています。
★ この IP アドレスは、Raspbery Pi が起動してネットワークに加わるとき、②のデフォルトゲートウェイ/DHCP サーバーによって、自動的に/動的に振られています。
したがって、Raspbery Pi を再起動すると、値がダイナミックに変わります。(そこで、今回、ローカルネットワーク内の IP アドレスを固定したい、ということです。)
★ ”/24″ の 24 の数値は、アクセスしているネットワーク ②のサブネットマスクに対応しています。
つまり、”255.255.255.0″ を2進数に直すと、”11111111 11111111 11111111 00000000″ となります。
前から “1” が並んでいる桁数は 24桁(= 8桁×3組)となっており、この桁数に対応した数値が表示されます。

⑥ Raspberry Pi の画面の左上から、ターミナル(LXTerminal)を起動し、以下を入力します。

$ ifconfig

⑦ 今回、Wi-Fi で接続しているので、wlan0 の部分を確認します。
表示の例
wlan0:         (LAN ケーブルで接続している場合は eth0: の部分を確認する。)
inet 192.168.X.X      … Raspberry Pi の現在の IP アドレス
netmask 255.255.255.0
ether b8:27:eb:XX:XX:XX   …  Raspberry Pi の MAC アドレス
★ Raspberry Pi の IP アドレスと MAC アドレスは、④で確認したものと一致しており、対応していることがわかります。

固定 IP アドレスの設定

⑧ IPアドレスを固定するため、Raspberry Pi 上で以下を実行し、設定ファイルを編集モードにします。

$ sudo vi /etc/dhcpcd.conf

⑨ カーソルをファイルの末尾に移動させ、以下の設定例を参考に、ファイルの末尾に追記します。
設定例
# 2021/09/XX
interface wlan0
static ip_address=192.168.X.32/24
static routers=192.168.X.X
static domain_name_servers=192.168.X.X

★ ここで、static ip_address の行が、固定IP アドレスを指定している行です。
使いたい IP アドレスをここで指定してください。(例: “32”)
なお、ここで、サブネットマスク部分(前半の3つの数値 192.168.X )は、ローカルネットワーク内で、他の機器のサブネットマスクと一致させる必要があります。そこで、上記の事例では、最後の桁の部分で数値を決め、設定します。
また、固定 IP アドレスの数値(例では、”32″の数値) は、あまり小さな値を使うと、先にローカルネットワークにつながっている機器とバッティングする可能性があります。そこで、他の機器と重複しないであろう、ある程度大きな値としておくことが望ましいです。
★ ”/24″ はサブネットマスクです。②で、設定されている DHCP サーバー側ですでに決まっていますので、表記を合わせてください。
なお、②と⑤で、”255.255.255.0″、”/24″ 等の数値が違っていれば、対応するように修正してください。たとえば、”255.255.0.0″ であれば “/16” となります。
★ routers が②の DHCP サーバーに対応しています。②で確認した IP アドレスに一致させるように記載してください。参照するルーターの IP アドレスを指定する、ということになります。
★ domain_name_server も同様に、DNSサーバーのところで確認した IP アドレスに一致させるように記載してください。
⑩ 追記が終わったら、ファイルを保存して vi を終了します。

[esc] → ":" → "wq" → [enter]

⑪ 設定を反映させるため、Raspberry Pi をいったんシャットダウンして、再度、起動します。

$ sudo shutdown -h now

固定IPアドレス設定後の確認

⑫ Raspberry Pi を再起動後(ネットワークに接続後)、以下を確認してください。
Raspberry Pi の画面右上の Wi-Fi アイコンにマウスカーソルを合わせる
→ ⑨で書き込んだ設定が反映されている。
例: wlan0: Configured 192.168.X.32/24

⑬ Windows パソコン側のコマンドプロンプトで以下を実行し、ネットワーク上の Raspberry Pi の IP アドレスが修正されていることを確認してください。

> arp -a

→  192.168.X.32  b8-27-eb-XX-XX-XX 等と表示されると思います。

★ ここで、⑨で書き込んだ固定IPアドレスの設定(192.168.X.32)が反映されていれば、設定完了です。
★ もし、使おうとしたIPアドレスがすでに他の機器に使われてしまっている場合、設定がうまくできていないなどの場合は、IPアドレスが、設定しようとしたものとは異なるものとなると思います。
IPアドレスが他の機器と重複している場合、設定するIPアドレスを重複しないものに修正する必要があります。
設定を間違えていない場合、Raspberry Pi をシャットダウンして再度起動してみると、設定した固定IPアドレスが反映されることがあります。

固定IPアドレスの活用例

ローカルネットワーク内でのファイルサーバー、Web サーバーとして活用する

例えば、Raspberry Pi に USB ハードディスク等を接続し、共有フォルダとして設定しておくことで、自宅のローカルネットワーク上でのファイルサーバーとして活用できます。
また、Raspberry Pi 側で Web サーバーを自動起動等すれば、自宅のネットワーク上で自作の Webアプリが使えることになります。
例えば、Python などで便利ツールを作成したとき、Raspberry Pi に移植して、他の Windows パソコンなどからアクセスすることで、ローカルネットワーク内で独自の Web アプリを利用できることになります。

Wi-Fi 接続を安定化させる

Raspberry Pi が Wi-Fi にうまく接続できなくなったとき、1つの要因として、複数の機器でIPアドレスが重複してしまい、ネットワークに入ることができなかった可能性があります。例えば、ローカルネットワークに接続する機器が増えてきたとき、失敗する可能性が高まると考えられます。
そこで、IP アドレスを固定化すると、ネットワークの接続が安定化することがあります。

Wi-Fi 接続がうまくできないとき 
なお、以前はできていたはずの Wi-Fi 接続がうまくできなくなったとき、経験上、対策としては以下があります。
(a) IP アドレスを固定化してみる。重複することのない IP アドレスを固定 IP アドレスとして設定する。
デフォルトの状態では、IP アドレスは可変となっています。経験的に IP アドレスは小さな値から接続を試みているようです。推測ですが、この場合、IPアドレスの重複が起こりやすいのではないかと思います。
そこで、重複する可能性のない値で IP アドレスを固定化することで、IP アドレスがバッティングする可能性をなくすということです。
(b) Raspberry Pi の起動後、数分ほど待ってみる。
Raspberry Pi を起動すると、直後にネットワークに接続にいくと思います。このとき、接続に失敗すると、数分後(5分ほど?)に再度ネットワークへの接続を試みるようです。その時間を待ってみます。最初は接続できていなくても、そのまま使い続けていたところ、自動的に接続できていたことがあります。
(c) Wi-Fi ルーター側を再起動する。また、別のパソコンからネットワーク接続を確認してみる(前述の③、④)。
(d) Wi-Fi ルーターから電波が届きやすい場所に Raspberry Pi の位置を変える。
Raspberry Pi 周辺のケーブル類、遮蔽物、金属でできたものを片づける。
Raspberry Pi は小型で動かしやすいので、つい、電波の届きにくい場所に置いてしまいやすいです。また、金属類/プラスチック類が近くにあると Wi-Fi の電波を通さない/通しにくいので、ラズパイからアクセスポイントを結ぶ直線近辺にあるモノを片づけるようにします。

まとめ

Raspberry Pi で固定 IP アドレスを設定して接続する手順についてまとめました。
加えて、ローカルネットワーク上で、Windows や Linux が混在するとき、関連するコマンドや用語についてもポイントをまとめました。
Windows と Linux を併用してみると、ネットワーク関連の理解も深まります。
なお、発展形としてローカルネットワーク上で Raspberry Pi を Web サーバー化する手順などについてもまとめています。もしも関心があるようでしたら、以下の関連リンクも参照してみてください。

関連リンク
・ Raspberry Pi にリモートデスクトップで接続する
・ Raspberry Pi でローカルWebサーバー 【Python 活用】
・ Raspberry Pi の Wi-Fi がつながりにくくなったとき

タイトルとURLをコピーしました